Git:看似简单的分支问题

时间:2010-03-19 16:54:10

标签: git versioning github

我一直在使用Git进行版本控制一段时间了,但是我还没有使用单个master分支进行所有开发。随着我的项目越来越大,我应该担心稳定/开发分支和发布标记。

我一直在阅读一些关于Git分支的文章,但我似乎无法理解它们如何工作的概念,并且在尝试正确设置我的分支时让我感到有些沮丧。

以下是我的情况:我有一个项目是一堆专门用于在特定服务器上创建我们网站的rake任务。现在,我们正在使用基于Debian的系统,但我们即将切换到基于Ubuntu的系统,所以我想分叉(分支)我的项目并为每个服务器分发创建一个单独的分支,我希望每个分支当我在任一分支中运行git pull时,能够轻松地从主分支中提取所有通用代码更改。根据我的阅读,这可以通过跟踪主分支来实现,但我似乎无法让它正常工作。

除此之外,我还需要开始对不同的项目进行版本控制,以便我可以发布它,但我并不知道实现这一目标的标准Git方法。在我的旧公司,我们使用TFS(我讨厌)并且非常简单:我们将从主设备创建一个分支并将其称为“版本2”。然后我们将确保版本2稳定并修复任何错误,然后每隔一段时间,我们将版本2更改合并回主分支。这是Git实现这一目标的方法,如果是这样,我究竟该怎么做呢?

所以,总结一下,我问的是以下两个独立的(但非常相关的)问题:

  1. 如何创建一个远程分支(在GitHub上),自动跟踪master中的更改,以便我可以在新分支中运行git pull并引入所有主变更;和
  2. 对项目进行版本控制的最佳方法是什么?你能给出一些示例命令吗?
  3. 非常感谢,如果需要澄清,请告诉我!

1 个答案:

答案 0 :(得分:3)

如果我理解正确,我认为您没有正确使用跟踪。例如,跟踪用于跟踪本地分支与同一分支的远程副本之间的差异。您的“版本2”分支不应跟踪主人。您的本地主人应该跟踪origin / master(远程仓库)。

而不是跟踪(如果我完全正确理解你),你应该使用rebase。当master在你的版本2分支中有你想要的新补丁时,你会这样做(假设你当前在版本2分支上):

git rebase master

希望你没有冲突解决。重新定位可能是另一种蠕虫,但它真的不错。我只使用git大约6个月,只是在工作,并在最初的驼峰之后它一帆风顺。