Git 将 A 分支的内容修改后提交到 B 分支应该如何操作?

2021-12-09 17:43:17 +08:00
 Richard14

A 和 B 分支在远程仓库上都已经存在了。

现在想做的操作是,每次 A 更新后,首先完全同步 A 的更新后的文件,然后做出一些类似 CI 的修改,最后将所有更新后的内容推到 B 分支(而 A 分支保持不变)

应该怎么操作?

目前的想法是

1. git checkout main
2. git fetch --all
3. git reset --hard origin/main
4. git pull                      # 到这里为止获取最新的 main
5. 修改
6. git checkout dev
7. git merge main
8. git commit
9. git push dev

不过有个疑问是第 6 步 checkout 的时候,我刚刚修改的文件不就没了么

1257 次点击
所在节点    问与答
7 条回复
Akiya
2021-12-09 17:53:31 +08:00
```
git checkout branchA
修改
git commit
git checkout branchB
git merge branchA
```
fdppzrl
2021-12-09 17:54:20 +08:00
git stash
GuuJiang
2021-12-09 17:56:57 +08:00
1. git checkout B
2. git checkout A .
3. 修改
4. git commit
5. git push

关键是第二步中的第二个参数“.”,不能漏,表示把 A 分支的文件检出到当前工作空间
Shawlaw
2021-12-09 20:36:47 +08:00
git checkout branchB
git merge branchA --no-ff
修改
git add .
git commit

如果要把流程自动化,可以试试在远端仓库启用 githook

这样的 git 分支历史也会比较清晰。
FAQ999
2021-12-09 21:13:55 +08:00
cherry-pick ?
hdfg159
2021-12-09 21:16:49 +08:00
5 楼正解
QingStone
2021-12-10 08:04:58 +08:00
5 楼正解

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/821164

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX