以下所有操作都在 Git Bash中進行的,括號中文字均爲註釋方便閱讀.
操作1: 在本地創建分支 test
(git clone 源碼之後,本地環境只有 master 分支)
下面是遠程中已有 test 分支:
- git branch (查看分支, git branch -a 查看所有本地和遠程分支)
- git checkout -b test origin/test (創建 test 分支,前後名字最好一致)
- git branch -vv (查看所有本地分支以及是否與遠程分支關聯)
- git push --set-upstream origin test (將本地的test 分支,和遠程的test分支關聯)
下面是遠程中沒有 test 分支:
- git branch test (基於當前分支創建本地 test 分支)
- git checkout test (切換到本地 test 分支)
- git push origin test (將 test 分支提交到遠程)
- git branch --set-upstream-to=origin/test (將本地 test 分支與剛剛創建的遠程 test 分支關聯)
- git branch -vv (查看分支關聯狀態)
操作2: test分支提交代碼流程
- git checkout test (切換到test分支上)
- git status (查看下代碼的修改狀態)
- git add . (提交所有修改)
- git commit -m "#....# ....." ("#<jira任務號># <註釋>",沒有特殊約定,雙引號中註釋可以隨意寫)
- git pull origin test (push前先 pull 一下)
- git push -u origin test (提交到遠程上)
操作3: 將分支1代碼同步到分支2上
- git checkout 分支2
- git pull
- git status
- git merge 分支1
- git status
- git push -u origin 分支2
(快捷鍵: Tab 鍵可以自動補全, shift + insert 粘貼)
操作4: 解決 commit 提交之後產生衝突問題
- git reset --soft HEAD^ (退回commit操作直接退回了有問題的commit的那條記錄)
- git pull (有衝突之後,在VScode中解決衝突)
- git add . (之前已經 add 了一次,解決衝突之後一定要再 add 一次)
- git commit -m "#.....# 解決衝突"
- git push -u origin 分支名
(隨時 git status ,push之前一定要先 pull 下)
操作5: git 刪除 commit 記錄
- git rebase -i <要刪除的commit上一次記錄號>
(在notepad中將pick改成drop保存下就好了,再重新 git log 看下)
操作6: git 刪除分支
- git branch -d test (刪除本地 test 分支)
- git push origin --delete test (刪除遠程 test 分支)
操作7: 分支2有部分代碼需要同步到分支1
- git add 需要提交的文件 (雙擊status中需要提交的文件,然後 shift + insert 進行復制粘貼操作)
- git commit -m "#...# ..."
- git push -u origin 分支2 (在分支2上,先把需要提交的文件add,push到遠程)
- git checkout 分支1
- git pull
- git merge 分支2
- git push -f (這裏使用 git push 會報rejected錯,採用 -f 強制提交)
- (操作期間把分支2所有代碼都merge到了遠程分支1,採用 git reset HEAD^ 刪除最新一次commit,再git push -f)
其他相關常用命令:
- esc + w + q (退出bash中當前操作)
- git branch -d 分支名 (用來刪除分支)
- wq (bash中保存退出)
- git commit --amend (跟上一次commit進行合併,採用上一次commit的註釋,將第一行的 #...# 加一個空格,避免當成註釋了)
- git push --set-upstream origin newbranch 把本地的新分支,和遠程的新分支關聯