Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
手动重新添加文件与使用git revert有区别吗?_Git_Revert - Fatal编程技术网

手动重新添加文件与使用git revert有区别吗?

手动重新添加文件与使用git revert有区别吗?,git,revert,Git,Revert,假设我做了以下工作: git rm file.ext git commit 我想知道git内部是否有区别 git revert HEAD 及 git可能意识到object file.ext并没有因为它的散列而改变,也没有以任何方式将其添加为新对象,对吧?如果您在提交中没有改变任何其他内容,那么最终的提交将基本相同git revert将自动生成一条正确的提交消息,引用您的旧提交(以便您稍后知道哪个提交被还原)。git相当智能,如果它具有相同的名称,它甚至可能会识别重新添加实际上是同一个对象。不

假设我做了以下工作:

git rm file.ext
git commit
我想知道git内部是否有区别

git revert HEAD


git可能意识到object file.ext并没有因为它的散列而改变,也没有以任何方式将其添加为新对象,对吧?

如果您在提交中没有改变任何其他内容,那么最终的提交将基本相同
git revert
将自动生成一条正确的提交消息,引用您的旧提交(以便您稍后知道哪个提交被还原)。

git相当智能,如果它具有相同的名称,它甚至可能会识别重新添加实际上是同一个对象。不过,我不知道这是事实。@patrickvacek:Git不仅相当聪明,而且非常聪明。如果文件具有相同的内容,则即使文件名不同,也会将其识别为相同。如果文件名不同,但内容足够相似,则会显示为文件移动或复制。@knittl谢谢!事实上,我觉得你的评论比你的回答好;
git checkout HEAD file.ext
git commit