2012-07-14 43 views
2

我使用Git扩展作为Visual Studio 2010中的插件。它工作得很好。然而,无论何时我要提交存储库,GUI都会迫使我手动选择适合添加到舞台的文件(即使这些文件已被编入索引并已添加到舞台中)。 我有点困惑,因为我相信已经上演的档案不需要再次选择舞台。Git扩展中的自动舞台

示例:在Git Extension的GUI中,我使用提交后将Network.cpp添加到阶段。接下来,我输入任意但有用的描述并提交分段文件。下一次Network.cpp被更改后,我必须在提交到存储库后再次放置Network.cpp。

我的工作流程中是否有任何错误?

在此先感谢您的帮助。

回答

3

您的工作流程没有任何问题;你会遇到大多数人最初对暂存区(“索引”)产生同样的误解。

使用Subversion和Mercurial,一旦您告诉系统跟踪文件,它会在您每次提交时检查该文件中的更改。对跟踪文件的任何更改都会自动发现。

Git是不同的。使用Git,您不会将文件添加到临时区域,您将更改添加到文件。这意味着每次更改文件时,如果您希望它们包含在下一次提交中,则需要添加这些更改。如果您没有将新的更改添加到暂存区域,则它们永远不会被提交。

通常情况下,您希望提交所有已更改的内容,因此使用Git扩展只需在每次提交时使用“Stage All”按钮,您就会看到系统的行为与Subversion和Mercurial的行为几乎相同。如果您使用命令行,则可以使用git commit -a自动添加对跟踪文件所做的更改。

+1

@robiston,阅读[Git的三棵树](http://git-scm.com/2011/07/11/reset.html)。 – kostix 2012-07-15 12:13:39

+0

@robiston还指出,尽管在许多情况下忽略索引可能是一件好事,但不要陷入考虑其存在是一个特殊障碍的陷阱:它使您能够制作细粒度的提交,包括仅提交*针对某个文件进行了特定更改,推迟了其他一些提交(并且Git扩展也支持本机)。 – kostix 2012-07-15 12:18:41