文章目录
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。