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)

相关文章

本篇内容主要讲解“gitee如何上传代码”,感兴趣的朋友不妨来...
这篇“从gitee上下的代码如何用”文章的知识点大部分人都不太...
这篇文章主要介绍“gitee如何下载仓库里的项目”,在日常操作...
本篇内容主要讲解“怎么在Gitee上更新代码”,感兴趣的朋友不...
本文小编为大家详细介绍“怎么将工程托管到gitee”,内容详细...
这篇文章主要介绍了gitee中图片大小如何调整的相关知识,内容...