前言:如若我们的远程仓库又有了一名新的开发者,这时,新的开发者需要拉取远程仓库与其他开发者合作
如何拉取远程仓库到本地仓库
#git方法
clone远程分支
- 首先,创建一个本地目录用来存储仓库。
- 再次,在当前目录打开
Git Bash
- 复制需要克隆(clone)的仓库
Https Web URL
- 输入
git clone Https_Web_URL
,例如$ git clone https://github.com/xxx/testForVS.git
即可克隆成功。
打开克隆文件,再在克隆文件目录下打开Git Bash
,输入git branch -a
可以看到下图
![在这里插入图片描述](https://img-blog.csdnimg.cn/0f86de6ead0b4969a8d6cbfe570387fa.png)
可看到克隆的分支只有master
分支,而test-branch
分支并未被克隆。
获取远程其他分支
git checkout -b 本地分支名称 origin/远端分支名称
- -b: 表示新建分支且转到新建分支
- origin:为远端URL
例如:在如上项目中,使用git checkout -b test origin/test-branch
![在这里插入图片描述](https://img-blog.csdnimg.cn/e5d1a87f83de40a1ba1b99d0e33684bf.png)
并且,工作目录分支转为test
分支。
#Tortoise Git方法
clone远程分支
- 首先,创建一个本地目录用来存储仓库。
- 再次,在当前目录打开右键,点击
Git克隆
,打开窗口
- 输入克隆内容即可克隆
通过下图可以看出,TortoiseGit
的默认克隆不只会克隆master
分支,还会克隆其他分支,并且本地分支与远端分支同名。
![在这里插入图片描述](https://img-blog.csdnimg.cn/2d304f3b98c1482eb43343ab69ca9114.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARWxzYeeahOi_t-W8nw==,size_20,color_FFFFFF,t_70,g_se,x_16)
#VS2019方法
clone远程分支
打开VS2019
, 不创建任何项目,点击Git -> 克隆储存库
,输入URL和储存的地址,克隆
。
克隆后需要打开文件夹中的.sln
文件才能正常运行程序。
注意:
-
Git
或TortoiseGit
会在你选定的文件夹下创建一个与GitHub
上仓库名称相同的文件夹。
-
VS2019
克隆不会创建该文件夹,而是直接将仓库文件放在选定的文件夹中。
打开VS2019
管理分支,可以看到,克隆默认为只克隆master分支。
![在这里插入图片描述](https://img-blog.csdnimg.cn/816e3b1b02724ce2bb61df9862f077ae.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARWxzYeeahOi_t-W8nw==,size_9,color_FFFFFF,t_70,g_se,x_16)
获取远程其他分支
选择想克隆的远程分支,点击右键
,选择新建本地分支位置
。
填写相关信息,即可获取。
如何推送本地仓库到远程仓库
首先更改本地仓库分支中的内容,提交至本地仓库。
然后推送。
#Git方法
git push origin 本地仓库名:远端仓库名
如果本地仓库名和远端仓库名相同,可以省略:远端仓库名
![在这里插入图片描述](https://img-blog.csdnimg.cn/d368ec89657c434c9fc1e45c9ddfe015.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARWxzYeeahOi_t-W8nw==,size_20,color_FFFFFF,t_70,g_se,x_16)
可以看到远端内容发生改变
![在这里插入图片描述](https://img-blog.csdnimg.cn/2ba8853480c745348cfdd89a2114fa9e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARWxzYeeahOi_t-W8nw==,size_18,color_FFFFFF,t_70,g_se,x_16)
#TortoiseGit方法
提交后直接点击推送。
![在这里插入图片描述](https://img-blog.csdnimg.cn/2b621ef92e32445d83b38007af1f61b1.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARWxzYeeahOi_t-W8nw==,size_20,color_FFFFFF,t_70,g_se,x_16)
如果报错OpenSSL,多提交几次,就是网络不好。(咱能说什么,只能说 我爱中国共产党)
之后会出现如下报错
![在这里插入图片描述](https://img-blog.csdnimg.cn/c201b6ffa24d4b80be019cef002a67d2.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARWxzYeeahOi_t-W8nw==,size_20,color_FFFFFF,t_70,g_se,x_16)
即,远端仓库和本地提交的仓库发生冲突。
如何解决本地仓库和远端仓库的冲突
#Git方法过于不直观,这里就不再描述。
#TortoiseGit方法
-
拉取远端仓库(git pull)
![在这里插入图片描述](https://img-blog.csdnimg.cn/869c807a427e40c9a7541e90f0864342.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARWxzYeeahOi_t-W8nw==,size_9,color_FFFFFF,t_70,g_se,x_16)
出现如下提示,意味着拉取成功,你需要解决你的冲突。
![在这里插入图片描述](https://img-blog.csdnimg.cn/c19d1dd320fb4a4eac7b04d971e17d8f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARWxzYeeahOi_t-W8nw==,size_15,color_FFFFFF,t_70,g_se,x_16)
-
查看提示信息,确定冲突文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/6b1c27aea1914f4abeeacfceebb34c9f.png)
可看到冲突文件在readme.md
文件中,这与我们假定相同。
-
打开冲突文件
点击确定后出现如下提示符,点击确定,进入变更。打开冲突文件。
![在这里插入图片描述](https://img-blog.csdnimg.cn/90664498464044648e74e8320ddee0fa.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARWxzYeeahOi_t-W8nw==,size_9,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/bdf2c3b7e1094791a75db990a7c0ea17.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARWxzYeeahOi_t-W8nw==,size_20,color_FFFFFF,t_70,g_se,x_16)
-
修改冲突文件
???????
为冲突位置
![在这里插入图片描述](https://img-blog.csdnimg.cn/bf04feb9220e41a383cb346bb335a20c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARWxzYeeahOi_t-W8nw==,size_20,color_FFFFFF,t_70,g_se,x_16)
修改冲突位置
![在这里插入图片描述](https://img-blog.csdnimg.cn/b330473281ed4b248b6df835dd95ae50.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARWxzYeeahOi_t-W8nw==,size_20,color_FFFFFF,t_70,g_se,x_16)
点击上方标记为已解决
后关闭
![在这里插入图片描述](https://img-blog.csdnimg.cn/fd45452189134c92b3ff83949697fb4d.png)
-
再次打开变更文件工具(如若关闭,可以在TortoiseGit--比较差异(D)
中打开),发现README.md文件状态变为已修改。
![在这里插入图片描述](https://img-blog.csdnimg.cn/f1c5c80035854b2291b092f96c0a9eed.png)
-
提交修改代码,冲突合并操作在如何进行本地分支管理中以阐述,这里就不赘述。
-
推送(多推送几次后),推送成功。
打开远端仓库,发现修改无误。
![在这里插入图片描述](https://img-blog.csdnimg.cn/670fae6c887a42eeb478ac1b50db2380.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARWxzYeeahOi_t-W8nw==,size_20,color_FFFFFF,t_70,g_se,x_16)
使用VS2019更新远端仓库
- 拉取最新的版本分支
![在这里插入图片描述](https://img-blog.csdnimg.cn/117976976ec949128eccc2f1b3e64210.png)
点击传入栏
的拉取
,成功后显示
![在这里插入图片描述](https://img-blog.csdnimg.cn/32e0d9cfedac425c8ab800664c546670.png)
打开test-branch
分支readme
文件,发现内容确实以及拉取成功。
- 修改项目文件,main.cpp。
- 提交并推送(细节不再赘述,详看如何将本地仓库提交到远程仓库)