微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

git 分支常用命令

##<font color =deepSkyBlue>git拉取</font> ###<font color =DarkTurquoise>git拉取代码到新分支</font> ``` # 可以把远程某各分支remote_branch_name拉去到本地的branch_name下,如果没有branch_name,则会在本地新建branch_name git fetch origin remote_branch_name:branch_ame ``` ###<font color =DarkTurquoise>git pull 和fetch区别</font> 1. git fetch:相当于是从远程获取最新版本到本地,不会自动合并 ``` $ git fetch origin master:tmp $ git diff tmp $ git merge tmp ``` - <font color =LimeGreen>首先从远程的origin的master主分支下载最新的版本到origin/master分支上</font> - <font color =LimeGreen>然后比较本地的master分支和origin/master分支的差别</font> - <font color =LimeGreen>最后进行合并</font> - <font color =LimeGreen>在实际使用中,git fetch更安全一些,因为在merge前,我们可以查看更新情况,然后再决定是否合并。</font> ###<font color =DarkTurquoise>git rebase和merge区别</font> ####<font color =DarkTurquoise>git merge</font> ``` $ #将test分支合并到master分支 $ git merge test master ``` - <font color =LimeGreen>自动根据两个分支的共同祖先两个分支的最新提交 进行一个三方合并,然后将合并中修改内容生成一个新的 commit。通过merge合并分支会新增一个merge commit,然后将两个分支的历史联系起来,其实是一种非破坏性的操作,对现有分支不会以任何方式被更改,但是会导致历史记录相对复杂</font> ####<font color =DarkTurquoise>git rebase</font> ``` $ git checkout experiment $ git rebase master ``` - <font color =LimeGreen>它的原理是首先找到这两个分支(即当前分支 experiment、rebase操作的目标基底分支 master)的最近共同祖先 C2,然后对比当前分支相对于该祖先的历次提交,提取相应的修改并存为临时文件,然后将当前分支指向目标基底 C3, 最后以此将之前另存为临时文件修改依序应用。</font> - <font color =LimeGreen>rebase会将整个分支移动到另一个分支上,有效地整合了所有分支上的提交,主要的好处是历史记录更加清晰,是在原有提交的基础上将差异内容反映进去,消除了 git merge所需的不必要的合并提交,总的原则是,只对尚未推送或分享给别人的本地修改执行rebase操作清理历史,从不对已推送至别处的提交执行rebase操作,这样,你才能享受到两种方式带来的便利。</font>
##<font color =deepSkyBlue>参考链接</font> [https://www.yiibai.com/git/git_pull.html](https://www.yiibai.com/git/git_pull.html) [https://www.cnblogs.com/chenny7/p/7644318.html](https://www.cnblogs.com/chenny7/p/7644318.html)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐