假設我在git中從master分支了一個功能分支。現在我對這個分支進行了一些更改,我認爲它已經爲主分支做好了準備。因此,我推送到遠程存儲庫,並使用github用戶界面來處理從我的功能分支到主分支的請求。在pull請求中添加提交
現在,由於拉取請求中的反饋,我需要更改我的特性分支中的一些內容。我現在是簡單的選項來提交更改作爲新的提交併推送它。如果分支稍後進行合併,我的功能將被分割爲多個提交。
如果我想避免多次提交,有什麼可能性?我看到了以下可能性:
- 使用
git commit --ammend
並追加改變當前提交 - 使用
git rebase -i
和壁球的變化連成一片提交
這兩種解決方案都存在一個巨大的問題:如果沒有push -f
,我無法再玩。
問:
- 這是工作流程在某種程度上錯了嗎?聚合提交是否是錯誤的,我應該把它們作爲單獨的提交嗎?
- 如果不是,可以在這裏使用
push -f
嗎? - 如果是的話,我該如何確保我沒有做任何非常糟糕的事情?我能以某種方式將影響限制在我的遠程分支上,而不會影響其他任何東西嗎?摧毀我自己的特色分支並不壞,但摧毀主人並不好。
- 是否有其他可能性避免
push -f
?
'這兩種解決方案都存在一個巨大的問題:我不能沒有推-f'了COMIT。你什麼意思?一旦你的本地歷史記錄和遠程歷史記錄再次對齊,你應該能夠再次不用'-f'來推送。所以,我猜只有第一次推送應該用'-f'來執行。至少,如果沒有人推動你重寫的歷史(根據我的回答) – ThanksForAllTheFish