git checkout 将 dev 分支合并到 main 中

问题描述 投票:0回答:1

我拉了一个开发分支在我的测试服务器上进行测试,当我切换回主分支时,似乎开发分支已自动合并到主分支中。

首先,我拉取了 dev 分支,然后检查了它:

$ git status
On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean
$ git pull origin dev_branch
...
$ git checkout dev_branch
branch 'dev_branch' set up to track 'origin/dev_branch'.
Switched to a new branch 'dev_branch'

然后我进行了测试,发现我还有更多的改变要做。尝试将代码库返回到主分支:

$ git checkout main
Switched to branch 'main'
Your branch is ahead of 'origin/main' by 6 commits.
  (use "git push" to publish your local commits)
$ git status
On branch main
Your branch is ahead of 'origin/main' by 6 commits.
  (use "git push" to publish your local commits)

nothing to commit, working tree clean

这是预期的吗?如果没有,在合并之前测试开发代码的最佳方法是什么?

git
1个回答
0
投票

问题是,当您拉取

dev
时,您要求 Git 将其合并到本地沙箱中的
main
中。

您应该做的是一个简单的

git fetch
:在远程获取新工作,而不合并任何内容。获取后,您可以查看历史记录并决定您想要做什么,这可能是重新调整您的本地工作,或者(在我看来很少)实际合并。

现在,

git status
表示您的工作树在开始之前是干净的,这意味着您可以执行有时是危险的命令:硬重置。

git checkout main
git reset --hard origin/main

这两个命令将再次签出

main
,并丢弃所有尚未提交的本地工作(您没有这样的工作,所以没关系)并将
main
重置为
origin/main

© www.soinside.com 2019 - 2024. All rights reserved.