我使用命令错误地将文件添加到 Git :
git add myfile.txt
我还没跑呢git commit
。我如何撤销这些修改,使这些修改不包含在承诺中?
我使用命令错误地将文件添加到 Git :
git add myfile.txt
我还没跑呢git commit
。我如何撤销这些修改,使这些修改不包含在承诺中?
当前回答
为了澄清:git add
将当前工作目录的更改移动到中转区(索引)。
此进程被称为此进程中 中 中。因此,最自然的命令阶段更改(已修改的文件)是显而易见的:
git stage
git add
是一个简单到类型化的别名git stage
可惜没有git unstage
英git unadd
命令。相关命令更难猜或记,但很明显:
git reset HEAD --
我们可以很容易地为此创建别名:
git config --global alias.unadd 'reset HEAD --'
git config --global alias.unstage 'reset HEAD --'
最后,我们有了新的命令:
git add file1
git stage file2
git unadd file2
git unstage file1
我个人甚至使用更短的化名:
git a # For staging
git u # For unstaging
其他回答
对于特定文件 :
- git 重置我的文件_ file. txt
- git 检出我的文件. txt
对于所有添加的文件 :
- git 重置 。
- Git退房。
注:退出更改文件中的代码, 并移动到上次更新( 承诺) 状态 。重设重置代码不会改变,它只是重置信头。
git add myfile.txt
# 这将将您的文件添加到待发列表中
与这个命令完全相反的是,
git reset HEAD myfile.txt # This will undo it.
因此,您将处于上一个状态。指定的状态将再次出现在未跟踪的列表中(先前的状态)。
它会用指定的文件重置你的头。 所以, 如果您的头没有它意味着, 它只会重置它 。
也许Git已经进化了 自从你提出问题之后
$> git --version
git version 1.6.2.1
现在,你可以试试:
git reset HEAD .
这应该就是你要找的
使用使用git add -i
以删除您即将承诺的添加文件 。 例如 :
添加您不想添加的文件 :
$ git add foo
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: foo
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
# [...]#
进入交互式添加以取消您的添加( 这里输入的 git 命令是“ r”( revert) , “ 1”( 列表返回显示的第一个条目) , “ return” 退出返回模式, 以及“ q” ( quit) :
$ git add -i
staged unstaged path
1: +1/-0 nothing foo
*** Commands ***
1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked
5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp
What now> r
staged unstaged path
1: +1/-0 nothing [f]oo
Revert>> 1
staged unstaged path
* 1: +1/-0 nothing [f]oo
Revert>>
note: foo is untracked now.
reverted one path
*** Commands ***
1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked
5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp
What now> q
Bye.
$
这就是你的证据 证明"foo"又回到了未追踪的名单上
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
# [...]
# foo
nothing added to commit but untracked files present (use "git add" to track)
$
撤消撤消已经添加的文件使用 Git 很容易。 用于重设myfile.txt
已经添加的,使用:
git reset HEAD myfile.txt
解释:
启动不需要的文件后,要撤消文件,您可以完成git reset
. Head
是在本地文件中您文件的头,而最后一个参数是您文件的名称。
我为你们创建了以下图像中的步骤, 更详细地介绍了这些步骤, 包括在这些情况下可能发生的所有步骤: