Git 指令的理解

git pull 和 git merge 的区别

git pull 和 git merge 都是将其他分支的代码合并到当前分支,那到底在不同场景下具体啥区别呢??

用过了就知道了,一次 git pull = <font style="color:rgb(51, 51, 51);">git fetch</font> + <font style="color:rgb(51, 51, 51);">git merge</font>
fetch 和 push 命令可以分别对远程分支进行 fetch 和 push 操作,而 pull 不是直接跟远程分支对话的。

fetch同pull的区别在于:git fetch:是从远程获取最新版本到本地,不会自动merge 而git pull是从远程获取最新版本并merge到本地仓库 从安全角度出发,git fetch比git pull更安全,因为我们可以先比较本地与远程的区别后,选择性的合并。 git push 如果不指定, 默认推送到master,如果本地有多个修改了且commit了的分支,这会将这些分支一起推送到对应的远程分支上。

Branch 和 Tags 的区别

tag 对应某次 commit, 是一个点,是不可移动的。

branch 对应一系列 commit,是很多点连成的一根线,有一个 HEAD 指针,是可以依靠 HEAD 指针移动的。

所以,两者的区别决定了使用方式,改动代码(开发时)用 branch ,不改动代码(发布的版本**)只查看用 tag**。

tag 和 branch 的相互配合使用,有时候起到非常方便的效果,例如 发布了 v1.0 v2.0 v3.0 三个版本,这个三个版本是独立不变的,也就是每个都对应一个 tag。

但这个时候,我突然想不改现有代码的前提下,在 v2.0 的基础上加个新功能,作为 v4.0 发布。就可以 拉取出 v2.0 tag 的代码作为一个 branch ,然后作为开发分支进行开发。

[

](https://blog.csdn.net/qq_44752641/article/details/120310747)


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!