我的git倉庫有2個分支:master和develop。我想要一個腳本,可以自動將開發的所有更改合併到主文件中。腳本自動合併2個git分支?
我用詹金斯:Git的插件克隆庫,然後這個腳本(的「版本」變量是一個工作參數)運行:
# merge
git checkout -b develop origin/develop
git checkout master
git merge -Xtheirs --squash develop -m "v${version}"
# commit
git commit -m "v${version}"
# tag
git tag v${version} -m "v${version}"
# push
git push origin v${version}
我試圖在一個測試版本庫,它失敗:
GIT中合併-Xtheirs開發
衝突(刪除/修改):刪除的test.txt在開發和HEAD修改。 test.txt的HEAD版本留在樹中。
自動合併失敗;修復衝突,然後提交結果。
如何解決這個矛盾自動?我希望腳本根據「開發」分支總是添加/修改/刪除文件,因爲主人從來沒有碰過...
你說「主人是從來不碰」,但你得到一個衝突呢?如果它實際上從未觸及過,那麼一個簡單的'git merge -ff-only origin/develop'就足夠了。 – fge 2011-12-20 09:19:53
如果您想使用'origin/develop'版本替換主版本,而不是記錄合併提交,爲什麼還要使用'merge --nosquash'? git checkout master && git reset origin/develop && git reset --soft HEAD @ {1}'或類似的東西會不會更清潔? – 2011-12-20 09:24:15