【发布时间】:2013-07-17 11:08:47
【问题描述】:
我养成了使用.gitignore的习惯,总是用git add -A,git status来检查修改过的文件,然后提交,这样我就不需要记住我修改过的文件和其他开发者不需要知道哪些文件被忽略了。
我仍然看到其他人为每个修改过的文件做git add files。
所以我想知道添加每个文件是否有什么好处。
问题是:为什么不总是使用git add -A?
【问题讨论】:
我养成了使用.gitignore的习惯,总是用git add -A,git status来检查修改过的文件,然后提交,这样我就不需要记住我修改过的文件和其他开发者不需要知道哪些文件被忽略了。
我仍然看到其他人为每个修改过的文件做git add files。
所以我想知道添加每个文件是否有什么好处。
问题是:为什么不总是使用git add -A?
【问题讨论】:
有时能够在 git 存储库中拥有一个文件,而不是将其列在 .gitignore 中,并进行您不想提交的本地更改,这很有用。
对我来说,这适用于例如 Django 的 settings.py 文件,我有时会在其中进行更改以适应本地数据库设置等。您仍然需要偶尔更改这些文件的一些内容,例如向INSTALLED_APPS 添加位,您仍然可以使用git add -p 提交。另一种方法是拥有一个settings.py.example 文件,并将settings.py 添加到.gitignore,但是您需要手动将示例文件中的更改“合并”到您的实际设置文件中。如果你还没有更改settings.py,你可以直接使用 git add 。
另一个用例是,如果您进行了两组更改,您希望彼此独立地提交这些更改。然后,您可以适当地使用git add [-p] <file>、提交和重复。当然,您需要确保您的差异是真正独立的。
【讨论】:
在开发功能时,您还可以修复在浏览代码时发现的一些错误或拼写错误。这些更正与您的功能没有直接关系,因此您可能希望为它们单独提交。 git add [something] 允许你以这种方式工作。
【讨论】:
stash/stash apply 会不会更适合这份工作?