我使用命令错误地将文件添加到 Git :

git add myfile.txt

我还没跑呢git commit。我如何撤销这些修改,使这些修改不包含在承诺中?


当前回答

在源树中,您可以通过 GUI 轻松地做到这一点。您可以检查源树命令用什么来取消文件 。

我创建了一个新的文件, 并将其添加到 Git 中。 然后我用“ 原始树 GUI” 解除了它。 这是结果 :

解除文件 [08/12/ 15 10: 43] git - c diff. mnemonicprefix= false - c c c核心. cootepath= false - creedical. helper= 源树重新设置 -q - 路径/ 到/ 文件/ files/ filename.java

源树用途reset以卸载新文件。

其他回答

要撤销git add, 使用 :

git reset filename

撤消撤消已经添加的文件使用 Git 很容易。 用于重设myfile.txt已经添加的,使用:

git reset HEAD myfile.txt

解释:

启动不需要的文件后,要撤消文件,您可以完成git reset. Head是在本地文件中您文件的头,而最后一个参数是您文件的名称。

我为你们创建了以下图像中的步骤, 更详细地介绍了这些步骤, 包括在这些情况下可能发生的所有步骤:

git reset HEAD file

对于特定文件 :

  • git 重置我的文件_ file. txt
  • git 检出我的文件. txt

对于所有添加的文件 :

  • git 重置 。
  • Git退房。

注:退出更改文件中的代码, 并移动到上次更新( 承诺) 状态 。重设重置代码不会改变,它只是重置信头。

我第一次遇到这个问题时,发现此员额从这里和从第一个答案 我学到,我应该做的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. 可能来自在这里.

假设我创造了一个新的文件,newFile.txt:

Enter image description here

假设我无意中添加文件git add newFile.txt:

Enter image description here

现在我想撤销此添加, 在承诺之前,git reset newFile.txt:

Enter image description here