我們一直試圖讓git-subtree在一個項目上工作(使用git版本1.7.9.4)並且遇到了一些複雜情況。別人以前添加的子樹用這個命令在幾個月前:git-subtree pull併發症
git subtree add --prefix=foo [email protected]:foo.git master
現在已經出現了實質性的變化foo
,我們希望在這些變化進行合併,理想的擠壓他們的文件無已。自從它們被導入後被修改。
我已經嘗試了三件事情來嘗試並在變化中合併。
第一:
git subtree pull --squash -P foo [email protected]:foo.git master
會拋出異常:Can't squash-merge: 'foo' was never added.
二:
git subtree pull -P foo [email protected]:foo.git master
這工作(在某種程度上),但在所有提交的拉動問題並與已修改的文件發生衝突。
最後,我想這一點:
git pull --squash -s subtree [email protected]:foo.git master
這給了我想要的結果,與輸出Automatic merge went well; stopped before committing as requested
和所有的文件顯示爲修改(與正確的內容)。
理想情況下,我想繼續使用第一個git-subtree
版本,並獲得接近最後一個版本的輸出。如果我們必須一直使用最後一個版本,那麼我們會這麼做,但是我對於爲什麼最後一個版本不會產生合併衝突而中間產生衝突有點困惑。
任何幫助表示讚賞。
我遇到了同樣的問題,原因是我在嘗試拉動時錯過了前綴選項中的子文件夾。將此添加爲註釋,因爲錯誤消息沒有給出任何關於此錯誤的指示,並且故障排除使我在此處找到了答案。 – 2015-12-08 18:25:57
謝謝,這很有用。我有一個相關的問題,在將子樹添加到其中後,我移動了該子目錄,這看起來好像讓這個匹配成功了 – 2017-01-04 21:20:45