Git 克隆,拉取与抓取
- git 克隆 clone
- git 拉取 fetch、合并 merge
- git 抓取 pull
git 克隆 clone
克隆的使用场景很少,举个例子,老板给你一个任务:这个服务的 bug 由你来解决:那么你的第一步就是从云端克隆到本地:
到本地仓库地址下打开 git bash
git clone git@gitee.com:hongduoxu/git_test.git bug-git
发现将云端仓库下克隆到本地仓库下;
git 拉取 fetch、合并 merge
理解 fetch merge,我想通过一个案例来讲解:
首先需要读者明确两个概念,云端仓库,本地未更新仓库;
查看云端仓库内容:
查看本地未更新仓库内容:
在本地仓库中右键打开 git bash
git 从云端拉取到本地未更新仓库中:
git fetch
然后再次查看本仓库,ls,发现并没有变化;这是因为拉取 fetch 只负责从云端仓库拉取更新,不负责合并,想要合并到本地仓库,需要在拉去后再执行 merge 合并操作:
git merge
merge 后再次 ls,发现本地仓库已更新;
其实 fetch 感觉很鸡肋,就是我本来的目的就是拉下来覆盖,为什么还要加一个 merge?其实我认为 fetch 存在的原因就是多给一次确认操作,确认冲突可解决后,再进行 merge 合并;
git 抓取 pull
pull 指令就是 fetch + merge;
查看云端仓库内容:
查看本地未更新仓库内容:
在本地仓库中右键打开 git bash
git 从云端抓取到本地未更新仓库中:(注意这次是抓取,不是拉取)
git pull
发现无需再次进行 merge 操作,就已经将云端仓库内容覆盖到本地中。
然后自然而然会出现一个问题,那就是如果出现冲突该怎么办?
冲突请见下一篇博文:
链接: