Git - 在 .gitignore 中提交文件
Git - Commit file in .gitignore
我想提交并推送项目的 .gitignore 中列出的文件夹内的两个新文件。我想我可以只更改 .gitignore 文件,但随后我需要两次提交:一次提交推送两个新文件,第二次提交重置 .gitignore。如果可能的话,我想在一次提交中完成。
有什么方法可以提交并推送被忽略的特定文件吗?
您不必修改 .gitignore:
您可以强制添加这些文件:
git add --force -- file1 file2
git commit -m "add previously ignored files"
git push
来自 git add
man page:
-f
--force
Allow adding otherwise ignored files.
如 Jakub Narębski 评论,那些文件不再被忽略,即使它们仍然会被 .gitignore
指令选中。
Tom Hart asks :
Just wondering if there's anyway to re-ignore the files after using --force?
您需要从索引中记录它们的删除,以便在工作树中再次忽略这些文件:
git rm --cached file1 file2
git commit -m "Remove files which should be ignored"
git push
一旦文件从索引中删除(在提交和推送步骤之前),.gitignore
规则就会生效。
推送意味着其他贡献者将受到操作的影响。
如果您只想在本地暂时忽略那些文件,请使用:
git update-index --assume-unchanged -- file1 file2
(正如我今天早些时候在“”中详述的那样)
作为Zeeker adds :
Atm git doesn't provide a mechanism to ignore all changes to a committed file across each clone.
所以:
git rm --cache
将删除该文件(同时保留其以前的历史记录):file1 或 file2 将不再可见,并将被忽略。
git update-index --assume-unchanged -- file1 file2
不会 删除文件,但不再检测 local 修改。
git add -f /path/to/file
将强制添加文件,即使它在被忽略的目录中也是如此
我想提交并推送项目的 .gitignore 中列出的文件夹内的两个新文件。我想我可以只更改 .gitignore 文件,但随后我需要两次提交:一次提交推送两个新文件,第二次提交重置 .gitignore。如果可能的话,我想在一次提交中完成。
有什么方法可以提交并推送被忽略的特定文件吗?
您不必修改 .gitignore:
您可以强制添加这些文件:
git add --force -- file1 file2
git commit -m "add previously ignored files"
git push
来自 git add
man page:
-f
--force
Allow adding otherwise ignored files.
如 Jakub Narębski 评论,那些文件不再被忽略,即使它们仍然会被 .gitignore
指令选中。
Tom Hart asks
Just wondering if there's anyway to re-ignore the files after using --force?
您需要从索引中记录它们的删除,以便在工作树中再次忽略这些文件:
git rm --cached file1 file2
git commit -m "Remove files which should be ignored"
git push
一旦文件从索引中删除(在提交和推送步骤之前),.gitignore
规则就会生效。
推送意味着其他贡献者将受到操作的影响。
如果您只想在本地暂时忽略那些文件,请使用:
git update-index --assume-unchanged -- file1 file2
(正如我今天早些时候在“
作为Zeeker adds
Atm git doesn't provide a mechanism to ignore all changes to a committed file across each clone.
所以:
git rm --cache
将删除该文件(同时保留其以前的历史记录):file1 或 file2 将不再可见,并将被忽略。git update-index --assume-unchanged -- file1 file2
不会 删除文件,但不再检测 local 修改。
git add -f /path/to/file
将强制添加文件,即使它在被忽略的目录中也是如此