2013-08-07 111 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