切换回main分支后dev分支疑似自动合并?如何测试待合并开发代码?
问题解答
该现象是否正常?
这个现象不是Git自动合并导致的,是你在main分支执行git pull origin dev_branch时,直接把远程dev_branch的代码合并到了本地main分支,所以切回main后才会显示超前远程main6个提交。这是操作失误,不符合预期,属于不正常的情况。
说白了,git pull <远程仓库> <分支名>其实就是先拉取远程分支的代码,再自动合并到当前所在的分支。你当时在main分支上跑这个命令,自然就把dev_branch的提交合并进来了。
合并前测试开发代码的最佳方式
下面是几种不会污染main分支的安全测试方法:
直接切换到开发分支测试:
正确的拉取并切换分支步骤应该是这样:# 先拉取远程所有分支的最新更新 git fetch origin # 切换到dev_branch(本地没有的话会自动创建并关联远程分支) git checkout dev_branch # 确保本地分支和远程同步 git pull origin dev_branch这样操作完全碰不到
main分支,测试完切回main就行,本地main不会有任何改动。创建临时测试分支:
如果需要在开发分支基础上做临时测试修改,又不想弄脏原开发分支,可以从dev_branch拉个临时分支:git checkout dev_branch git checkout -b temp_test_branch # 在临时分支随便改,测试完切回main,直接删掉临时分支就行 git checkout main git branch -D temp_test_branch用git stash暂存未提交修改:
如果切换分支前main分支有没提交的改动,先暂存起来再切换:git stash git checkout dev_branch # 测试完切回main,恢复之前暂存的修改 git checkout main git stash pop用git worktree做工作区隔离(可选):
要是不想来回切换分支,可以用git worktree在不同目录同时检出不同分支:# 在当前仓库外面建个目录,专门放dev_branch的代码 git worktree add ../dev-test dev_branch # 进入这个目录测试,完事直接删掉这个工作区 git worktree remove ../dev-test
内容的提问来源于stack exchange,提问作者3rik5
相关产品推荐
相关产品推荐

