如何只把当前A分支中的几个修改过的文件同步到B分支中
- 应用场景:A分支中的N个文件已经修改了,且进行了git提交和推送。希望只将A分支中这几个刚才修改过的文件同步到B分支中。
#0. 确认当前分支
git branch
custom-domain
#1. 把所有修改文件加入暂存区
git add .
#2. 提交修改记录
git commit -m "博客文章正文内容不够紧凑的问题
- 修改点 1:variables.css中的部分字号和行高
- 修改点 2:pages.css中的段落和标题间距
- 修改点 3:layout.css中的.main-nav和.breadcrumb同时增加了上边距,调整了面包屑和页脚的字号
- 修改点 3:components.css中的分类卡片的字号"
#3.推送到远程仓库
git push origin custom-domain 刚才在custom-domain分支中,我把CSS相关的修改成功提交并推送到了custom-domain远程仓库。
接下来我想把这些修改同步到我的main分支中,然后进行远程推送。
现在的问题是:如何只把custom-domain分支中这几个刚才修改过的文件同步到main分支中,同时不会造成和main分支中其他文件的冲突?
这里我询问了Qwen3.6-plus,它推荐使用 cherry-pick 方式。
方法一:使用 git cherry-pick(推荐)
这个方法会把 custom-domain 分支上的最后一次提交完整地应用到 main 分支上。
# 1. 切换到 main 分支
git checkout main
# 2. 拉取 main 分支最新代码
git pull origin main
# 3. cherry-pick custom-domain 分支的最新一次提交
git cherry-pick custom-domain
# 4. 推送到远程 main 分支
git push origin main优点: 操作简单,完整保留提交信息,不会动到其他文件。
如何避免冲突?
无论用哪种方法,关键步骤是先 git pull origin main,确保你的本地 main 是最新的。只要 main 分支上没有人修改过这 4 个 CSS 文件,就不会产生冲突。
我推荐用方法一(cherry-pick),因为它保留了完整的提交记录,方便后续追溯。
最终,我采用了方法一:使用 git cherry-pick,在本地powershell中和远程的构建部署中都没有任何报错!
以下是完整的git提交记录:
#0. 确认当前分支
git branch
custom-domain
# 1. 把所有修改文件加入暂存区
git add .
# 2. 提交修改记录
git commit -m "博客文章正文内容不够紧凑的问题
- 修改点 1:variables.css中的部分字号和行高
- 修改点 2:pages.css中的段落和标题间距
- 修改点 3:layout.css中的.main-nav和.breadcrumb同时增加了上边距,调整了面包屑和页脚的字号
- 修改点 3:components.css中的分类卡片的字号"
#3.推送到远程仓库
git push origin custom-domain
----------把 custom-domain 分支上的最后一次提交完整地应用到 main 分支上--------------
# 1. 切换到 main 分支
git checkout main
# 2. 拉取 main 分支最新代码
git pull origin main
# 3. cherry-pick custom-domain 分支的最新一次提交
git cherry-pick custom-domain
# 4. 推送到远程 main 分支
git push origin main