git cherry-pick git diff repo sync

git cherry-pick conflict:
這裏寫圖片描述
just do like this:
1.git status
這裏寫圖片描述
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失敗

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

git diff出現submodule的diff:
在這裏插入圖片描述
就是這種改動,我發誓,這不是我乾的,我沒有改動這個庫。
當然啦,我不是配置管理人員,我真不懂裏面的原理,但是我猜測估計是這個子模塊的代碼其實是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。

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章