git - Git:将本地分支与开发合并的正确方法是什么?
问题描述
在合并我的本地代码并推送到远程时,我遇到了几个问题。最大的问题之一是得到很多不相关的类,就好像我在使用以下方法时更改了它们一样:
git add .
git commit -m "commit message"
git pull origin dev
(fix conflicts if occurs)
git push origin feature_branch
我认为我需要使用另一种方法,例如使用远程更新我的本地开发并将我的功能分支与本地开发合并,然后再推送到远程。假设我有一个本地feature_branch
功能分支并完成我的更改。在这一点上,以下方法可以还是有正确的方法?
git add .
git commit -m "commit message"
git checkout dev
git pull origin dev
(fix conflicts if occurs or reset my local dev to remote dev)
git checkout feature_branch
git merge dev
git push origin feature_branch
注意:我当然可以使用rebase
,但现阶段我只想以merge
适当的方式使用。
更新:这是另一种stash
用于防止显示不相关更改的方法。这种方法有什么问题吗?
git stash push -m "feature_branch"
git checkout dev
git pull origin dev
(fix conflicts if occurs or reset my local dev to remote dev)
git checkout feature_branch
git merge dev
git stash apply stash@{n}
git add .
git commit -m "commit message"
git push origin feature_branch
解决方案
您的第二个示例在功能上与第一个示例相同,因为您的本地 dev 分支应该与远程 dev 分支相同,并且只有您的 feature_branch 应该有任何冲突。
所以,你的第一种方法是我推荐的:pull (==fetch origin; merge origin/dev),push。
就个人而言,我通常git pull --rebase
; 如果它完美地工作(即没有冲突/通过 rerere 自动解决),你会得到一个很好的本地开发分支,没有一堆合并提交,如果它没有,那么,通常我只是修复 rebase,但如果那是太多的工作,我仍然可以像你一样正常合并。
推荐阅读
- php - 如何将数据从节点 js 发送到 php 文件?
- hybris - 如何在斯巴达克斯设计中使用定价服务
- javascript - React/Redux 状态管理和功能:何时更喜欢传播与分配以及在地图中集成两个/任一运算符的模式
- c# - VSCode - 您没有用于调试 c# 错误的扩展
- java - 带比较器的选择排序
- flutter - 颤振可拖动和拖动目标示例
- python - 如何显示温度最低价差最低的一天
- javascript - 为什么我在尝试设置 PayPal 付款时在生产中不断收到 INVALID_RESOURCE_ID 错误?
- macos - Android Emulator 未在 Mac M1 中显示默认的 Android Wifi
- git - 如何从远程 git repo 只获取分支名称?