我已经多次阅读了这方面的文档,但仍然不能完全理解这些不同命令之间的区别。也许只有我这么觉得,但是文件应该更清楚一些:
Http://git-scm.com/docs/gitignore
Https://help.github.com/articles/ignoring-files
此外,许多关于这个主题的评论似乎使用了“索引”、“承诺”、“追踪”等词语,这使得这三者之间的区别不那么明显。
我目前(诚然有限)的理解是:
在 .gitignore
中匹配的文件将来不会被跟踪。
(尽管它们可能以前被跟踪过)这意味着它们
将永远不会出现在未来的 git status
列表修改。
但是,未来的更改仍将与远程回购协议 同步。换句话说,这些文件仍然被“索引”,但是它们没有被“跟踪”。
因为 .gitignore
文件位于项目目录中,所以该文件
本身可以进行版本控制
在 .git/info/exclude
中匹配的文件也不会被“跟踪”
此外,这些文件将永远不会被远程同步,因此将
这些文件应该是以任何形式提供的,而不应该被其他用户以任何形式看到
是特定于单个用户的编辑器或工作流的。因为它在 .git
中
目录下,无法对 exclude
文件本身进行版本控制。
运行过 assume-unchanged
的文件也不会出现在 git status
或 git diff
中。这似乎类似于 exclude
,因为这些文件既没有“索引”也没有“跟踪”。但是,在 assume-unchanged
之前提交的文件的最后版本将对回购中的所有用户保持可见。
以上解释正确吗? 请指正。
如果一个文件已经在提交中,那么什么是函数
在 .exclude
中匹配和运行之间的区别
为什么有人喜欢用一种方法
另一个
我的基本用例是,我希望避免对
已编译的文件,但我仍然希望这些已编译的文件同步
和源文件一起。gitignore
文件还会被推送吗?如果没有,如何管理已编译文件的最终部署?
提前谢谢你的帮助。