git rebase 是不是有可能丢 commit

2014-09-24 21:49:53 +08:00
 wynemo
多人用git还没多久 用的intellij自带的git 经常pull下来要rebase或者merge 我不想看到merge一直选的rebase 有时候发现之前已经push的提交被别人冲掉了这种是不是加个-p就可以避免
8496 次点击
所在节点    git
9 条回复
dullwit
2014-09-24 22:17:54 +08:00
commit可以在reflog里查到。
commit有被覆盖可以查看push是否被他人加-f执行强制非快进式推送,建议设置config receive.denyNonFastForwards true禁用非快进式推送,或者通过授权文件(钩子)设置特定用户可以执行非快进式推送。
dullwit
2014-09-24 22:58:21 +08:00
已经推送到公共服务器git仓库的commit,强烈不建议rebase
Lax
2014-09-24 23:08:45 +08:00
不要在同一个分支上做开发。要做好分支合并管理,把开发分支的代码合并到主干,把代码从主干合并回开发分支,各种合并操作前先pull主干。
Julyyq
2014-09-24 23:20:01 +08:00
LZ记住一点:只要commit过的代码,都能找的回来。
wynemo
2014-09-24 23:22:18 +08:00
@Julyyq 是的 但是比如之前已经修复过的bug 后面又出现了 文件被改回去了 很无语
wynemo
2014-09-24 23:24:37 +08:00
@dullwit 这个原则我在git官网上也看到了 一直用intellij的git插件 没去用cgywin的git 也没有太留心inteillij的git日志窗口 不知道老出现提交过的东西又被改回去是什么个情况
Julyyq
2014-09-24 23:55:02 +08:00
@wynemo 肯定是你们团队中谁的git操作有问题,导致'代码又被改回去'的状况。其实使用merge留下merge branch的记录并不一定是坏事情,反而可以清晰的看清楚团队中每个人的提交记录,https://github.com/nvie/gitflow 这个著名的gitflow就是prefer merge合并而不是rebase合并。
dullwit
2014-09-25 00:05:13 +08:00
@wynemo 就是查看是否被强制push,或者是别人解决合并冲突的时候出错了。
@Julyyq 并不是那么绝对,更改commit的操作虽然有reflog记录,但是reflog默认保存90天。
msg7086
2014-09-25 18:51:42 +08:00
@dullwit 建议好好研究一下gitflow。

我正在用的smartgit里有一个gitflow的简化版,用起来差不多感觉。

基本原理就像上面说的,fork branch做开发,功能做完测试好了merge回主线。分支如果要好看的话,merge之前先rebase本地再merge回主线。

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

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

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

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

© 2021 V2EX