我目前使用git方式如下:如何正確使用git rebase?
- 克隆,取回購
- 創建特定問題
- 話題分支做一些關於它的提交
- 結賬主分支
- 合併話題分行主人
- 推新主分支
不幸的是,這種情況時有發生。我想要做的是將一些較小的提交合併成一個更大的提交。
此外,將新分支中的所有提交合併到一個提交併將其合併到主設備中有時是一個好主意。
例如:
git branch update-docs
git checkout update-docs
git add -A .
git commit -m 'updated networking doc'
git add -A .
git commit -m 'updated manager doc'
git checkout master
git merge update-docs
你知道我現在會在主分支兩次提交「更新網絡DOC」和「更新管理文檔」。
如果我現在想在master分支中只有一個名爲「updated docs」的提交,例如包含這兩個提交的更改,我該怎麼辦?
我認爲你必須使用git rebase來處理這類任務。我只是不知道如何使用它。
我已經嘗試過:
git checkout master
git rebase update-docs
但合併後的變化掌握不留任何承諾,現在回購被搞砸了。
那麼有人會分享你必須使用的命令?
解決方案:
git checkout -b update-readme
git commit -am 'rewritten readme'
git commit -am 'added author name'
git rebase -i master
打開文本編輯器:
pick 6dbcbf1 rewritten readme
pick b815bbf added author name
你現在更改爲:
pick 6dbcbf1 rewritten readme
squash b815bbf added author name
然後保存爲 「:w」 和「: q「如果使用vim,它將打開另一個編輯器,您可以在其中定義新的提交名稱
rewritten readme
那麼合併回購:
git checkout master
git merge update-readme
請注意,如果'master'在'update-readme'已分支之後發生分歧,則您的解決方案仍將創建合併提交。如果您希望單獨提交,您應該先合併,然後以交互方式重新綁定。 rebase將擺脫合併提交,重新綁定當前主服務器上的分支提交,並允許您壓縮它們。 – user4815162342