有没有办法一条命令可以快速 rebase?

2016-04-21 16:52:32 +08:00
 leonlh

项目用 git 做版本管理,同步代码的时候用的是 git pull --rebase 来保证分支的整洁

然而 rebase 时如果当前有未提交的代码, git 会提示: Cannot rebase: You have unstaged changes.

所以我的操作流程是这样的:

  1. git stash
  2. git pull --rebase
  3. (有冲突解决冲突,然后 git rebase --continue)
  4. git stash pop stash

pull 一个代码,竟然要这么多步骤,简直令人发指。。。 考虑过用 alias 写个命令把这几个命令都加进去,但是如果 rebase 的时候出现冲突就跪了 所以 V2 大神有没有好的方案,能够便捷的 rebase 代码...

7940 次点击
所在节点    git
48 条回复
hantsy
2016-04-22 23:15:47 +08:00
最近看了一下 HG ,不得不说的是 HG 有些方面设计比 GIT 更好一些。
hantsy
2016-04-22 23:17:02 +08:00
@clino gerrit 没用过, 有 Github 直接在 PR 代码上 Code Review ,太方便了。
kirisetsz
2016-04-23 06:29:31 +08:00
@julyclyde 那是什么?不在链上的 commit ?没遇到过啊…… 你说的是 merge commit 会消失的事情么?
clino
2016-04-23 07:45:50 +08:00
@hantsy 不理解 要是 rebase 有冲突应该 merge 也会才对
gerrit 在 code review 功能方面比 github 强
cszchen
2016-04-23 09:26:52 +08:00
看你们撕逼完全插不上嘴,我对 git 不是很熟练。
请教一下,比如我 master 从其他分支合并稳定可发布的版本,有一天 master 从一个线上 bug 修复分支(hotfix)合并了一个 bug 修复。然后我开发分支(也可能有其他分支)rebase 一下 master ,之后还是用 merge ,这样对吗
msg7086
2016-04-23 10:15:10 +08:00
@cszchen 我个人习惯是用 Git Flow Simple ,上游更新了本地 Rebase ,完成 Feature 以后 Merge In 。
至于如果你是 Master 稳定版 Dev 开发版,是不能 Rebase Master 的。
一种是参考 Git Flow 里 Hotfix 的做法, Fork 出来修好 Bug 以后 Merge 到两边。
另一种是我们现在在用的, Master 里直接修好以后 Cherry Pick 到 Dev 去。
faywong8888
2016-04-23 13:57:09 +08:00
有冲突怪不了版本控制工具,针对你的场景我给个方案:
>不用版本控制,直接拷贝覆盖。能满足你的需求。
julyclyde
2016-04-23 19:15:59 +08:00
@kirisetsz 你看一下 commit 的号码就知道了

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

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

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

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

© 2021 V2EX