一个月前,我从主 develop
分支创建了一个名为 feature1
的新分支。
⇒ git branch
develop
* feature1
我已经在 feature1
上工作了一个月,很多更改已推送到 develop
。
如何使用来自 develop
的最新提交更新我当前的分支 feature1
?
我不想签出 master
并将我的 feature1
分支合并到其中。我也不想使用 git cherry-pick
手动将提交从 develop
移动到 feature1
。
我该怎么做呢?
您只需将开发合并到功能1:
git checkout feature1
git merge develop
无需涉及其他分支,例如 master。
首先,您需要更新您的开发分支,然后检查您的功能并合并/重新设置它。
git checkout develop
git pull
git checkout feature/myfeature
现在您可以决定是否运行:
git merge develop
git rebase develop
合并:保留分支中的所有提交历史记录,如果您的部分提交有很多有趣的内容,这很重要。
rebase:rebase 意味着从功能中删除提交历史,而不是从开发中获得历史;在某些团队中,此选项是强制性的。
准备好后,您可以推送到自己的分支(例如拉取请求)
git push origin feature/myfeature
Rebase
表示从 feature
中删除提交历史记录,取而代之的是 develop
中的历史记录
这个用例对于保持更新您的 PR 分支非常有帮助。首先,我建议您首先获取远程更改,即 git fetch
,然后从 develop
合并或变基,但从远程更改,例如
git rebase -i origin/develop
或者
git merge origin/develop
这样,您将更新您的 PR 分支,而无需在分支之间来回切换。
如果您不希望 develop
头和 feature1
头都合并到 feature1
中,而是希望在使用 {1 中的最新编辑“更新”feature1
分支时保持每个分支头不同},使用无快进:
git pull
git co feature1
git pull
git merge --no-ff develop
git push
我个人每次执行合并时都尝试使用 --no-ff
,因为在我看来它可以保持历史非常干净。
分支机构:
开发 ====> 开发
功能1 ====> 工作
步骤 1 从站点发送 Git
检查您正在同步的分支
git status
为提交添加文件
git add .
带有描述的提交
git commit -m "COMMENT"
发送到您同步的分支
git push
步骤 2 将更新后的工作分支与 DEV(开发)同步 - 将工作分支与开发分支同步(更新开发分支)
与遥控器同步并切换到DEV分支
git checkout DEV
请求合并您正在与 feature1 分支同步的分支
git merge feature1
将当前分支与 feature1 分支合并
git push
第 3 步 GIT 查找远程 - 从更新的开发分支更新工作分支
连接到参考分支
git checkout DEV
搜索更改
git pull
与您的工作分支同步
git checkout feature1
请求合并与 DEV 分支同步的分支
git merge DEV
将当前分支与 DEV 分支合并
git push
在 IntelliJ IDEA 中,只需按照以下步骤操作:
打开 Git 工具窗口(查看->工具窗口->Git)选择“日志”右键单击“开发”单击 -Merge 'develop' 到 'feature1'(保留分支中的所有提交历史记录)或 -Rebase ' develop' 变成 'feature1' (从你的分支中删除提交历史,而不是从开发中获取历史) 最后 Git 推送
为了避免使用简单的合并从开发中提交,我发现更简单(技术较少)的方法特别是如果您已经推送:
更改为 development 并确保您提取了最新更改 从 develop 创建另一个分支, feature1_b 将 feature1 合并到 feature1_b 如果您希望原始 feature1 则删除
因此,当您将 feature1_b
的 PR 变为开发时,它只会包含您的新更改,而不是整个提交历史。
如果您还没有推送,那么@stackdave 的答案是一个很好的答案。
$ git checkout <another-branch> <path-to-file> [<one-more-file> ...]
$ git status
$ git commit -m "Merged file from another branch"
git checkout develop git pull 3.git checkout localbranch
然后根据您的要求运行合并或变基
git 合并开发 git rebase 开发
我找到了解决方案。签出前一个分支并拉取新分支 https://stackoverflow.com/a/71306254/17779236
不定期副业成功案例分享
git merge develop
后,feature1 的提示将被更新,包括来自开发的新代码。这让开发人员可以使用最新的代码。合并不会以任何方式影响开发分支。也许在未来的某个时候,这个开发者想要将 feature1 合并到开发中(即其他方式)以更新开发的提示,这需要审查。届时,无论生成什么临时合并提交,都将在审查中指定,以便审查者可以看到开发方式将如何变化的差异。