git:如何在提交时忽略对文件的更改?

amn*_*amn 5 git branch

我确实在寻找解决方案,但我相信我的情况与我读到的情况略有不同.

我正在一个特定的分支上工作并犯了一个错误,以一种与分支主题无关的方式编辑了一个文件,现在希望这些更改不会进入提交.我不想丢失这些更改,因为我将尝试稍后以某种方式将它们提交到另一个分支.

我试过,git rm --cached但后来我看到deleted了我的状态git status- 文件是否会从存储库中删除?我不希望这样 - 我希望它在我工作分支上的先前提交中保持不变.

sim*_*ont 8

如果您不进行更改,它们将不会成为提交的一部分,如下所示:

git status
# On branch development
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   ResearchProposal.tex
Run Code Online (Sandbox Code Playgroud)

在这里,ResearchProposal.tex有变化,但他们不会承诺git commit.

如果您在一个文件中有两组更改,一些是您要提交的,另一些是您不提交的,请阅读此内容.

如果您运行git add的是不想提交的文件,则需要unstage:

git reset HEAD <file>
Run Code Online (Sandbox Code Playgroud)

像这样:

$ git add ResearchProposal.tex
$ git status
# On branch development
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   ResearchProposal.tex

$ git reset HEAD ResearchProposal.tex 
Unstaged changes after reset:
M   ResearchProposal.tex

$ git status
# On branch development
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   ResearchProposal.tex
Run Code Online (Sandbox Code Playgroud)


小智 5

在终端中运行以下命令:

git update-index --assume-unchanged
Run Code Online (Sandbox Code Playgroud)

要让Git再次跟踪文件,只需运行:

git update-index --no-assume-unchanged path/to/file.txt
Run Code Online (Sandbox Code Playgroud)