我使用命令错误地将文件添加到 Git :
git add myfile.txt
我还没有执行 git 承诺 。 我如何撤销此操作, 使这些更改不被包含在承诺中 ?
我使用命令错误地将文件添加到 Git :
git add myfile.txt
我还没有执行 git 承诺 。 我如何撤销此操作, 使这些更改不被包含在承诺中 ?
当前回答
吉特拥有每一个可以想象到的行动的指令, 但是它需要广泛的知识才能把事情弄好, 并且因为它充其量是反直觉的...
你以前做过的事:
更改文件并使用 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 gui
,然后手动删除所有文件,或者选择全部文件,然后从执行按钮中单击非阶段。
git rm --cached . -r
将“ un- add- add” 添加您从当前目录中添加的所有内容递归到当前目录
您可以使用 Git 命令或 Git 图形用户界面来卸载或撤销 。
单个文件
git reset File.txt
多个文件
git reset File1.txt File2.txt File3.txt
示例示例示例示例
假设你错误地添加了Home. Js, ListThompt. Js, 更新js,
调
并要撤消/重置
git reset src/components/home/Home.js src/components/listItem/ListItem.js src/components/update/Update.js
调
使用 Git 图形界面的相同例子
git gui
打开窗口。不从阶段更改中检查您的文件( 将执行)
调
我第一次遇到这个问题时, 我发现这篇文章在这里, 从第一个答案我学到我应该做的是 Git 重置 < filename > , 效果很好 。
最后,我碰巧在我的主 Git 文件夹中有一些子文件夹。 我发现很容易在子文件夹中添加所有文件, 然后重置一些我不想添加的文件 。
现在,我有很多文件和子文件夹。 单次重置是无聊的, 但还是容易添加。 首先, 然后再重置少数重/ 不受欢迎但有用的文件和文件夹 。
我发现以下方法(这里或这里没有记录)比较容易。我希望它能有所帮助:
假设你的情况如下:
Folder/SubFolder1/file1.txt
Folder/SubFolder2/fig1.png
Folder/SubFolderX/fig.svg
Folder/SubFolder3/<manyfiles>
Folder/SubFolder4/<file1.py, file2.py, ..., file60.py, ...>
您想要添加所有文件夹和文件, 但不是 digg1. png, 而不是 SubFolderX, 而不是 file60. py, 而列表还在不断增长...
首先, 制作/ 创建一个 shash shell 脚本并给它命名 。 例如, git_ add. sh :
然后将所有路径添加到所有文件夹和文件, 您想要在 git 重设之前重置所有文件夹和文件 -- 。 您可以随文件列表增长, 很容易地将路径复制到脚本 git_ add.sh。 git_ add.sh 脚本应该像这样看 :
#!/bin/bash
git add .
git reset -- Folder/SubFolder2/fig1.png
git reset -- Folder/SubFolderX
git reset -- Folder/SubFolder4/file60.py
# ! / bin/ bash 很重要 。 然后做源 git_ add. sh 运行它。 在此之后, 您可以执行 git 承诺 - m " some opotion" , 然后再做 git push - u 源主, 如果您已经设置了 Bitbucket/ Github / Github 。
免责声明:我只在Linux测试过这个。
如果您在本地 git 仓库中总是保留很多文件和文件夹, 但是您不想让 Git 添加... , 例如视频和数据文件时跟踪更改, 您必须学习如何使用. gitignore。 也许从这里学习 。
此命令将卸载您的更改 :
git reset HEAD filename.txt
您也可以使用
git add -p
以添加文件的部分。