忽略本地 git 存储库中文件的更改
Ignore changes in the files, which are in the git repository, locally
为了使我的项目在本地运行,我必须更改一个文件。但是这个文件在远程必须保持不变。在使用 git status
、git add
和 git stash
命令时,如何使 git 忽略此文件中的更改?
我尝试了什么:
1.
git update-index --assume-unchanged filename
使其与 'git status' 和 'git add' 一起工作,但 'git stash'+'git stash pop' 将文件恢复到原始状态,破坏了我的本地设置。
2。
我找到了这个解决方案,但它也改变了远程,我不想这样做:
https://www.codeblocq.com/2016/01/Untrack-files-already-added-to-git-repository-based-on-gitignore/
3。
将文件添加到 .git/info/exclude
不起作用,因为它是存储库中的文件,而不是新文件。
您可以通过多种方式执行此操作:
做一个git状态然后你会看到哪些文件被改变了。后
您可以 git 单独添加文件。
例如:git 添加 [文件名
(当您从 git status 获得结果时,只需在此处复制路径)]
将您的文件添加到 git 忽略文件。这将取消跟踪您的更改
在那个提到的文件上。
如果您想在本地修改文件,但不希望 Git 远程管理这些更改,您可以将标志 --skip-worktree
设置为一个文件,这意味着文件 应该 在本地更改,但不能远程更改。对此文件所做和保存的任何更改都不会被标记为更改。
$ git update-index --skip-worktree path/to/your/skipping/file
要确认Git跳过了哪些文件,可以执行以下命令:
$ git ls-files -v | grep ^S
git ls-files
显示由 Git 管理的 所有 个文件
-v
检查被忽略的文件
--skip-worktree
在行开始 显示为 S
要通过Git恢复文件跳过,你需要这个命令:
$ git update-index --no-skip-worktree path/to/your/skipping/file
为了使我的项目在本地运行,我必须更改一个文件。但是这个文件在远程必须保持不变。在使用 git status
、git add
和 git stash
命令时,如何使 git 忽略此文件中的更改?
我尝试了什么:
1.
git update-index --assume-unchanged filename
使其与 'git status' 和 'git add' 一起工作,但 'git stash'+'git stash pop' 将文件恢复到原始状态,破坏了我的本地设置。
2。 我找到了这个解决方案,但它也改变了远程,我不想这样做: https://www.codeblocq.com/2016/01/Untrack-files-already-added-to-git-repository-based-on-gitignore/
3。
将文件添加到 .git/info/exclude
不起作用,因为它是存储库中的文件,而不是新文件。
您可以通过多种方式执行此操作:
做一个git状态然后你会看到哪些文件被改变了。后 您可以 git 单独添加文件。
例如:git 添加 [文件名 (当您从 git status 获得结果时,只需在此处复制路径)]将您的文件添加到 git 忽略文件。这将取消跟踪您的更改 在那个提到的文件上。
如果您想在本地修改文件,但不希望 Git 远程管理这些更改,您可以将标志 --skip-worktree
设置为一个文件,这意味着文件 应该 在本地更改,但不能远程更改。对此文件所做和保存的任何更改都不会被标记为更改。
$ git update-index --skip-worktree path/to/your/skipping/file
要确认Git跳过了哪些文件,可以执行以下命令:
$ git ls-files -v | grep ^S
git ls-files
显示由 Git 管理的 所有 个文件
-v
检查被忽略的文件--skip-worktree
在行开始 显示为
S
要通过Git恢复文件跳过,你需要这个命令:
$ git update-index --no-skip-worktree path/to/your/skipping/file