关于使用Git的问题

时间:2009-08-19 13:55:14

标签: git branch

Git命令有很多指南,但我没有看到很多解释开发人员如何在日常工作中实际使用它的方法。我理解推,拉,提交等基础知识......但我不明白何时使用分支。

在当地的回购:

  • 您是否应该为每组更改创建一个新分支,或者可以在主分支上工作?

  • 您是否应为每个分支创建新克隆?

  • 您何时将本地分支机构与本地主分支机构合并?

感谢。

4 个答案:

答案 0 :(得分:4)

  

您是否应该为每组更改创建一个新分支,或者可以在主分支上工作?

这是一个品味问题。您应该为您实现的每个主要功能(“主题分支”)创建一个分支,从而能够在原始主分支上进行错误修正。对于小型项目,可以在主分支上工作。

例如,如果您计划进行重大的重新设计,跨越多个文件或在更长的时间内处理它,您肯定应该为它创建一个主题分支。特别是如果你打算在两者之间使用“不稳定”的提交,这是鼓励的。

也就是说,大多数时候在不同的分支上工作可能是合理的,因为事先可能很难知道主题需要多少工作。

  

你应该为每个分支创建一个新的克隆吗?

没有。你为什么要?只需创建一个新分支并使用git checkout <branchname>切换分支。

提示:了解git stash暂时“隐藏”所有本地修改,在使用分支机构时非常方便。

  

您何时将本地分支机构与本地主管合并?

完成“主题”后,您应该将其与主人合并。之后,您可以删除主题分支。

  

何时(以及如何)创建远程分支?

您可以使用git pullgit push或通过在ref文件中定义相应的.git/config来指定要与哪个远程分支同步的本地分支。

如果要在多台计算机或用户之间共享分支,则需要远程分支。

答案 1 :(得分:3)

  

您是否应该为每组更改创建一个新分支,或者可以在主分支上工作?

当我做一些我可能决定不保留的相关更改时,我创建了一个新的分支,但是当我正在处理它们时会撕裂并破坏主分支。特别是如果我想在此过程中进行多次检查。

例如,假设我有一个简单的图形计算器应用程序,我想添加括号和操作顺序,但我不确定它是否会按照我正在考虑的方式工作。我创建了一个新的分支,在我去的时候检查我的更改,如果我喜欢结果,那么我将与Master合并。

如果我在工作的时候有人要求发布版本(由master构建)的错误修正,这是特别好的。我可以轻松切换到master,修复bug,重建,重新发布,然后切换回我的开发分支。

  

你应该为每个分支创建一个新的克隆吗?

除非您不想在切换之前检查本地更改,否则我不建议为每个分支创建新的克隆。但即使这样,您也可以使用“git stash”命令在切换分支,工作和切换时保存更改。

  

您何时将本地分支机构与本地主管合并?

如果能够成功构建并且您认为已实现了目标功能,则应将本地更改与主分支合并。不要打破主分支。

  

何时(以及如何)创建远程分支?

通过创建本地分支并在检出本地分支时进行推送来创建远程分支。如果您想要备份它或者其他人可能想要检查它,您应该只推送一个新分支来远程创建它。如果你只是在本地玩一个功能,你可能不想推它。

  

您是否撰写了相对于您更改的文件或相对于项目的消息?

相对于该项目。尽可能清楚地提交您的提交消息,但尝试编写简明的摘要行,然后留下一个空行,然后输入有关提交的详细信息。 Git是基于树的,而不是基于文件的,因此如果某个功能或错误修复触及了大量文件,请使用相同的消息立即检查它们。

答案 2 :(得分:0)

  

您是否应该为每组更改创建一个新分支,或者可以在主分支上工作?

当并行发生不同功能集时,有助于拥有不同的分支

  

你应该为每个分支创建一个新的克隆吗?

没有。便宜的本地分支是分支的众多优势之一。

  

您何时将本地分支机构与本地主管合并?

完成分支​​中的功能后,将其合并到主服务器。此时,最好将其克隆到其他地方。 (GitHub的?)

答案 3 :(得分:0)

由于我只是一个人而且我更喜欢保持有限数量的IDE实例打开,所以我倾向于仅保留一个存储库的副本,并且只更改该克隆的内容。

这意味着每次更改结帐内容时,我通常都必须运行某种干净的构建。

最常见的使用模式之一是使用“功能分支”,您可以在不同的分支中开发不同的功能。然后,您可以拥有一个或多个集成分支(=版本),将这些功能合并到。