我使用命令错误地将文件添加到 Git :
git add myfile.txt
我还没跑呢git commit
。我如何撤销这些修改,使这些修改不包含在承诺中?
我使用命令错误地将文件添加到 Git :
git add myfile.txt
我还没跑呢git commit
。我如何撤销这些修改,使这些修改不包含在承诺中?
当前回答
撤消撤消git add
用于未承诺更改的更改 :
git reset <file>
这将将文件从当前索引( “ 即将被承诺” 列表) 中删除, 而不更改其它内容 。
取消所有文件的所有更改 :
git reset
在旧的 Git 版本中,上述命令相当于git reset HEAD <file>
和git reset HEAD
或将失效,如果HEAD
未定义(因为你尚未在仓库中做出任何承诺)或模糊(因为你创建了一个分支,称为:HEAD
这是你不该做的蠢事在Git 1.8.2中更改。,所以在现代版本的 Git 中,你可以使用上面的命令,甚至在你第一次做出承诺之前:
当您在历史中没有任何承诺时, “ 将重置” (没有选项或参数) 用于错误退出, 但它现在给了您一个空索引( 匹配不存在的重置, 您甚至没有在 ) 。
文 件:git 重设
其他回答
撤消撤消git add
用于未承诺更改的更改 :
git reset <file>
这将将文件从当前索引( “ 即将被承诺” 列表) 中删除, 而不更改其它内容 。
取消所有文件的所有更改 :
git reset
在旧的 Git 版本中,上述命令相当于git reset HEAD <file>
和git reset HEAD
或将失效,如果HEAD
未定义(因为你尚未在仓库中做出任何承诺)或模糊(因为你创建了一个分支,称为:HEAD
这是你不该做的蠢事在Git 1.8.2中更改。,所以在现代版本的 Git 中,你可以使用上面的命令,甚至在你第一次做出承诺之前:
当您在历史中没有任何承诺时, “ 将重置” (没有选项或参数) 用于错误退出, 但它现在给了您一个空索引( 匹配不存在的重置, 您甚至没有在 ) 。
文 件:git 重设
您可以使用g基基边命令或图形用户界面 Git 。
单个文件
git reset File.txt
多个文件
git reset File1.txt File2.txt File3.txt
假设你添加了Home.js 居家公居, 项目表.js, 最新情况.js犯错,
并要撤消/重置
git reset src/components/home/Home.js src/components/listItem/ListItem.js src/components/update/Update.js
同一例子使用Git 图形界面
git gui
打开窗口。不检查您的文件分阶段变化(将承诺)
您可以在 Git 2. 23 版本后使用此命令 :
git restore --staged <filename>
或者,你可以使用这个命令:
git reset HEAD <filename>
使用*
命令一次处理多个文件 :
git reset HEAD *.prj
git reset HEAD *.bmp
git reset HEAD *gdb*
等
我第一次遇到这个问题时,发现此员额从这里和从第一个答案 我学到,我应该做的git reset <filename>
它的工作顺利。
最后,我碰巧在我的主 Git 文件夹中 有一些子文件夹。git add .
以在子文件夹中添加所有文件,然后git reset
我并不想添加的少数文件 。
如今我有很多档案和子文件夹git reset
单一个一个,但更简单git add .
首先, 然后重置少数重/ 不受欢迎但有用的文件和文件夹 。
我找到了以下方法(没有记录)在这里或在这里相对容易,我希望会有所帮助:
假设你的情况如下:
Folder/SubFolder1/file1.txt
Folder/SubFolder2/fig1.png
Folder/SubFolderX/fig.svg
Folder/SubFolder3/<manyfiles>
Folder/SubFolder4/<file1.py, file2.py, ..., file60.py, ...>
您想要添加所有文件夹和文件, 但不是fig1.png
,而不是SubFolderX
,而不是file60.py
名单不断增长...
首先,制造/制造bash shell script
并给它一个名字。你说:git_add.sh
:
然后将所有路径添加到所有文件夹和文件git reset
之前的git reset --
。您可以很容易地将路径复制到脚本中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
很重要。 那么source git_add.sh
运行它。 在那之后, 你可以做git commit -m "some comment"
,然后git push -u origin master
如果你已经设置了比特巴基特/吉图布。
免责声明:我只在Linux测试过这个。
如果您在本地 git 仓库中保留了大量文件和文件夹, 但是您不想当您保存时跟踪更改git add .
说视频和数据文件您必须学会如何使用.gitignore
. 可能来自在这里.