Git:分支上不再需要的文件应如何处理?

4
我的分支"branch_a"有一个文件(file_a.txt),这个文件和"master"分支里同名的文件应该是相同的。我想通过某种方式来修改这个分支,让这个已经改变的文件从分支中被删除,也就是说,恢复为那个未改变的文件,而不是保留这个已经改变的文件。我的目标是避免维护这个文件,因为它本来就不应该被改变。
一开始我认为git-reset可能会有帮助。然后我想也许我应该用“git-rm”命令来删除这个文件,但这样做将完全不留给我这个文件。我需要将其从分支中移除,以便它不再是与“master”分支上的版本不同的版本。在这种情况下最好的做法是什么?
1个回答

4

我假设你只需要将该文件重置为master上的版本,而不是擦除任何更改历史,是这样吗?前者很容易,后者需要修改历史记录,不应轻易进行(特别是如果你已经将分支推送到本地仓库之外)。

要将foo/bar/baz.txt文件内容重置为在master上的状态,只需检出你的分支并运行

git checkout master -- foo/bar/baz.txt

这将从主分支获取文件,写入你的工作副本并将其暂存到索引中。现在你可以只需git commit,你的文件就会与master上的文件匹配。

是的,我相信这会产生我想要的效果,但这不是同一件事情。因为只要主分支上的文件发生更改(上游),我就必须在我的分支上再次合并或变基。我不想这样做,因为我正在工作的分支是特定于项目的,仅包含配置更改,而不是代码更改。所以我不希望这个文件再存在于该分支中。 - C. Kelly
@ckelly:我认为你不知道版本控制系统是如何工作的。如果在主分支上有任何更改,除非你将这些更改合并到你的分支中,否则你看不到这些更改。你所要求的是相当不可能的。 - Lily Ballard
是的,凯文。我在Git方面还很新手。我正在寻找的是一个全新的功能。所以在“透明”的分支被发明之前,我只能定期进行rebase/merge操作。 - C. Kelly

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接