【问题标题】:Git branching messed upGit分支搞砸了
【发布时间】:2013-01-25 07:20:23
【问题描述】:

我在 Eclipse Mac 和 PC 上使用 Egit 来同步一个具有三个分支的项目:

master
dev
rendersystem

我在 Mac 上创建了项目,当我创建两个分支 devrendersystem 时,我使用了 revs/heads/master 作为 Source ref 和 Pull 策略,我使用了 Merge。

现在我已经切换到我的 PC 并使用 Egit incl 导入了项目。所有三个分支。但是,如果我更改为 devrendersystem 分支,它会告诉我这些分支是远程跟踪的(在分支对话框中,远程跟踪 /origin/dev 和 /orginin/rendersystem)。

如果我检查 devrendersystem 分支并更改我的代码,然后提交它并尝试将其推送到 Github,它不会推送 devrendersystem 分支,只有它推送的 ma​​ster

我现在的问题是:如何更改 devrendersystem 分支,使它们处于可以从 Mac 和 PC 推送到 Github 的状态?

对不起,如果这个问题听起来令人困惑,但 Git 对初学者来说是一个令人困惑的地狱。

【问题讨论】:

  • 好问题!我想你的意思是:refs/heads/rendersystem?这是我可以在 Destination ref 的 Push 对话框中选择的内容(对于 Source ref,我只能选择 refs/heads/master)。
  • 理想情况下应该是refs/heads/* refs/heads/*
  • 如果我单击“添加所有分支规范”,它会将“要推送的规范”设置为 refs/heads/* 源引用和目标引用,但这只会推送主分支,而不是开发和渲染系统分支。
  • 但是如果你结帐dev,然后推送(来自Egit),它会推送dev吗?或者你希望它在每次推送时推送所有个分支,无论你当前的分支是什么?

标签: eclipse git github git-branch egit


【解决方案1】:

远程跟踪分支在 git 中是只读的,因为它们代表远程更改。 Fetch 只会更新这些远程跟踪分支。 Pull 首先执行 Fetch,然后将更改与本地可编辑的分支合并。

在源计算机上不需要创建这个分支,因为它是在本地初始化的,推送分支可以创建远程分支。

您可以通过在 Git Repositories 视图中右键单击远程分支并选择创建分支...从远程分支创建本地分支...之后,您的分支将是可写的。

【讨论】:

  • 谢谢,我现在了解应该如何创建本地分支,并且它应该基于(已经存在的)远程分支(我最初从本地主分支创建了 dev 分支,我认为是错误的)。
猜你喜欢
  • 2013-10-28
  • 1970-01-01
  • 2022-01-05
  • 2021-01-25
  • 2020-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多