天天看點

git cherry-pick git diff repo sync

git cherry-pick conflict:

git cherry-pick git diff repo sync

just do like this:

1.git status

git cherry-pick git diff repo sync

2.find the files which are both modified.

3.edit and solve the conflict one file by one file.

4.git add the files you have just modified in step 3.

5.git cherry-pick --continue//注意是 兩個-

OK. Make it!

接着寫看看git submodule和repo sync失敗的問題:

通常為了分布式開發工程,使用repo和git叢集管理,repo管理工程,git管理各個主子產品和子子產品,子子產品的remote倉庫極有可能是分離的。在使用中會遇到一些奇怪的問題,比如:repo sync失敗

git cherry-pick git diff repo sync

說是有改動沒有commit。就是用git diff一看

git diff出現submodule的diff:

git cherry-pick git diff repo sync

就是這種改動,我發誓,這不是我幹的,我沒有改動這個庫。

當然啦,我不是配置管理人員,我真不懂裡面的原理,但是我猜測估計是這個子子產品的代碼其實是repo sync過程中從對應的遠端倉庫git pull的,有新增,然後index内容就與repo sync時儲存的内容不一樣了(具體這個index是幹啥的我真不想去研究)。

解決辦法:

git rm --cached ambalink_sdk_3_10/yuneec/ync_WCCS

然後git diff,這個diff就消失了。

但是repo sync 還是失敗,現象跟上面repo sync失敗一樣。

也就是說,雖然git diff看不見diff了,但是還是沒有commit,上一步git rm --cached之後接上git commit随便加上點commit info就可以區repo sync了,sync會把所有submodule同步遠倉庫,但有個讨厭的地方就是,我們commit的東西沒有被覆寫,需要reset回去。reset回去之後git diff 又會出現上文中submodule 的diff。

這個解決了同步不下來的問題,但治标不治本,有空再繼續研究吧。

如果哪位大神在行,跪求指導。