Chr*_*ris 8 git version-control mercurial
我之前使用过Mercurial,但计划在不久的将来切换到Git.
我见过的所有教程都解释了Git的工作原理,表明文件在每次提交之前都会被添加到舞台('git add'),无论之前是否被跟踪过.
Mercurial还有一个以类似方式工作的命令('hg add'),但从我记忆中,你只需要做一次'添加'.例如,新存储库的步骤如下所示:
hg init
hg add .
hg commit "Initial commit"
hg push
Run Code Online (Sandbox Code Playgroud)
这个工作流程是否可以使用Git,如果不是,那么重复'git add'的原因是什么?似乎没必要.
git中的两个阶段过程非常强大.特别是,在编辑源代码时,您经常会并行进行多次不直接相关的更改.
使用暂存区域,您可以选择要提交的文件,从而为每个逻辑更改创建一个提交.
如果要一次提交所有更改文件,可以将其git commit -a
用作快捷方式.
此阶段所有已更改和删除的文件并提交它们.
请注意:它不会自动添加未跟踪的文件.你仍然必须事先做到这一点.
是的,可以应用相同的常规工作流程,但是通过向每个提交仅添加某些文件或仅文件的某些部分,也可以更有选择地使用“ add”命令。这样可以更容易地将逻辑上不同的补丁分成不同的提交,从而更易于跟踪和共享。
但是可以,您可以“ git add”。一切都会进入暂存区域进行提交。如另一个答案中所述,“ git commit -a”是部分快捷方式(它不会添加新文件,但会将所有更改/删除都提交给已跟踪的文件)。尝试“ git status”以查看下一次提交中将包含哪些内容,哪些将不包含。
更新我还应该注意,git add的补码是“ git reset HEAD”,它将为您的下一次提交从临时区域中删除文件。另外,如果您有兴趣将单个文件中的编辑分为多个提交,请使用“ -p”标志同时进行git add和git reset,以交互方式逐步浏览文件并选择要添加/重置的块。