Git-Commit文件位于.gitignore中

Git-Commit文件位于.gitignore中,git,gitignore,git-commit,Git,Gitignore,Git Commit,我想提交并推送两个新文件,它们位于项目的.gitignore中列出的文件夹中。我想我可以只更改.gitignore文件,但是我需要两次提交:一次提交推送两个新文件,另一次提交重置.gitignore。如果可能的话,我想一次提交 是否有任何方法可以提交和推送被忽略的特定文件?您不必修改。gitignore:您可以强制添加这些文件: git add --force -- file1 file2 git commit -m "add previously ignored files" git push

我想提交并推送两个新文件,它们位于项目的.gitignore中列出的文件夹中。我想我可以只更改.gitignore文件,但是我需要两次提交:一次提交推送两个新文件,另一次提交重置.gitignore。如果可能的话,我想一次提交


是否有任何方法可以提交和推送被忽略的特定文件?

您不必修改
。gitignore:
您可以强制添加这些文件:

git add --force -- file1 file2
git commit -m "add previously ignored files"
git push
发件人:

允许添加其他被忽略的文件

作为注释,这些文件不再被忽略,即使它们仍然被
.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
(正如我今天早些时候在“”中详述的)

他补充说:

Atm git没有提供一种机制来忽略对每个克隆中提交的文件所做的所有更改

因此:

  • git rm--cache
    将删除该文件(同时保留其以前的历史记录):文件1或文件2将不再可见,并将被忽略
  • git update index--假定未更改--file1 file2
    不会删除文件,但不再检测本地修改

将强制添加文件,即使该文件位于被忽略的目录中

请注意,跟踪的文件不再被忽略。@JakubNarębski True。我在回答中加入了您的评论以提高可视性。只是想知道在使用
--force
后是否有必要重新忽略文件?谢谢,虽然我个人目前不需要这样做,但我可以想到一些用例,在这些用例中,我只需要提交一次文件,然后再忽略它。感谢您的快速更新:)@TomHart注意,
更新索引——假设unchanged
是完全本地的。Atm git没有提供一种机制来忽略每个克隆对提交文件的所有更改。您不能提交
.gitignore
,因此它永远不会被推送:)
git update-index --assume-unchanged -- file1 file2
git add -f /path/to/file