如何限制git跟踪/更新本地更改?

Max*_*fen 5 javascript git github gitignore

所以,我学习了git函数,但是无法使文件中的README.mdgit branch更新文件执行.gitignore.

我已经编写了下一个,.gitignore但在推送服务器上没有帮助.

// .gitignore
# readme
README.md
LICENSE
Run Code Online (Sandbox Code Playgroud)

Cod*_*ard 9

您缺少一些重要信息.git将文件添加到暂存区域后立即跟踪文件.一旦提交它们,即使添加到它们也会被跟踪.gitignore,因为您README已经添加到git中,因此git将跟踪对此文件所做的更改.

因此,将它添加到您.gitignore已经执行的操作将无法正常工作,因为从现在开始它将被git跟踪.

如何告诉git忽略本地更改?

你可以使用 assume-unchanged

assume-unchanged

// Mark local fule so git will not detect local changes
git update-index --assume-unchanged <file>

// To get a list of dir's/files that are marked as assume-unchanged
git ls-files -v|grep '^h'

// To un-mark files
git update-index --no-assume-unchanged <file>
Run Code Online (Sandbox Code Playgroud)

添加assume-unchanged别名

git config --global alias.hide "update-index --assume-unchanged"
git config --global alias.show "update-index --no-assume-unchanged"
git config --global alias.list-unchanged "ls-files -v|grep '^h'"
Run Code Online (Sandbox Code Playgroud)

现在你.gitconfig应该有以下别名:

[alias]
    hide = update-index --assume-unchanged
    unhide = update-index --no-assume-unchanged
    list-unchanged = ls-files -v|grep '^h'
Run Code Online (Sandbox Code Playgroud)

用法:

git hide myfile.ext
git unhide myfile.ext
Run Code Online (Sandbox Code Playgroud)

如果您使用的是SourceTree,则添加自定义操作: 在此输入图像描述


在此输入图像描述 在此输入图像描述