环顾四周,我发现使用git mv进行重命名会使Git能够检测重命名,但在我的Git (2.7.4)中,它似乎不起作用。
以下是我所做的:
~ $ mkdir git_tests
~ $ cd git_tests/
~/git_tests $ git init
Inizializzato un repository Git in /home/git_tests/.git/
~/git_tests $ echo "hello" > readme
~/git_tests $ git add readme
~/git_tests $ git status
Sul branch master
Commit iniziale
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: readme
~/git_tests $ git mv readme leggimi
~/git_tests $ git status
Sul branch master
Commit iniziale
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: leggimi我遗漏了什么吗?
发布于 2016-10-15 12:02:37
因为你还没提交文件。只有当文件已经被跟踪时,git才会以不同的方式对待重命名/文件移动--在本例中,不是这样的,所以它仍然会把它当作一个新的文件。
不管在本例中如何移动/重命名,readme/leggimi仍然是一个新的、未跟踪到git的文件,因此它将被视为是这样的。
发布于 2016-10-15 12:05:02
作为对其他答案的补充:使用git mv并不能帮助Git检测重命名。Git在事后使用启发式方法检测它们,所以使用git mv old new或git rm --cached old; mv old new; git add new做同样的事情。
(当然,如果您在old中进行了未分阶段的更改,即如果文件已更改,则没有在索引中分阶段进行。)然后,git mv old new将跟踪该文件,并保持未分阶段的更改,而git add new则将完成所有更改)。
https://stackoverflow.com/questions/40058746
复制相似问题