2013-08-07 191 views
0

Mercurial有一个命令addr,可以同时添加和删除路径,因此它可以跟踪给定文件移动到目录中的不同路径。Git - 跟踪已经跟踪的文件的移动

为此在Git中,我发现我必须使用两个独立的命令:

git add -u <path>

会注意到这些文件的消失从原来的路径,然后

git add <path>

会在其他地方注意到它们的外观。

但似乎并没有与Mercurial的addr命令相当的一步。还是我误会了?

回答

3

Git has a move command可以用来移动文件/文件夹:

git mv <file or directory> <destination> 

您还可以使用的add--all-A国旗在指数

git add -A 
更新两个新文件和删除的文件

来自official Linux Kernel Git documentation for git add(强调我的):

-A 
--all 

-u一样,但是除了索引之外,还针对工作树中的文件匹配<filepattern>。这意味着它将找到新文件以及分段修改的内容并删除不再在工作树中的文件。

+0

如果文件还没有移动,'git mv'就可以了; Git会为我移动它。但我更喜欢使用常规的命令行工具,然后只在需要Git特定服务时才转向Git。我想知道如何让Git跟踪已移动的文件,就像Mercurial的addr一样。 – brannerchinese

+0

啊,我明白了。 'git add -A '看起来似乎只在一个步骤中跟踪增加和删除。谢谢! – brannerchinese