我使用命令错误地将文件添加到 Git :
git add myfile.txt
我还没有执行 git 承诺 。 我如何撤销此操作, 使这些更改不被包含在承诺中 ?
我使用命令错误地将文件添加到 Git :
git add myfile.txt
我还没有执行 git 承诺 。 我如何撤销此操作, 使这些更改不被包含在承诺中 ?
当前回答
如果您想要还原最后一个任务, 但仍要保留在任务中本地作出的更改, 请使用此命令 :
git reset HEAD~1 --mixed
其他回答
要澄清: git 添加从当前工作目录向中转区域( index) 移动到中转区域( index) 的移动 。
这个过程叫做中转。 因此,最自然的指令是 进行修改( 更改过的文件) 。 显而易见的是 :
git stage
git 添加只是 Git 阶段的一种更容易到类型化的别名
可惜没有非舞台或不添加命令。 相关命令更难猜测或记住, 但显而易见:
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 添加我的文件. txt # 这将将您的文件添加到待发列表中
与这个命令完全相反的是,
git reset HEAD myfile.txt # This will undo it.
因此,您将处于上一个状态。指定的状态将再次出现在未跟踪的列表中(先前的状态)。
它会用指定的文件重置你的头。 所以, 如果您的头没有它意味着, 它只会重置它 。
对于特定文件 :
git 重置我的檔案. txt git 檢查我的檔案. txt
对于所有添加的文件 :
git 重新设置. git 检查退出 。
注意: 检出将文件的代码更改, 并移动到上次更新( 承诺) 状态。 重置不会更改代码; 它只是重置信头 。
git reset filename.txt
将会从当前索引中删除名为文件名文件名. txt 的文件( 也称为“ 存储区域 ” , 即保存“ 即将执行” 的更改 ) , 而不更改其他任何更改( 工作目录没有被覆盖 ) 。
git rm --cached . -r
将“ un- add- add” 添加您从当前目录中添加的所有内容递归到当前目录