git: mv command
我读到mv命令基本上与
1 2 3
| $ mv README.txt README
$ git rm README.txt
$ git add README |
当然,如果我这样做是否完全相同:
1 2 3
| $ git rm --cached README.txt
# [rename file using right click rename]
$ git add README |
号
- 正如有人某天告诉我的那样:你是否考虑过接受其中一个答案作为正确答案,或者提供更多你真正想要的细节,以便我们改进我们的答案,从而获得新闻?
- @加布里埃尔L.奥利维拉,我在回答中增加了更多的细节。
不。当您想要的是从索引中取消对路径(在本例中是EDOCX1[1])的固定和删除时,建议使用EDOCX1[0]参数。无论修改与否,工作树文件都将单独保存。
在这种情况下,重命名文件的更好方法是使用git的build-in-mv命令。所以:
1
| $ git mv README.txt README |
将具有与第一种方法相同的效果,但类型较少。
字体:http://www.kernel.org/pub/software/scm/git/docs/git-rm.html
- 嘿,对不起,我不明白你说的"工作树文件"是什么意思。
- 顺便问一句,你的意思是说两个文件实际上是相同的,但根据目的不同,建议使用1而不是另一个(尽管两种选择中的任何一种都会使文件以完全相同的状态结束?)
- @Pacerier"工作树文件"是指真实的文件(保存在硬盘上)。当您使用git rm时,git确实从您的磁盘中删除了该文件,而使用git rm --cached时,只从索引(提交头)中删除该文件,将该文件(是否修改)留在硬盘上。我的意思是,与使用两种解决方案不同,使用git mv是更好的解决方案,因为只需一个命令就可以满足您的需要。另外,让git树知道它是一个移动(重命名,无论什么),而不是一个"完全新的文件"。知道了?
- 好的,酷,我得到了"工作树文件"的部分。然而,不管我们怎么做,Git都会认为它是一个"全新的文件",而不是一个"移动"(因为Git真的不知道移动),所以基本上我想知道的是,当我们将1与2进行比较时,Git将生成的"元数据"有什么不同吗)
- @起搏器好吧,我想不是,因为在两种情况下你都会得到相同的东西。一个文件上的rm和另一个文件上的add(rm一次所做的)。
明白Git MV的目的是什么吗?.
是的,差不多一样。
看到Git MV记录移动了吗?
是一样的。
- 我已经阅读了链接,但它并不能告诉我我的第一个选择是否与问题中的第二个选择相同。