2017-03-09 30 views
2

有没有办法迫使混帐考虑复制的文件作为新的,而不是移动/?Git的 - 马克文件是新的,而不是移动/复制

+0

因此,您希望*失去与该文件相关的所有历史记录?如果在移动的同一次提交中更改足够的内容,它(可能)将无法将其作为移动进行跟踪。 – crashmstr

+0

@crashmstr基本上我已经移动了一个文件,重命名了它,并且改变了它的内容,我想要的是将它作为一个新文件进行跟踪,但它被跟踪为一个移动......有什么意义,但在这种情况下,我想强制文件为新的。这可能吗?如果是,如何? – notGeek

+1

'混帐配置diff.renames FALSE' – PetSerAl

回答

1

我假设你使用git mv移动该文件,这就是为什么Git是报告为已被移动。事情是这样的:

git mv file.txt newfolder 

但Git不会知道它看不到,所以如果你从文件系统移动文件Git会看到在新位置的文件视为新:

mv file.txt newfolder 

您可以git add这个文件,将其添加到索引中。在此之后,你可以任选地从混帐删除原始文件:

git add newfolder/file.txt 
git rm file.txt 

请记住,这意味着Git的将无法跟踪使用这种方法这个文件的历史记录。虽然使用git mv也会使追踪移动文件的历史记录变得困难,但它至少会使其成为可能。

+0

其实这是行不通的,Git跟踪内容,如果你移动通过“git的移动”或连续两个文件“混帐添加” git的RM'不介意; git会查找文件内容并发现文件已被移动(除非'git add'和'git rm'在分离的提交中完成)。 –

0

Git是非常聪明搞清楚当一个文件被移动(如果删除该文件,并在同它添加在新位置提交,Git会找出该文件已被移动)。

如果你真的想要的文件被认为是“新”,而不是“感动”,可能是最好的选择是删除和添加文件到新的位置分开提交。

相关问题