我正在處理我的回購的另一個分支,並需要從主分支中引入更改。我習慣做git rebase master
,並且一切正常。然而,在最近的幾個項目中,我看到提交在日誌中重複,和墊底傾向於(大聲地)抱怨:git rebase,提交重複
$ git log --graph --abbrev-commit --decorate ...
* 4988d49 - (2 hours ago) Merge branch 'branchname' of ... 3
|\
| * e979be1 - (2 days ago) change verbiage 10
| * 93a1c80 - (2 days ago) Merge branch 'branchname' of ... 2
| |\
| | * 4e4e790 - (2 weeks ago) Merge branch 'branchname' of ... 1
| | |\
| | | * 87cc232 - (8 weeks ago) change verbiage 3
| | | * 3d5cf09 - (8 weeks ago) change verbiage 2
| | | * aea4cbd - (9 weeks ago) change verbiage 1
| | * | a7043ef - (2 weeks ago) change verbiage 6
| | * | fa3413b - (2 weeks ago) change verbiage 5
| | * | be038a7 - (2 weeks ago) change verbiage 4
| | * | 37cb1e6 - (8 weeks ago) change verbiage 3
| | * | 1ab71c6 - (8 weeks ago) change verbiage 2
| | * | c4560f4 - (9 weeks ago) change verbiage 1
| * | | d3211fd - (2 weeks ago) change verbiage 6
| * | | 72a2a4a - (2 weeks ago) change verbiage 5
| * | | ae1c123 - (2 weeks ago) change verbiage 4
| * | | 8328c08 - (8 weeks ago) change verbiage 3
| * | | e52588f - (8 weeks ago) change verbiage 2
| * | | 114cbec - (9 weeks ago) change verbiage 1
* | | | 38bd6ce - (2 hours ago) change verbiage 9
* | | | 5aaf360 - (2 hours ago) change verbiage 8
* | | | 2745790 - (2 days ago) change verbiage 7
* | | | 7bb613f - (2 weeks ago) change verbiage 6
* | | | 726a312 - (2 weeks ago) change verbiage 5
* | | | 771dd7f - (2 weeks ago) change verbiage 4
* | | | b451926 - (8 weeks ago) change verbiage 3
* | | | 484d5dc - (8 weeks ago) change verbiage 2
* | | | 630df34 - (9 weeks ago) change verbiage 1
(我已經改變了提交信息爲簡單起見,這裏真的是隻儘管有四條「管線」,但我在這裏展示了一個分支)。我已經在這個項目上做了一些改版,我認爲它們可以根據重複(比如說)改變措詞1的次數來描述。
我以爲我正在通過重新合併來完成項目工作流程中的「最佳實踐」。我以爲至少有一個以前的rebase是用-no-ff
完成的,但是我看不到行爲上的差異。
當提交重播時,它們發生衝突(顯然,將一個提交置於其本身之上是有問題的),所以我不得不做一個交互式重定位,刪除所有重複的提交。
缺乏對回購本身的訪問,這是我的工作流程的問題嗎?這是否表明分支機構存在其他問題?
非常好的答案,謝謝凱爾。另一個問題(我忘了提及)是我在repo服務器上有分支,所以'git push origin'幾乎總是需要強制性提交才能推送。也許我提出的Dag最大的「問題」是它只有一個時顯示四個分支;我寧願保持一個「乾淨」的DAG,而不顯着重複提交消息。知道這是「正常行爲」有幫助。 – r2evans
如果整個歷史已經出現在世人眼前,而人們正在消費它,那就留下吧。這不是很好或者什麼,但是你不應該因爲傷害其他開發者而混淆公共回購。所以一旦你推動起源,你應該做出新的提交,而不是變成舊的提交。 –