我有一個主項目和一個分支。當我將master與branch合併時,branch中的代碼覆蓋master中的代碼,並且我想只在master中插入不同的代碼,或者至少要問我想保留哪個代碼。下面是我如何建立一個一切簡單的例子:Git分支合併時會覆蓋master,而不會產生衝突
mkdir project
cd project
git init
項目目錄我呼籲的index.php與此代碼一個文件中:
<?php
/**
* This is master code.
*/
class ClassName extends AnotherClass
{
function __construct(argument)
{
// this is from master
}
}
然後我製作分支:
git checkout -b my_branch
我把這段代碼裏面的index.php:
<?php
/**
* This is branch code.
*/
class ClassName extends AnotherClass
{
function __construct(argument)
{
// this is from branch
}
}
然後我籤掌握並嘗試合併:
git checkout master
git merge my_branch
然後分支代碼將覆蓋一位來自主人。在我的主人,我會有像分支一樣的代碼。 git不應該讓我選擇保留哪些代碼,還是有什麼辦法強制這樣做?如果不是,我做錯了什麼?
如果我讓在分支代碼這一變化:
class ClassName extends AnotherClass => class ClassName extends MyClass
然後混帳會做遞歸的戰略合併,並會採取從支MyClass
並保留一切從主。
我不知道如果我向您展示很好的例子,讓我嘗試再一次說明情況,請與我裸露:
1)我有一些代碼在master
不中branch
存在。
2)我在branch
中有一些代碼在master
中不存在。
我應該如何處理這個問題,而不是在主分支中丟失不同的代碼?如果這不可能發生在一些乾淨而有計劃的方式上,我能否至少強迫我問我想要處理這些差異?我只能管理分支覆蓋主,這是不好的。
我真的很困惑。謝謝
謝謝我會嘗試與差異 – offline
@offline如果它回答我們的問題,您可以接受它。 –