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

Sol*_*son 4 git merge github

已在此页面上尝试接受的答案: 如何将当前分支合并到另一个分支

但问题是,主服务器不需要任何更改,我使用以下命令创建了分支: git checkout -b mybranch

当我尝试时git push self mybranch:master

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

我将来只会从 master 分支分支出来。这另一个分支实际上永远不会被触及。但我需要将其存档,以便在需要时我可以切换到该分支并在任何时候将其带回来......

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

kni*_*ttl 5

正如Zoli Szabo 的回答所述,您应该使用标签来标记历史中永远不应该移动的事件。要创建标签,只需提供其名称和它应指向的提交即可。如果您提供分支名称而不是提交哈希,则标记将指向该分支的当前提示提交。

git tag mytag branch
git tag mytag 123ab45ef
Run Code Online (Sandbox Code Playgroud)

但要回答你的问题,如果你希望你的分支反映 master 的当前状态,你有几个选择:

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

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

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

推送是快进合并的逆过程(目标分支和目标分支交换)。

任君选择:)