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

git add myfile.txt

我还没有执行 git 承诺 。 我如何撤销此操作, 使这些更改不被包含在承诺中 ?


当前回答

我第一次遇到这个问题时, 我发现这篇文章在这里, 从第一个答案我学到我应该做的是 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 重设, 请声明“ 破产” 并删除. git 文件夹并重新开始

键入 :

git status

Git会告诉你什么是舞台,等等, 包括关于如何解除舞台的指示:

use "git reset HEAD <file>..." to unstage

我发现吉特做的相当不错 裸体我做正确的事情 在这样的情况下。

注:最近Git版本(1.8.4.x)更改了此电文:

(use "git rm --cached <file>..." to unstage)

此命令将卸载您的更改 :

git reset HEAD filename.txt

您也可以使用

git add -p 

以添加文件的部分。

对于特定文件 :

git 重置我的檔案. txt git 檢查我的檔案. txt

对于所有添加的文件 :

git 重新设置. git 检查退出 。

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

您可以使用 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

打开窗口。不从阶段更改中检查您的文件( 将执行)