如题
往已经 push 的 commit 里追加修改的比较规范的做饭是怎样的?
1 wfd0807 2020-07-12 18:22:27 +08:00 实现不规范操作的规范做法? reset header + force push 规范吗? |
2 sarvatathagata 2020-07-12 18:24:12 +08:00 git commit --amend && git push -f |
![]() | 3 xcold 2020-07-12 18:28:18 +08:00 ![]() git commit --amend && git push --force-with-lease |
![]() | 4 tinycold 2020-07-12 18:39:25 +08:00 via Android rebase -i 能合并 commit,但是不知道能不能合并已经 push 了的。 |
6 skwfar 2020-07-12 19:00:27 +08:00 rebase 就完事,然后 force push |
![]() | 7 lhx2008 2020-07-12 19:05:36 +08:00 via Android ![]() push 了没救了,打 patch 就行,-force 本来就不规范 |
![]() | 8 SingeeKing PRO master / develop 分支:首先直接推到这两个分支本身就已经不规范了(正常情况下应当直接禁止直接 push 的),既然不规范,那么在确保没有别的问题(最好是不要有任何其他协作人,并且自己保证本地没有基于现有提交的分支)的情况下直接 amend commit + force push 吧;如果禁用了 force push,那么就老老实实新增一个 commit 吧 其他分支( feature / hotfix / release 等):确保没有其他人也在这个分支之上工作就大胆的 amend commit + force push 吧,反正最后 merge 的时候应该也是 sqash 的 |
9 nightwitch 2020-07-12 19:25:19 +08:00 没有规范做法,修改已经 push 的历史都要 force push |
![]() | 10 edk24 2020-07-12 22:35:44 +08:00 -f 的, 你的同事很快会过来打断你的狗腿... :) |
![]() | 11 himself65 2020-07-12 23:39:54 +08:00 via iPad 规范就是不应该直接操作 master 分支…… |
![]() | 12 yinheli 2020-07-13 00:19:03 +08:00 如果是自己的分支,可以做 rebase, --amend (最近的一次)然后 force push 上去,如果有别人协作的 master 、develop 分支就不行(一般这种也会在服务器端通过 hook 禁止掉) |
![]() | 13 Nielsen 2020-07-13 02:08:32 +08:00 开个玩笑,怎么抢劫才能不犯法…… 没有恶意哈,但毕竟你已经 push 了,再追加修改这就是不对的。当然你如果问一圈同事大家都还没 pull,那你 -f 一下也就当没人知道了。 |
![]() | 14 xcstream 2020-07-13 02:44:42 +08:00 禁止-f |
![]() | 15 msg7086 2020-07-13 04:25:33 +08:00 ![]() Git 本来也就没有什么规范不规范的。 各个公司都有自己的规范,你也可以定自己的规范。比如我们做开发,force push 是家常便饭,和我合作的同事都知道怎么正确处理 force push,犯不着把 Git 提供的这么好用的功能给莫名其妙禁掉。当然,如果周围是连 force push 怎么正确处理都不知道的同事,还是保守点比较好。就像我曾经遇到过连开分支都不知道怎么开的同事,结果咱们就只能当 SVN 用了。 |
![]() | 16 jagger2048 2020-07-13 08:05:38 +08:00 这边是 git add -u git commit --amend --no-edit git push xxx |
17 noobcoder1 2020-07-13 11:58:31 +08:00 直接用 git flow 吧 省的烦 |
![]() | 18 rrfeng 2020-07-13 12:48:58 +08:00 不可以。 上面说的重新提交然后 push --force 实际上还是生成了新的 commit 。答案是绝对不可以。 |
19 lloovve 2020-07-13 12:52:49 +08:00 via iPhone 直接修改提交不行?怕别人觉得自己弱鸡? |
20 lloovve 2020-07-13 12:53:25 +08:00 via iPhone 谁也不能保证自己的代码没 bug |
![]() | 21 msg7086 2020-07-13 14:15:31 +08:00 @rrfeng 这里我觉得有一定的语言二义性。 因为楼主说要往 commit 追加修改,那就是 update commit 。 既然 update 了,那 update 完了的 commit 自然是「新的」。 楼主的意思应该是不产生多余的 commit 的意思。 @lloovve 源代码管理工具的目标是管理源码,而不是为了提交而提交。 既然是管理,就要有规范。相同功能的修改整合在一起,不同功能或部位的修改拆开。 不停地追加提交,最后不同功能的更改犬牙交错混在一起,既不方便 Code Review,万一遇到需要回滚功能的时候也没法干净地区分并回滚一小部分提交。 所以比较专业的 Git 用户都会整理提交记录的。 |
![]() | 22 cyberocx 2020-07-13 16:28:52 +08:00 你都要修改之前的 commit 了,还有啥规范不规范的。。 |
23 mxT52CRuqR6o5 2020-07-13 16:52:54 +08:00 via Android 都 force 了还有啥规范可言,自己掂量掂量怎么影响最小吧 |
![]() | 24 est 2020-07-13 16:54:58 +08:00 证明没有测试环境。 |
25 iseki 2020-07-13 17:01:52 +08:00 话说,如果推完三分钟内 push -f (估么着没人 pull )是一个不太好的做法吗 |
26 lloovve 2020-07-13 17:03:59 +08:00 via iPhone 代码修改本来就是线性的,怎么整理,也是不能一次改动就完备,git 最大的作用就是记录。大多数时候是分开发分支和稳定分支,说白了,你要做的是分支管理 |
![]() | 27 1010011010 2020-07-13 17:38:44 +08:00 我觉得要治的是强迫症,人非圣贤孰能无过,你觉得完美的提交在别人看来可能并不完美 |
![]() | 28 lizytalk 2020-07-13 17:47:01 +08:00 force push 肯定是需要的,也肯定是不合规范的... |