提问人:anyaolson 提问时间:11/6/2023 更新时间:11/7/2023 访问量:91
重新定位分支机构
Retargeting a branch
问:
我是git的新手。我有一个主分支,它有几个分支,例如 branch1、branch2、branch3 等。我从 branch1 中签出了一个功能分支,并进行了一些更改。我还没有提交或推送我的更改,但由于我开始票证已经有一段时间了,我现在应该改为针对 branch3。我该怎么做?我只需要将 PR 重新定位到 bitbucket 上的 branch3,还是必须在 git 中做一些事情?
我对这是否需要在 git 中进行任何更改,或者我是否只需要在 bitbucket 中重新定位感到困惑。
答:
0赞
Tim Biegeleisen
11/7/2023
#1
您可以简单地从正确的基本分支创建并检出所需的功能分支:
# from branch1
git checkout -b your_feature branch3
# work work work
当您创建预期的功能分支时,您的未提交工作将愉快地坐在那里。请注意 的 2 参数形式,其中第一个分支是要创建的分支,第二个分支是源分支(不是当前分支)。git checkout
branch1
评论
1赞
matt
11/7/2023
我建议我们不要告诉初学者使用 .它被更乖巧的人所取代.所以这里的命令是 ,我相信(我认为小写会失败,因为分支已经存在)。git checkout
git switch
git switch -C your_feature branch3
git switch -c
c
0赞
anyaolson
11/9/2023
所以我会在分支 1 之外执行此操作,对吗?为什么?如果我在功能分支之外执行此操作会发生什么?只是想了解它是如何工作的。
0赞
Tim Biegeleisen
11/9/2023
我的答案创建了一个新分支作为起点,它也会切换到该新分支。它应该在任何起始分支中正常工作。your_feature
branch3
0赞
anyaolson
11/9/2023
好吧,有道理。我这样做了,但它说“featureBranch 领先 featureBranch 100 次提交”。这是因为 branch3 有 branch1 没有的更改吗?
0赞
Arthur Khazbs
11/7/2023
#2
由于您尚未提交更改,因此只需使用 git-switch 将当前分支切换到现有目标分支,如下所示:
git switch branch3
然后,您可以提交更改并将分支推送到 BitBucket。
如果您已经有一个空的 PR 来合并 branch1,您应该关闭它并打开一个新的 PR 来合并 branch3。
评论
git stash; git checkout branch3; git stash pop