理解git patch命令(git add -p)

时间:2014-04-10 22:33:35

标签: git

假设我有原始文件(numbers.txt),

1
2
3
.
4
5

一旦我更改了文件(numbers.txt),我就得到了

1
2
3
-.
4
5
+6

在我进行更改之前,我想看看我想从最新的编辑中接受哪些行。

当我运行git patch(git add -p)命令时,将numbers.txt文件放入,删除点(。),如上所示。

1
2
3
4
5
6

现在我可以使用(git commit -m'最新更新')

此时我仍然会在我的非舞台区域中输入'numbers.txt'文件。哪个是包含所有原始补丁的文件。但是,在非阶段区域中的'numbers.txt'并不能准确表示我在我的存储库中接受的补丁。但我的项目目录仍包含此文件。

将来,当对(number.txt)文件进行新的补丁/更改时,这些更改将与我目录中的(numbers.txt)进行比较,而不是结帐时的(numbers.txt)。

问题是“你们如何摆脱这个numbers.txt”文件并将其更新为已提交的相同numbers.txt?

1 个答案:

答案 0 :(得分:0)

这样做的方法是,

git checkout - [FILENAME]

这会让git将结帐(索引)中的文件提取到我的工作目录中。

如果我想将结帐(索引)中的所有文件提取到我的工作目录中,我需要输入,

git checkout - 。

。最后会带来从结账(索引)到我工作目录的所有内容。

当我们接受文件补丁时,这对于上述两个命令很安静。

因为你会遇到一些情况,你会接受一些文件到FILE并拒绝一些,这会把你的文件放到分阶段和非阶段区域。您可以使用“git status”命令确认这一点。

提交文件后,您不需要在非暂存区域内存在您的文件版本。为此,您需要使用git checkout - FILENAME命令将文件从checkout(index)带入您的工作目录。

如果您修补了多个文件,那么使用 git checkout - 。命令

是很有用的