变基与合并git rebase git merge
2020-03-02 本文已影响0人
cdz620
合并提交历史
git rebase -i a4ade219a399b70c936e2449450a03043ab1ae1f
pick 6f791bd 分析数据整理
squarsh 4834b92 如果状态是已经解除关联,不修改状态
squash b7eb225 单应用,且无数据的情况
squash b5ff55a scrapyd url传输中特殊字符串的问题
squash a4ade21 调度修改
squash 188c7a7 部分采集失败的账户,补救采集
- 如果是squash合并多个commit,第一个必须是pick 或者edit
- edit 修改这个提交,可以修改之前护忽略的错误
- pick 应用这个修改
- reword 同pick,但要修改commit log
- squash 合并到前一次修改
- fixup 同squash,但是必须修改commit log
- drop 删除这次修改
- exec 据说是执行shell命令,没用过
git rebase后git push 正确的方式
正常方式
- 首先用git fetch返回服务器上的代码
- 首先用git rebase origin/master 合并
- 如果发生冲突了会提示, 然后可以使用git diff查看冲突, 在手工改掉冲突, 在用git add ‘文件名’ 添加修改后文件,最后用git rebase --continue继续没完成的合并
- 最后就可以用git push 更新到服务器上去。
git push -f origin master
- 会导致其他端必须删除整个工程重新pull
参考
变基与合并
https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%8F%98%E5%9F%BA
重写提交历史
https://git-scm.com/book/zh/v1/Git-%E5%B7%A5%E5%85%B7-%E9%87%8D%E5%86%99%E5%8E%86%E5%8F%B2
不同分之的rebase 参考
http://weizhifeng.net/git-rebase.html
总结
参考下面的url:已经总结的很详细了
http://www.cnblogs.com/sjjg/p/4979417.html
总的原则:
只对尚未推送或分享给别人的本地修改执行变基操作清理历史,从不对已推送至别处的提交执行变基操作,这样,你才能享受到两种方式带来的便利。