我在分支机构工作,请说b1
。假设要部署的主要分支为stage
。我从b1
分叉了master
分支-这是我们的惯例。
这就是这种情况。我目前在b1
中。在一个文件中,我将其命名为users.txt
,其中包含一个类似于以下内容的代码段:
print("Hello user")
print("Bye user")
在stage
分支中,相同的代码段如下所示:
print("Hello user")
print("You are welcome")
print("Bye user")
现在在我的工作(b1
)分支中,我想进行这样的更改:当合并到stage
时,将删除以下行:print("You are welcome")
并进行stage
分支看起来像。换句话说,在执行git checkout stage
git merge b1
之后-stage
文件user.txt
看起来像这样:
print("Hello user")
print("Bye user")
换句话说:通过在分支stage
中进行更改来删除分支b1
中的行,其中首先要删除的行在b1
中不存在。
一个警告:我不允许按照惯例将stage
合并为b1
(老实说-我不明白)
答案 0 :(得分:0)
(过时答案的免责声明:在我回答完之后,问题已被编辑,现在stage
不应合并到功能分支中)
由于b1
和stage
的{{1}}文件具有不同的初始状态,因此您首先必须更新users.txt
来适应最近的更改,即新的它缺少的线。
b1
在这一点上,您可能(或不需要)解决冲突。这样,您的git checkout stage
git pull
git checkout b1
git merge stage
将类似于users.txt
上的那个。只需删除该行,添加并提交:
stage
在您评论不合并任何功能后进行编辑
如果您无法合并# go delete the line in "users.txt" then...
git add path/to/users.txt
git commit -m "Deleted said line"
,但被允许合并其原线所在的要素,请继续。您必须找到它来自哪个提交:
stage
这将输出接触该行的最后一次提交。注意其哈希值。然后,您可以按照Theraot在注释中的提示,以樱桃选择的方式将提交提交导入分支。
git log -1 --oneline -S "Copy the text of the line here"