簡介¶
rebase發生錯誤,需要復原git reset ORIG_HEAD --hard
發生錯誤原因,在master分支上面使用
git rebase dev
(錯誤的操作) 演示錯誤
內容¶
- git checkout issue(開始開發) .... (開發完畢)
- git checkout
master
- git pull (master最新了)
- git checkout issue (準備開始合併)
- git rebase master(把master當作基礎,開始衍合)
- 遇到衝突後需要(git rebase --continue),衝突解決後
- git add .
- git commit -m "[issue]"
- git checkout master
- git merge issue (目前在master分支上面)
- git branch -d issue (刪除 issue 分支)
- 如果要改寫歷史記錄
git commit --amend
- git push master
如果不用分支開發¶
使用git fetch和git rebase處理多人開發同一分支的問題
第一種¶
- git fetch
- git rebase
- 解決衝突
- git add 衝突檔案
- git rebase –continue
- git push
第二種(Pull + Rebase),方便¶
- 修改代码
- commit
- git pull --rebase
- git push
修改git pull的默认行为¶
每次都加–rebase似乎有些麻烦,我们可以指定某个分支在执行git pull时默认采用rebase方式:
git config branch.master.rebase true
git config branch.autosetuprebase always
[branch "master"]
remote = origin
merge = refs/heads/master
rebase = true
[branch]
autosetuprebase = always
// 全局生效
git config --global pull.rebase true
git config --global branch.autoSetupRebase always
// clean global
git config --global --unset pull.rebase
git config --global --unset branch.autoSetupRebase
.git/config
如果你觉得所有的分支都应该用rebase,那就设置:
git config --global branch.autosetuprebase always