让我们假设我想确保有一个名为foo的文件夹和一个名为bar的文件。在我确定foo / bar存在后,我不打算对它进行版本化,因此我将它添加到.gitignore。
防弹方法:
更短的方法:
我想知道更短的方法是否可以保证创建文件夹,文件并忽略它。我做了一个测试,结果似乎证实了我的假设,即较短的方法也会在远程位置添加foo / bar,然后停止对其进行版本控制。这是适用于所有版本的规则吗?
答案 0 :(得分:1)
正如评论者所指出的那样,如果你在提交文件之后将文件路径添加到.gitignore
文件,那就太晚了。
你有两个不同的问题合二为一,在这里:
如何说服Git创建一个空目录? (这是你的实际问题,你需要解决的问题。)
.gitignore
如何实际运作?什么规则应用什么动作以及什么时候? (这就是你在主题行中提出的问题。)
对于第1项,请参阅How can I add an empty directory to a Git repository?
对于第2项,请参阅https://git-scm.com/docs/gitignore。让我从那里提取这个句子,然后用粗体表示: Git已经跟踪的文件不受影响。如果你git add
- 编辑了一条可以忽略的路径,那么不会被忽略。为了让成为被忽略,你必须明确删除它,它有自己的陷阱。请参阅How to stop tracking and ignore changes to a file in Git?和How to make Git "forget" about a file that was tracked but is now in .gitignore?
请注意,在处理意外跟踪的配置时,现在无法通过git update-index
删除,现代建议为--skip-worktree
,而不是--assume-unchanged
。