我使用命令错误地将文件添加到 Git :
git add myfile.txt
我还没跑呢git commit
。我如何撤销这些修改,使这些修改不包含在承诺中?
我使用命令错误地将文件添加到 Git :
git add myfile.txt
我还没跑呢git commit
。我如何撤销这些修改,使这些修改不包含在承诺中?
当前回答
对于特定文件 :
- git 重置我的文件_ file. txt
- git 检出我的文件. txt
对于所有添加的文件 :
- git 重置 。
- Git退房。
注:退出更改文件中的代码, 并移动到上次更新( 承诺) 状态 。重设重置代码不会改变,它只是重置信头。
其他回答
请注意,如果您没有指定修改,则必须包含一个分隔符。例如,我的控制台:
git reset <path_to_file>
fatal: ambiguous argument '<path_to_file>': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
git reset -- <path_to_file>
Unstaged changes after reset:
M <path_to_file>
(1.7.5.4版总版)
撤消撤消已经添加的文件使用 Git 很容易。 用于重设myfile.txt
已经添加的,使用:
git reset HEAD myfile.txt
解释:
启动不需要的文件后,要撤消文件,您可以完成git reset
. Head
是在本地文件中您文件的头,而最后一个参数是您文件的名称。
我为你们创建了以下图像中的步骤, 更详细地介绍了这些步骤, 包括在这些情况下可能发生的所有步骤:
您想要 :
git rm --cached <added_file_to_undo>
理由:
当我刚开始做这个的时候,我第一次尝试
git reset .
(取消我最初添加的全部内容), 只是为了得到这个(不是这样的)有用信息:
fatal: Failed to resolve 'HEAD' as a valid ref.
结果发现,这是因为 HEAD ref (blanch?) 直到第一次承诺之后才存在。 这就是说,你会遇到跟我一样的初学者的问题, 如果你的工作流程像我的一样, 像是:
git init
git add .
git status
...很多垃圾卷轴 通过...
该死,我不想加上这些
google “ 未跳过 git 添加 ”
找到堆叠溢出
git reset .
致命: 解决“ HEAD” 有效参考失败 。
更进一步发现a 窃听器记录与邮件列表中的无益对比。
正确的解决方案就在 Git 状态输出中( 是的, 我将它伪装成“ 废话 ” ) 。
... # Changes to be committed: # (use "git rm --cached <file>..." to unstage) ...
解决的确是使用git rm --cached FILE
.
请注意这里其他地方的警告-git rm
删除本地文件的工作副本,但否使用-- -- cooked。以下是git help rm
:
--cached 使用此选项来卸载和从索引中删除路径。 工作树文件, 不论是否修改, 都会被左移 。
我开始使用
git rm --cached .
把所有东西都搬走,重新开始。虽然没有成功,因为当add .
循环,结果rm
需要满足的需求-r
来重复。 叹气 。
git rm -r --cached .
好了,现在我回到我开始的地方 下次我再用-n
以进行一个干燥的运行,然后观察将要增加什么:
git add -n .
在信任之前,我把所有东西都拉到一个安全的地方git help rm
关于 The 的--cached
你们不要毁灭任何物,如果我误译了它,
git add -A
用于将所有文件添加到您的承诺( 阶段) 。
git reset
是“ git 添加 - A” 命令的对面。它会删除所有要执行的分阶段文件( 手段已准备就绪 ) 。
同样,为了添加一个用于承诺的具体文件,我们使用git add <filename>
相同的方式, to unstage( 或重置) 一个我们添加的具体文件git add
我们使用git reset <filename>
.
git 重置与 git 添加完全相反 。
git reset filename.txt
将删除命名的文件filename.txt
从当前索引(也称为“存储区域”,即“即将实施”的改动”被保存的地方)中取出,不作任何其他改动(工作目录没有被覆盖)。