Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.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在提交前取消删除?_Git - Fatal编程技术网

git在提交前取消删除?

git在提交前取消删除?,git,Git,我不小心犯了一个错误 git rm filename.txt-f 现在,如果我执行一个git commit-m',它将提交这个删除。如何在执行git提交之前取消删除它?要将当前提交(头)中的版本同时放入索引(暂存区域,您将要提交的内容)和工作树中,请执行以下操作: git checkout HEAD filename.txt 请注意,这不仅仅是为了“unremoval”,而是为了让您从提交返回到版本,无论您是通过更改一行还是删除整个文件来修改它 另外,如果其他人发现这是在寻找一个稍微不同的答案

我不小心犯了一个错误

git rm filename.txt-f


现在,如果我执行一个
git commit-m'
,它将提交这个删除。如何在执行git提交之前取消删除它?

要将当前提交(
)中的版本同时放入索引(暂存区域,您将要提交的内容)和工作树中,请执行以下操作:

git checkout HEAD filename.txt
请注意,这不仅仅是为了“unremoval”,而是为了让您从提交返回到版本,无论您是通过更改一行还是删除整个文件来修改它

另外,如果其他人发现这是在寻找一个稍微不同的答案,如果您想将版本从索引返回到工作树中,您可以使用

git checkout filename.txt

当你设法准备提交所有内容,然后做一些愚蠢的事情(比如删除文件)时,这很方便——你可以通过从索引中恢复来保存自己。

我当然希望你没有用空消息提交的习惯……这很尴尬,但是的……我在使用subversion时确实倾向于这样做。但幸运的是,git commit在默认情况下会要求我提供消息是的,我建议的做法是只运行
git commit
(无参数),让它打开编辑器并推动您前进。+1特别是提到这也会暂存文件-我认为这会导致混乱(无论如何,在S.O上)人们在描述git checkout的效果时通常不会提到这一点--@Mark:啊,是的,这可能会让你大吃一惊。如果您认为索引位于所有操作的工作树和存储库之间,而不仅仅是工作树->索引->提交,那么这就更有意义了。有关于特殊字符的提示吗?我尝试从不在文件名中使用它们,但在这种情况下:
git签出头“…logo construcci\303\263n.svg”
找不到带有西班牙语口音的文件:
错误:pathspec'…logo construcci\303\263n.svg'与git已知的任何文件都不匹配。
但git状态显示:
已删除:“…logo construcci\303\263n.svg”
@AlexandruTrandafirCatalin如果没有类似的文件名需要担心,请尝试使用tab补全或globbing(
…logo construcci*n.svg
)?