删除当前分支中不存在的行

时间:2019-06-03 08:36:37

标签: git

我在分支机构工作,请说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(老实说-我不明白)

1 个答案:

答案 0 :(得分:0)

(过时答案的免责声明:在我回答完之后,问题已被编辑,现在stage不应合并到功能分支中)


由于b1stage的{​​{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"