0%

Git远程库相关操作

添加远程库及推送

命令:git remote add 地址名 HTTP或SSH地址

image-20220111201215014

执行完后,如以下页面

image-20220111201612020

推送命令:git push 地址名 分支名,执行后报错

image-20220111202306396

因为git在拉取或者提交项目时,中间会有git的http和https代理,但是我们本地环境本身就有SSL协议了,所以取消git的https代理即可,不行再取消http的代理。

取消指令为:

取消http代理
git config --global --unset http.proxy
取消https代理
git config --global --unset https.proxy

也可以直接用ssh地址,设置ssh协议的方法可参考这里

image-20220111202436988

然后查看远程库,即可发现文件

image-20220111202501488

克隆远程库到本地

命令:git clone 克隆地址,克隆地址为下(克隆不需要再初始化)

image-20220111203222264

操作如下

image-20220111203419197

克隆的三个操作

  • 完整的把远程库下载到本地
  • 创建origin远程库地址别名
  • 初始化本地库

推送本地库到远程库

命令:git push 远程库地址别名 分支名(前提是,发出提交的Github账户在该团队内,邀请在GitHub内进行)

image-20220111212540339

邀请加入后

这里仍然要用ssh协议

image-20220111210851950

内容推送上去后,远程库内容改变

image-20220111211327947

拉取远程库到本地库

然后切换另一编辑者,也就是库的创建者

执行抓取操作:git fetch 地址别名 分支

image-20220111211608126

抓取下来后可看到,本地库文件并没有改变

切换分支:git checkout 地址别名/分支名

image-20220111211801979

可看到,内容已经改变(多了一行g)

然后要将远程库合并到本地库就要切换到master分支,然后执行:git merge 地址别名/分支名

image-20220111220729815

以上适用于需要检查代码的情况,比较麻烦

若是追求简单,则可直接执行:git pull 地址别名 分支名同样可拿到远程库内容

image-20220111220915812

总结:push=fetch+merge

推送时的矛盾

若两个人同时对远程库进行推送,则推送晚者不能推送,只能拉取最新的库,然后再进行修改、推送

冲突页面如下

image-20220111221428737

拉取远程库文件

image-20220111221617497

打开冲突的文件

image-20220111221505181

删去多余行目,然后提交到本地库

image-20220111221923785

然后再推送到远程库

image-20220111222029729

这种机制的目的避免了推送混乱