之前分享如何将本地仓库与远程仓库建立联系,这次分享一下如何从远程参考克隆,拉取等操作
如果已经有一个远端仓库,我们可以直接 clone 到本地。
命令: git clone < 仓库路径 > [ 本地目录 ]
本地目录可以省略,会自动生成一个目录,目录的名称为仓库的名称
需要从桌面右击启动git bash
仓库路径为SSH地址
这样在桌面就可以看到一个从远程仓库克隆过来的文件夹了
远程分支和本地的分支一样,我们可以进行 merge 操作,只是需要先把远端仓库里的更新都下载到本地,再进行操作。
抓取 命令:git fetch [remote name] [branch name]
抓取指令就是将仓库里的更新都抓取到本地,不会进行合并
如果不指定远端名称和分支名,则抓取所有分支。
拉取 命令:git pull [remote name] [branch name]
拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge
如果不指定远端名称和分支名,则抓取所有并更新当前分支。
在本地创建一个文本并提交到本地仓库。
将本地仓库提交到远程仓库上
但是在其他仓库上没有这次修改的内容,所以需要拉取远程仓库
这边先演示一下使用git fetch指令
我们可以看到从抓取到了新的内容,但是这时候本地分支与远程仓库的分支并不是在同一个修改下,这时候需要进行合并 。
这样需要输入两次指令,有点麻烦,所以git这边有个git pull指令可以抓取并合并,称为拉取
在其他仓库程序创建一个file04.txt文件,然后执行git pull可以看到不仅仅获取到了远程仓库修改的内容,而且将本地分支和远程仓库的分支进行了合并。
接下来介绍一下远程仓库出现合并冲突的问题。
在一段时间,A 、 B 用户修改了同一个文件,且修改了同一行位置的代码,此时会发生合并冲突。 A用户在本地修改代码后优先推送到远程仓库,此时 B 用户在本地修订代码,提交到本地仓库后,也需要 推送到远程仓库,此时B 用户晚于 A 用户, 故需要先拉取远程仓库的提交,经过合并后才能推送到远端分 支。这时候就会发送合并冲突的问题。这边演示一下。
在一个本地仓库上修改file01.txt文件
提交到远程仓库
在另外一个本地仓库也修改同一文件,同一行
提交到本地仓库上,这时候从远程仓库上拉取。
这时候就会出现合并冲突的问题 。
查看文件与分支合并冲突的问题一致,所以解决办法也是一致的。 修改文件内容,然后重新提交
重新提交到远程仓库上
在另外一个仓库上重新pull即可。