gpt4 book ai didi

Git:如何交换本地和远程的 2 个分支 (Github)

转载 作者:太空狗 更新时间:2023-10-29 14:27:49 24 4
gpt4 key购买 nike

有人可以提供一种清晰、简单的方法来使用 Git 交换 2 个分支上的名称,并将 Github 作为远程存储库吗?

场景如下:

  1. 我在 master 之外创建了一个 dev 分支。
  2. dev 上进行 1 次提交后,我创建了分支 exp(实验)。
  3. 我再次检查了 dev 并进行了 2 次提交。
  4. 然后我意识到我真的希望 exp 成为进行这 2 次提交的分支,所以我想交换 expdev

我在这方面还很陌生,我已经阅读了一些可视化的 Git 教程并搜索了这个网站和谷歌,但我仍然不清楚在 Git 中修复这个问题的最佳或预期方法(尤其是 -使用 Github 远程仓库)


My Bad 试图解决这个问题:

我已经尝试了一些方法,但弄得一团糟——使用 Git 扩展重命名本地分支,但无法让远程 Github 存储库反射(reflect)该更改。我尝试创建新的分支,但不能总是让它们同时反射(reflect)在本地和远程(无论我在哪里创建它们)。

我终于能够通过 Git Extensions main pull 函数和“Prune remote branches”获得我需要的一切,它似乎使用 fetch --prune - 这将远程删除反射(reflect)回本地,以及启用了一些强制/删除选项的push 功能。

一开始我想我可能只能重置/移动两个分支(即将 exp 移至 dev,然后将 exp 重置回 dev 所在的提交(返回 2),但是当尝试在 Git Extensions 中重置时,它要求我选择软重置、混合重置或硬重置——这让我停下来走另一条路,尝试重命名/创建新分支等。也许这是正确的轨道——如果是这样,我应该做一个软重置或硬重置 - 或者在提交任何打开的更改后都不重要?我对此进行了大量搜索,甚至了解工作目录、索引和分支,但在我的情况下仍然不清楚。


问题

必须有更好的方法来完成这项工作 - 我如何轻松地交换两个分支(或重命名 2 个分支以便它们有效地交换),以一种所有更改都在本地和远程(在 Github 上)反射(reflect)的方式?

如果您能深入了解为什么您的方法是正确或最简单的方法,我将不胜感激。谢谢!


注意:我确实找到了this question关于重命名 master(或任何分支)——但是那里有很多步骤。我可以这样做两次,但我很难相信这是最好的方法。

最佳答案

分别从expdev创建两个新分支exp2dev2

$ git checkout exp
$ git branch exp2 # create new branch 'exp2' from 'exp'

$ git checkout dev
$ git checkout -b dev2 # create and checkout to `dev2` branch

删除本地和远程的 devexp 分支。

$ git branch -D dev        # delete local 'dev' branch
$ git push origin :dev # delete remote 'dev' branch

$ git branch -D exp # delete local 'exp' branch
$ git push origin :exp # delete remote 'exp' branch

dev2 创建一个新的本地分支 exp 并推送到远程。

# make sure you are in 'dev2' branch

$ git checkout -b exp
$ git push origin exp

exp2 创建一个新的本地分支 dev 并推送到远程。

$ git checkout exp2        # checkout to 'exp2' so, current branch is 'exp2'
$ git checkout -b dev # create new branch 'dev'
$ git push origin dev # push 'dev' branch to remote

现在,如果一切正常,则删除本地 exp2dev2 分支。 (可选)

$ git branch -D dev2      # delete local 'dev2' branch
$ git branch -D exp2 # delete local 'exp2' branch

关于Git:如何交换本地和远程的 2 个分支 (Github),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45539209/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com