我想提交和推送两个新文件,它们位于项目的.gitignore中列出的文件夹中。我认为我可以只更改.gitignore文件,但这样我就需要进行两次提交:一次提交以推送这两个新文件,第二次提交以重置.gitignore。如果可能的话,我想在一次提交中完成。
有没有办法提交并推送一个被忽略的特定文件?
我想提交和推送两个新文件,它们位于项目的.gitignore中列出的文件夹中。我认为我可以只更改.gitignore文件,但这样我就需要进行两次提交:一次提交以推送这两个新文件,第二次提交以重置.gitignore。如果可能的话,我想在一次提交中完成。
有没有办法提交并推送一个被忽略的特定文件?
.gitignore
文件,你可以强制添加这些文件:git add --force -- file1 file2
git commit -m "add previously ignored files"
git push
来自 git add
手册:
-f
--force
允许添加被忽略的文件。
正如Jakub Narębski所指出的,即使这些文件仍然被.gitignore
指令选择,它们也不再被忽略。
请问在使用 --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
所以:目前,git没有提供一种机制来忽略每个克隆中已提交文件的所有更改。
git rm --cache
将删除该文件(同时保留其先前的历史记录):file1或file2将不再可见,并将被忽略。 git update-index --assume-unchanged -- file1 file2
不会删除文件,但不再检测本地修改。.gitignore
,添加所需文件夹,然后恢复 .gitignore
。 - VonCgit add -f /path/to/file
将强制添加文件,即使它在被忽略的目录中
.gitignore
文件,这样它就不会被推送到远程仓库 :) - Anonymous Penguin