一个需求,多人一起在 dev
开发 。
有大量无意义 commit 信息。希望合并到 master
只有一个 commit 。
使用压缩提交的话,所有代码的 Author 都变成了同一个人。
有什么办法既压缩多个 commit 成一个,并且还能保留 Author 信息?
1
Goooler 2023-09-07 13:00:53 +08:00 via Android 3
Co-authored-by:
|
2
fw1314 2023-09-07 13:15:39 +08:00
squash 的时候就像一楼说的那样就可以了
|
3
gyt95 2023-09-07 13:18:33 +08:00
如果是线上码云、github 那怎么设置
|
4
zhongjun96 OP |
5
Goooler 2023-09-07 15:20:03 +08:00 1
IDEA 里面显示的是第一作者,共同作者在提交信息或者 github 网页上可以看到
|
6
zjp 2023-09-07 15:59:17 +08:00 via Android
git 自身就不支持多个提交人
|
7
pagxir 2023-09-07 16:08:37 +08:00 via Android
这操作没啥意义吧。既然不是同一个人写,就不是同一个问题,遵循一个问题一个 patch 原则那就不要塞一起。既然塞一起就说明不在乎这个 author 了。
|
8
yin1999 2023-09-07 16:10:05 +08:00
@gyt95 不清楚码云的,GitHub 的 UI 会在使用 squash and merge 的时候自动帮你生成 Co-authored-by 信息
|
9
unco020511 2023-09-07 16:46:59 +08:00
在 squash 的 commit msg 里带上原作者
|
10
rainbowhu 2023-09-07 18:12:55 +08:00
如果你想不用 Co-authored-by ,那就`git rebase -i origin/master`,然后手动把各自的修改,单独各合成 1 个 commit 。
也就是两个人会有两个 commit ,三个人会有三个 commit 。不过可能牵扯到调整 commit 顺序,处理冲突之类的,还挺麻烦的。 rebase 还有个问题就是,如果里面新修改里有 merge commit ,会比较麻烦。 虽然会多几个 commit ,但是 rebase 后的提交历史也是很整洁的。 简单点,就是 git squash ,然后 commit 信息里添加 Co-authored-by 了。 |
12
zhongjun96 OP @pagxir #7 因为分支没有拆分到那么细。按照需求拆的。一个需求涉及多个模块,不同模块负责人不同。就导致看起来是一个功能,多个人在开发。
|
13
fw1314 2023-09-07 23:25:41 +08:00 via iPhone
@zhongjun96
gitea 的话我不清楚,但是 GitHub 是可以的,你可以看看 8 楼说的,其实就是加多个受理人 |
14
zhongjun96 OP @fw1314 #13 看了下,是#5 说的原因。在 gitea 网页上也能看到多个作者,idea 里就只能看到第一个。
|