git clone、git pull和git fetch的使用和区别

1、git clone

1-1、定义

git clone用于拷贝远程仓库到本地,复制下来是整个版本库,在文件夹目录下生成.git文件夹,所以不需要用命令git init 初始化;

1-2、命令

git clone <url>  //url为要拷贝的远程库地址

有下面两种协议复制远程库:在这里插入图片描述
通过HTTPS协议复制远程库:

git clone https://github.com/buggetout/git_clone_test.git

通过SSH协议复制远程库:

git clone git@github.com:buggetout/git_clone_test.git

​​​​​​

2、git pull

2-1、定义

git pull命令用于从远端获取代码并合并到本地的版本。

  • git pull 是git fetch 和 git merge 的操作

2-2、命令

git pull <远程仓库名> <远程分支名><本地分支名>

比如说远程仓库origin 的分支master分支拉取过来,与本地的leaf01分支合并:

git pull origin master : leaf01

如果是远程分支与本地的当前分支合并,则冒号后面的指定分支语句(包括冒号)可以省略,如下:

git pull origin master

要是上面拉取远程仓库指定分支origin/master 下来合并的操作用命令git petch合并的操作

3、git fetch

3-1、定义

git fetch命令用于从远程获取代码库。

3-2、命令

git fetch <远程代码库名>//将指定远程库的更新全部取回本地
git fetch <远程代码库名> <远程分支名> //可以指定拉取远程哪个分支
-------
git merge <远程代码库名>/<远程分支名> //要是用git fetch拉取远程代码更新之后,git log FETCH_HEAD之后判断没有冲突后,用这个命令合并到本地分支上了

在用命令git fetch拉取远程库代码之后,会返回一个FETCH_HEAD,反馈某个分支在服务器的最新状态,可以在本地取回更新的状态:

git log -p FETCH_HEAD

根据信息来判读是否有产生冲突,是否merge到当前分支;

git merge <远程代码库名>/<远程分支名>

4、git pull和git fetch的区别

4-1、远端跟踪的不同

1、git pull:
git pull无法直接对远端跟踪分支操作,必须先切回本地分支,然后创建一个新的commit提交;
2、git fetch:
git fetch 能够直接更改跟踪分支;

4-2、拉取不同

1、git pull:从远程获取最新版本并自动merge到本地,会自动合并和修改;
2、git fetch:将数据拉取到本地仓库,不会自动哼和修改;

4-3、commit不同

1、git pull:使用git pull更新代码,本地库中的master的commit ID会发送改变,变成了2。
2、git fetch:使用git fetch更新代码,本地库中的master的commit ID不变,还是等于1。

猜你喜欢

转载自blog.csdn.net/weixin_42640280/article/details/127133684