0

听起来像一个愚蠢的问题,所以让我解释一下:

我的 iOS 应用程序项目位于“master”分支上。我创建了一个名为“iOS 7”的分支,并在该分支上完成了 iOS 7 升级的所有工作。现在我基本上希望“iOS 7”分支成为主分支,以便我回到“主”上工作。我尝试合并,但冲突太多,不值得为解决它们而烦恼。我现在只关心“iOS 7”分支,其余的我不关心。

显而易见的解决方案是将 .git 目录装箱并从我所在的“iOS 7”的新存储库重新开始,但我想知道是否有办法在 git 中执行此操作。基本上,某种方式可以说,“看,这个分支现在是事实,让它成为 master 分支。忽略当前在 'master' 中的任何内容”

编辑:我应该补充一点,我是唯一使用这个 repo 的人,它只存在于我的 Mac 本地。没有远程仓库。

编辑2:根据我接受的答案,这个问题实际上根本不是关于合并,因为没有任何东西被合并,这就是我将“合并”放在引号中的原因。我之所以使用“合并”这个词,只是因为这是在将分支中的更改带回主控时通常使用的术语。通常这意味着实际的合并,我的问题是如何避免这种合并。接受的答案完美地做到了这一点(其他几个答案也是如此)。

4

4 回答 4

2

master只是另一个分支名称。因此,您可以轻松地重命名您的分支:

git branch -m master master-old
git branch -m "iOS 7" master
于 2013-10-12T12:56:31.167 回答
1

ours您可以使用策略选项或theirs(请参阅合并策略)告诉 Git 自动支持合并的一侧。在您的情况下,如果您在master分支上并且想要合并iOS 7分支,请执行以下操作:

git merge --strategy-option=theirs "iOS 7"
于 2013-10-12T12:52:33.927 回答
1

您所描述的任何部分都与合并无关。你是唯一的开发者,你只是想移动一个分支,完全放弃它的旧状态?只需删除您的master分支,然后在您的分支头部重新创建它ios7

# Make sure we're starting from the correct branch
$ git checkout ios7

# Delete the old 'master' pointer
$ git branch -d master

# Create a new 'master', pointing at the current commit
$ git checkout -b master

最后一个命令创建一个名为master指向当前提交(的头部ios7)的新分支,然后将其签出。

于 2013-10-12T12:53:39.347 回答
1

如果您在分支上master

git reset --hard 'iOS 7'
于 2013-10-12T13:00:26.013 回答