2014-05-05 102 views
0

我正在閱讀有關git rebase工作流程的信息,我想我已經瞭解了基本想法,但是我的問題是,我偶然發現的所有教程都不會討論你有什麼情況像這樣:Git rebase工作流程 - 在IDEA中重新綁定後拉動

  1. 使用遠程存儲庫的更改更新本地存儲庫,創建功能分支。
  2. 與遠程存儲庫(上master例如wtih git pull
  3. 衍合特性分支變化哈克外出特性分支
  4. 更新主到主
  5. 合併master與特性分支(這將導致在快進)
  6. 更改推到遠程和接收到錯誤,其他人推到master

現在應該怎樣做,如果我們ST我想在master沒有合併提交的分支上保存完全線性的歷史記錄?

如果我沒有記錯的話,我應該履行git pull --rebase,然後嘗試推進,但如果是這樣的答案是有可能這樣做只能從IDEA水平(正常git pull將導致合併重訂工作流程提交,因爲被推送的提交的其他人)?查看手冊:https://www.jetbrains.com/idea/webhelp/pull-changes-dialog.html在拉對話框中沒有選擇重新綁定的選項。

回答

1

我覺得做4後,你將不會合並,但衍合特性分支在master的頂部...所以衍合特性分支到更新的主,然後從該分支在master分支上的頂底墊的變化,然後推。

在命令,這將是這樣的:

  1. GIT中拉(上分支主)
  2. GIT中結帳-b feature_branch(沿這裏代碼)
  3. GIT中結帳主& & GIT中拉
  4. git checkout feature_branch & & rebase master
  5. git checkout master & &底墊feature_branch
  6. 混帳推

在工作中我主要是鼓勵我的coworkersto上墊底以及有關這一主題的後續起坐讀this article

+0

感謝答案,但現在如果在步驟'6'你,你不能推到遠程分支(因爲有人步之間'推到大師的錯誤你會怎麼做3'和步驟'6')? – Andna

+0

git pull - 關於master可能是你的選擇。 https://www.kernel.org/pub/software/scm/git/docs/git-pull.html –

+0

是的,'拉'與rebase作品(但在'IDEA'它隱藏在'更新項目'部分,從'pull'對話框中沒有選擇rebase)。 – Andna

1

在的IntelliJ,我用的是工作流程,因爲它:

  1. 確保本地主人是最新的
  2. 創建功能分支和黑客東西
  3. 在分支中,從git菜單中選擇rebase。 Onto應該是你當地的主人(參考資料/頭像/主人)。確保選擇了「交互式」。
  4. 將第一個提交皮克或編輯。其他提交將「南瓜」。然後開始重新貼牌。

過了一段時間,您的分支將在您當地的主人重新裝配。你只需要推動一切並刪除你的分支。如果有人推動了一些東西來掌握,那麼讓IDEA爲你做一些改版。

希望它可以幫助