Git操作(二)

很久以前寫的git入門,最近又鞏固了一下Git分支操作,下面是我的一些整理。

1、分支與合併  

#創建並切換到該分支
    git checkout -b xxx

#查看當前分支
    git branch  

#進行一些正常的提交等

#分支工作完成,就可以切換回到master分支
    git checkout master

#將xxx分支合併到當前分支上
    git merge xxx

#刪除分支

  # 合併完成後 
     git branch -d xxx

  # 未合併的分支的刪除
     git branch -D xxx

2、BUG分支||分支暫存(將開發一半的分支進行保存,在適當的時候進行代碼恢復)

# 當手頭工作沒有完成時,先把工作現場`git stash`一下,然後去修復bug

# 修復完成後,`git stash list` 列出所有的暫存狀態

# 從暫存區之中恢復回到工作現場 # 先恢復,而後再刪除暫存 git stash apply git stash drop # 恢復的同時也將stash內容刪除 git stash pop
# 在master分支上修復的bug,想要合併到當前dev分支,可以用git cherry-pick <commit>命令,把bug提交的修改「複製」到當前分支,避免重複勞動。

3、多人協作的工作模式

  • 首先,可以試圖用git push origin <branch-name>推送自己的修改;
  • 如果推送失敗,則因為遠程分支比你的本地更新,需要先用git pull試圖合併;

    • 如果git pull提示no tracking information,則說明本地分支和遠程分支的鏈接關係沒有創建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

  • 如果合併有衝突,則解決衝突,並在本地提交;

  • 沒有衝突或者解決掉衝突後,再用git push origin <branch-name>推送就能成功!

4、合併分支

  • git merge命令用於合併指定分支到當前分支

  • 使用fast-forward方式進行分支合併,只是簡單改變了分支指針,而不會產生新的commit記錄。

  • git merge --no-ff -m "msg" <branch_name> // 合併分支時禁用Fast forward模式

  • git rebase操作可以把本地未push的分叉提交歷史整理成直線;