Git技术问询:如何将代码变更推送到非master分支?以及如何将feat/plan分支的变更推送到feat/api分支?
没问题,咱们把你的两个Git问题拆解成清晰可操作的步骤来解答:
首先确认你当前在正确的本地分支上。运行以下命令查看当前分支和所有本地分支:
git branch带星号(*)的就是你当前工作的分支。如果不在目标分支上,切换过去:
git checkout 你的分支名(如果你的Git版本是2.23及以上,也可以用
git switch 你的分支名,更直观)如果你还没提交本地变更,先完成提交:
git add . git commit -m "这里写有意义的提交说明,比如:修复XX功能bug"接下来把变更推送到远程的非master分支。如果是第一次推送这个分支到远程,用
-u参数绑定上游分支(这样后续推送只需要git push即可):git push -u origin 你的分支名如果之前已经推送过这个分支,直接运行:
git push
既然你已经把feat/plan的变更合并到了dev,而feat/api同样基于dev分支创建,那我们可以通过同步dev的更新到feat/api来获取这些变更,步骤如下:
先切换到本地的feat/api分支:
git checkout feat/api拉取远程feat/api的最新版本,确保本地代码是最新的:
git pull origin feat/api将包含feat/plan变更的dev分支合并到feat/api:
git merge dev如果出现合并冲突,在代码编辑器里解决冲突后,提交冲突解决结果:
git add . git commit -m "合并dev分支到feat/api,同步feat/plan的变更"最后把更新后的feat/api推送到远程:
git push origin feat/api
备选方案:只迁移feat/plan的特定提交
如果你不需要dev分支的所有变更,只想把feat/plan里的某几个提交迁移到feat/api,可以用git cherry-pick精准操作:
先获取你需要的feat/plan提交的哈希值。切换到feat/plan分支或者直接用
git log查看:git log --oneline复制你需要的提交的7位哈希码。
切换到feat/api分支:
git checkout feat/api执行cherry-pick命令迁移指定提交:
git cherry-pick <提交哈希值>如果有多个提交,用空格分隔哈希值:
git cherry-pick 哈希1 哈希2 哈希3如果出现冲突,解决后继续完成cherry-pick:
git add . git cherry-pick --continue最后推送到远程feat/api:
git push origin feat/api
内容的提问来源于stack exchange,提问作者Swapnil Chaturvedi




