【问题标题】:Git: Seemingly Simple Branching QuestionsGit:看似简单的分支问题
【发布时间】:2011-01-29 13:28:15
【问题描述】:

我已经使用 Git 进行版本控制有一段时间了,但到目前为止我只使用单个 master 分支进行所有开发。随着我的项目越来越大,是时候担心稳定/开发分支和发布标记了。

我一直在阅读大量关于 Git 分支的文章,但我似乎无法掌握它们如何工作背后的概念,这让我在尝试正确设置分支时感到有些沮丧。

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

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

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

  1. 如何创建一个远程分支(在 GitHub 上)自动跟踪 master 中的更改,以便我可以在新分支中运行 git pull 并引入所有 master 更改;和
  2. 对我的项目进行版本控制的最佳方法是什么?您能否提供一些示例命令?

非常感谢,如果有什么需要澄清的请告诉我!

【问题讨论】:

  • 从“基于 debian 的系统”切换到“基于 ubuntu 的系统”是一个奇怪的说法。 Ubuntu 是一个基于 debian 的系统。
  • @William Pursell - 确实如此,因此并没有造成太大问题,但是,存在一些小的差异,我们将使用这两个系统,一个用于生产,另一个用于开发,所以我需要创建一个单独的分支(基本上是为了跟踪配置文件的变化)。

标签: git versioning github


【解决方案1】:

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

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

git rebase master

并希望没有冲突需要您解决。变基可能是另一种蠕虫,但它确实不错。我只使用了 git 大约 6 个月,只是在工作,在最初的驼峰之后它一直一帆风顺。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-04
    • 2020-07-15
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-24
    相关资源
    最近更新 更多