git的优势体现在分布式存储上,使得每台设备上都可以存储项目仓库。在团队协作中,我们往往将一台服务器作为git远程仓库使用,通过本地仓库与远程仓库的连接互动,来实现高效的团队协作。这也是git的一大优势。
git clone
这个命令十分常见,当已经存在一个远程git仓库时,如果我们想要把它拷贝到本地上来,就可以使用这个命令。
git clone [--recursive] <repository> [<directory>]
--recursive
参数用于递归拷贝目录,<directory>
可以省略。这命令可以看做是以下几个命令的集合。
mkdir dir
cd dir
git init
git pull <repository>
使用命令后本地仓库就与远程仓库自动关联起来,远程仓库默认名字就是origin。
git remote
这个命令用于添加远程仓库,想要知道当前有哪些远程仓库,可以使用命令git remote [-v]
。
接下来就是对远程仓库的增删改插查。增加远程仓库
git remote add origin <repository> ##origin名字可以修改
重命名远程仓库
git remote rename origin origin_2
删除远程仓库
git remote remove origin_2
修改远程仓库
git remote set-url [--add|--delete] origin newurl oldurl
查看某个远程仓库
git remote get-url origin
git remote show [-v] origin
git push
当我们有一个新的本地git仓库要推送到远程git服务器,或者是项目更新要推送时,就可以使用这个命令。
git push [-f] [-all] [-u] [<repository>] [<refspec>…]]
在第一次使用的时候,需要加上-u
参数,来关联本地分支和远程仓库的分支。
git push -u origin master
后面再使用时,则不需要加上-u
参数了,-f
用于强制执行推送,-all
表示推送所有分支。
git fetch
这命令用于提取远程仓库内容。一般和git merge
一起使用。使用也很简单。
git fetch [<repository> [<refspec>…]]
当我们想获取origin的master分支时,就可以使用git fetch origin master
来获取。如果不添加分支,则代表拉取所有分支。获取的远程仓库的内容不会立即进入工作区,需要通过git merge
融合。
git merge FETCH_HEAD ##FETCH_HEAD和HEAD类似,指向最近拉去的远程仓库
git merge origin/master ##同样功能,合并远程仓库
git fetch origin master:tmp ##将远程仓库内容存放在tmp分支中,然后合并
git merge tmp
git pull
相比较git fetch
而言,git pull
就要粗暴许多,它会直接拉取远程仓库内容并合并到本地目录中,相当于使用了git fetch
再加一个get merge FETCH_HEAD
。该命令使用也很简单。和git fetch
一样
git pull [<repository> [<refspec>…]]