前几天从git上下载了一份项目代码到本地(采用命令:git clone git@git项目地址)。然而,下载的代码还木有看明白,组里的大牛又往项目里添加了很多修改,于是,抱着新提交的代码一定有提高模型质量的想法,强迫自己一定要弄一份和远程项目库里代码完全一致的本地copy。
那么我把之前从git上下载的删掉,然后再用git clone git@git项目地址的方式,从新弄一个新的本地副本不就行了吗,后来想想,想法实在太懒。万一他们每天都有人更新提交上去,我岂不是每天都要rm,mkdir,git clone无限循环。。。想到git这么强大,一定有方式让本地能够同步远程git项目的更新,也许几个命令就能搞定。
查了一下,还真的有,并且自己实验了一下:
方法1:1>首先进入到含有.git的项目目录下,通过命令 git remote -v查看远程仓库
2>从远程获取最新版本到本地:git fetch origin master:temp(使用该命令在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支)
3>比较本地仓库与下载的temp分支:git diff temp(可以用q退出)
4>合并temp分支到本地master分支:git merge temp
5>如果temp分支不想保留,可以使用如下命令删除该分支:git branch -d temp
总结如下:
git fetch origin master:temp
git diff temp
git merge temp
git branch -d temp
方法二:直接进入项目目录下:
git pull origin master
(相当于从远程获取最新版本并merge到本地),相当于git fetch和git merge。在实际使用中,git fetch更安全一些,因为在merge前,我们可以查看更新情况,然后再决定是否合并。