我使用命令错误地将文件添加到 Git :
git add myfile.txt
我还没跑呢git commit
。我如何撤销这些修改,使这些修改不包含在承诺中?
我使用命令错误地将文件添加到 Git :
git add myfile.txt
我还没跑呢git commit
。我如何撤销这些修改,使这些修改不包含在承诺中?
当前回答
运行运行中
git gui
,然后手动删除所有文件,或者选择全部文件,然后单击实施后的非阶段按钮。
其他回答
运行运行中
git gui
,然后手动删除所有文件,或者选择全部文件,然后单击实施后的非阶段按钮。
键入 :
git status
Git会告诉你什么是舞台,等等, 包括关于如何解除舞台的指示:
use "git reset HEAD <file>..." to unstage
我发现吉特做的相当不错 裸体我做正确的事情 在这样的情况下。
注:最近Git版本(1.8.4.x)更改了此电文:
(use "git rm --cached <file>..." to unstage)
为了澄清: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 rm --cached . -r
将“ un- add- add” 添加您从当前目录中添加的所有内容递归到当前目录
吉特拥有每一个可以想象到的行动的指令, 但是它需要广泛的知识才能把事情弄好, 并且因为它充其量是反直觉的...
你以前做过的事:
git add .
,或git add <file>
.你想怎样:
从索引中删除文件, 但保留其版本, 并保留工作副本中未承诺的更改 :
git reset HEAD <file>
从 HEAD 将文件重置为最后一个状态, 撤消更改并将其从索引中删除 :
# Think `svn revert <file>` IIRC.
git reset HEAD <file>
git checkout <file>
# If you have a `<branch>` named like `<file>`, use:
git checkout -- <file>
之所以需要这样做,是因为git reset --hard HEAD
单项文件不会工作。
删除删除<file>
从索引和版本中创建, 保留未翻过的文件, 更改工作副本 :
git rm --cached <file>
删除删除<file>
从工作副本和版本完全版本中产生 :
git rm <file>