标签:MTA odk The 除了 pemu 线性 pki 情况下 远程
看到国外论坛上这篇文章讲的很好,翻译过来学习学习
git checkout feature
git merge master
或者可以将上面两条整合到一条指令:
git merge feature master
这会在feature分支创建一个新的merge commit,将所有分支的历史都连结到一起,会给你一个如下所示的分支结构:
Merging很优秀,因为它是一种非破坏性的操作。现存的分支不会以任何形式被改变,这一点避免了rebasing所有的潜在陷阱。
在另一方面,这同样意味着,每次当你需要整合上游的改变时,feature分支会有一个额外的merge commit。如果master分支很活跃,这会将你feature分支的历史污染的很严重。当需要用到git log的时候,这些历史会使其他开发者很难理解项目的历史。
git checkout feature
git rebase master
这段指令将整个feature分支挪到了master分支的后面,有效地将所有新commits整合到master分支中。但是,和使用merge commit不同的是,rebasing通过为每个原始分支中的commit创建全新的commit,重写了项目的历史。
git checkout feature
git rebase -i master
pick 33d5b7a Message for commit #1 pick 9480b3d Message for commit #2 pick 5c67e61 Message for commit #3
pick 33d5b7a Message for commit #1 fixup 9480b3d Message for commit #2 pick 5c67e61 Message for commit #3
像上面这样忽略掉一些非必要的commit可以使你的分支历史看起来好理解的多。这是git merge不太能做到的。
# Be very careful with this command!
git push --force
git checkout feature git rebase -i HEAD~3
git merge-base feature master
git checkout feature git checkout -b temporary-branch git rebase -i master # [Clean up the history] git checkout master git merge temporary-branch
标签:MTA odk The 除了 pemu 线性 pki 情况下 远程
原文地址:https://www.cnblogs.com/dieFreiheit/p/11603711.html