我試圖在git中獲得合併功能的句柄。我做了一個簡單的例子來玩和測試,但我無法達到預期的效果。我開始用下面的非常簡單的文件git合併 - 合併兩個分支與不同的指針
# calc.py
def add():
pass
def substract():
pass
我再git init
,git add .
和git commit -a -m "Initial commit"
。這現在是我的主人。我分支它創建兩個分支multiply
和divide
。我git checkout divide
並執行一些工作,以便我的divide
分支中的文件看起來像。
# calc.py
def add():
pass
def substract():
pass
def divide(x, y):
return x/y
我轉念一:
git checkout master
git merge divide
git branch -d divide
其次是做對multiply
分支,它已經從最初的分支承諾,沒有添加到它的divide
分支修改一些工作。儘管如此,我加乘作用,使我multiply
分支我的文件類似於:
# calc.py
def add():
pass
def substract():
pass
def multiply(x, y):
return x * y
我再要合併在一起一切都變成master
,所以我:
git checkout master
git merge multiply
但這會導致:
Auto-merging calc.py
CONFLICT (content): Merge conflict in calc.py
Automatic merge failed; fix conflicts and then commit the result.
,以便該文件類似於:
# calc.py
def add():
pass
def substract():
pass
<<<<<<< HEAD
def divide(x, y):
return x/y
=======
def mulitply(x, y):
return x * y
>>>>>>> mulitply
根據git merging文檔,這是預期的行爲。我知道我可以簡單地刪除添加的註釋和commit
。
無論如何合併這些例子,而不必手動干預?我正在考慮使用--strategy
標誌,但是我無法在master更改後自動合併文件。