如何将主分支的当前状态复制到另一个分支?

时间:2016-10-06 17:42:51

标签: git github merge

在此页面上尝试了接受的答案:As of Oct 5, 2016

但问题是,主人没有需要进行任何更改,我创建了分支:git push self mybranch:master

当我尝试http://localhost:8983/solr/your_index/select?wt=json&indent=true&fl=your_field1,your_field2&q=your query here&group=true&group.field=type

它告诉我一切都是最新的。但我知道。我只想将分支复制到另一个分支,以便它具有主分支的当前状态。它永远不会再被触及。

我将来只会从主分支出来。这个其他分支永远不会被触及。但我需要将其存档,以便在需要时,我可以切换到该分支并在任何时候将其恢复...

如何在不创建新回购的情况下复制主分支?

3 个答案:

答案 0 :(得分:1)

要标记历史记录中的特定点,您应使用 tags ,而不是“废弃”分支。

答案 1 :(得分:1)

answer by Zoli Szabo所述,您应该使用tags标记历史记录中永不移动的事件。要创建标记,只需提供其名称和应指向的提交。如果您提供分支名称而不是提交哈希,则标记将指向此分支的当前提示。

git tag mytag branch
git tag mytag 123ab45ef

但是要回答你的问题,如果你想让你的分支反映当前的主人状态,你有一些选择:

  • 强制更新分支:git branch -f mybranch master,然后推送分支
  • 将您想要的状态推送到远程存储库中的分支:git push origin master:mybranch-f,如果您需要强制更新)。小心,因为这可能会给其他人带来麻烦
  • 将分支与ours策略(-s ours)合并,以创建具有所需状态的新提交。然后推送到远程存储库。

如果您只是想更新本地存储库,请合并分支(如果我能正确理解您的问题,应该导致快进,或者进行本地推送。)

  • 合并:git checkout master; git merge mybranch
  • 本地推送:git push . mybranch:master

推送是快进合并的反向(目标和目标分支切换)。

选择:)

答案 2 :(得分:0)

您不能拥有两个指向不同提交的主分支。分支仅指向一个提交。要保存此分支所在的位置,请在其上创建标记,或创建新分支。您可以在名称MYSUBDIR / master下保存一个分支,在名称MYOTHERSUB / master下保存另一个分支。

在远程'self'上创建一个分支'MySave / master',其尖端与本地mybranch相同。

git push self mybranch:MySave/master

假设您当然拥有适当的权限。您可以通过以下方式查看两个分支的状态:

git log --oneline --decorate -9 mybranch self/MySave/master
'self / MySave / master'是您的远程跟踪副本,以获取最新版本:

git fetch self self/MySave/master

更新'self / MySave / master'(但不是你的本地'mybranch',用于拉动)