我使用命令错误地将文件添加到 Git :
git add myfile.txt
我还没有执行 git 承诺 。 我如何撤销此操作, 使这些更改不被包含在承诺中 ?
我使用命令错误地将文件添加到 Git :
git add myfile.txt
我还没有执行 git 承诺 。 我如何撤销此操作, 使这些更改不被包含在承诺中 ?
当前回答
git reset filename.txt
将会从当前索引“ 即将被执行” 区域中删除一个名为文件名. txt 的文件, 而不更改其它内容 。
其他回答
吉特拥有每一个可以想象到的行动的指令, 但是它需要广泛的知识才能把事情弄好, 并且因为它充其量是反直觉的...
你以前做过的事:
更改文件并使用 git 添加. , 或 git 添加 < file > 。
你想怎样:
删除索引中的文件, 但保留其版本, 并保留工作副本中未承诺的更改 : git 重置 HEAD < file > 将文件重置为 HEAD 最后一个状态, 撤销更改并将其从索引中删除 : # 思考 ` svn return < file\\ IIRC. git 重置 HEAD < file> git checkout < file > # 如果您有一个像 {file} 这样的\\ 一样的\\ branch}, 使用: git checkout - < file > 这是需要的, 因为 git 重置 -- hard HEAD 将不与单个文件一起工作 。 从索引和版本中删除 < file > , 保留未翻过的文件, 工作副本中的更改 : git rm -cacheed < file > 将 < file > 从工作副本和版本中完全删除: git rm < file > 。
问题未明确提出。 原因是Git添加有两个含义:
将新文件添加到中转区, 然后用 git rm -- checked 文件撤消。 向中转区添加一个修改过的文件, 然后用 git 重置 HEAD 文件撤消 。
如果有疑问,使用
git reset HEAD file
因为它在两种情况下都做了预期的事
警告: 如果您在已修改的文件上做了 git rm -- checked 文件( 之前在仓库中存在过的文件) , 文件将会在 git 承诺时被删除 ! 它将仍然存在于您的文件系统中, 但是如果有其他人拉动您的执行, 文件将会被从工作树上删除 。
git status 会告诉您文件是新文件还是已修改 :
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: my_new_file.txt
modified: my_modified_file.txt
git reset filename.txt
将会从当前索引中删除名为文件名文件名. txt 的文件( 也称为“ 存储区域 ” , 即保存“ 即将执行” 的更改 ) , 而不更改其他任何更改( 工作目录没有被覆盖 ) 。
git rm --cached . -r
将“ un- add- add” 添加您从当前目录中添加的所有内容递归到当前目录
还有一个互动模式:
git add -i
选择 选项 3 到 取消 添加文件 。 在我的情况中, 我通常要添加多个文件, 用交互模式, 您可以使用这样的数字来添加文件 。 这将除 4: 1, 1, 2, 3, 和 5 以外, 全部要用这个数字来添加文件 : 1, 2, 3 和 5
要选择一个序列, 只要类型 1-5 就可以从 1 到 5 全部取出 。
Git 中转文件