变基与合并git rebase git merge

合并提交历史

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 正确的方式

正常方式

  1. 首先用git fetch返回服务器上的代码
  2. 首先用git rebase origin/master 合并
  3. 如果发生冲突了会提示, 然后可以使用git diff查看冲突, 在手工改掉冲突, 在用git add ‘文件名’ 添加修改后文件,最后用git rebase --continue继续没完成的合并
  4. 最后就可以用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

总的原则:

只对尚未推送或分享给别人的本地修改执行变基操作清理历史,从不对已推送至别处的提交执行变基操作,这样,你才能享受到两种方式带来的便利。

你可能感兴趣的:(变基与合并git rebase git merge)