GIT工具学习【4】:推送到远程仓库

目录

写在前面:当我们在本地操作工作区,缓存区,本地仓库的时候,无论操作多么的精妙,都是自己管理代码的范畴,一旦进入到了远程仓库的操作,就是意味着我们要和其他合作者进行交互了,这是另一个层面的事情。

1.介绍远程仓库

公共服务平台:github国际大平台,gitee国内最大的平台

私人服务平台:gitlab企业级,功能最全,gitea:中型团队,gogs:个人使用

目前个人的配置:开源项目github,私人项目:NAS搭载gitea。

2.配置SSH公钥

  • 生成SSH公钥:ssh-keygen -t rsa,不断回车,如果公钥已经存在,则自动覆盖
  • 获取公钥:cat ~/.ssh/id_rsa.pub
  • Gitee设置账户共公钥:(其他同理)
  • 验证是否配置成功:ssh -T [email protected]

3.操作远程库

  • 添加远程仓库: git remote add <远端名称> <仓库路径>
  • 远端名称,默认是origin,取决于远端服务器设置
  • 仓库路径,从远端服务器获取此URL
c 复制代码
git remote add origin [email protected]:czbk_zhang_meng/git_test.git
  • 查看远程仓库:
命令 显示内容 适用场景
git remote 远程仓库别名列表 快速查看已关联的远程仓库名称
git remote -v 别名 + URL + 操作类型(fetch/push) 详细检查远程仓库地址,排查配置问题

4.推送到远程仓库

git push [-f] [--set-upstream](可简化为-u) [远端名称 [本地分支名][:远端分支名] ]

  • 如果远程分支名和本地分支名称相同,则可以只写本地分支。
    git push origin master
  • -f 表示强制覆盖。
  • --set-upstream 推送到远端的同时并且建立起和远端分支的关联关系。
    git push --set-upstream origin master
    如果当前分支已经和远端分支关联,则可以省略分支名和远端名。 git push 将master分支推送到已关联的远端分支。

本地分支与远程分支的关联关系:

git branch -vv

c 复制代码
* master 741a786 [origin/master] Initial commit
* 方括号 [origin/master] 表示本地 master 分支跟踪远程 origin/master 分支

从远程仓库克隆:

如果已经有一个远端仓库,我们可以直接clone到本地。

命令: git clone <仓库路径> [本地目录]

本地目录可以省略,会自动生成一个目录

5.从远程仓库中抓取和拉取

远程分支和本地的分支一样,我们可以进行merge操作,只是需要先把远端仓库里的更新都下载到本

地,再进行操作。

  • 抓取 命令:git fetch [remote name] [branch name]
    抓取指令就是将仓库里的更新都抓取到本地,不会进行合并
    如果不指定远端名称和分支名,则抓取所有分支。
  • 拉取 命令:git pull [remote name] [branch name]
    拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge
    如果不指定远端名称和分支名,则抓取所有并更新当前分支。

6.解决合并冲突

在一段时间,A、B用户修改了同一个文件,且修改了同一行位置的代码,此时会发生合并冲突。

A用户在本地修改代码后优先推送到远程仓库,此时B用户在本地修订代码,提交到本地仓库后,也需要

推送到远程仓库,此时B用户晚于A用户,故需要先拉取远程仓库的提交,经过合并后才能推送到远端分

支,如下图所示。

在B用户拉取代码时,因为A、B用户同一段时间修改了同一个文件的相同位置代码,故会发生合并冲

突。

远程分支也是分支,所以合并时冲突的解决方式也和解决本地分支冲突相同相同。

相关推荐
海尔辛21 分钟前
学习黑客5 分钟小白弄懂Windows Desktop GUI
windows·学习
烟雨迷2 小时前
Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)
linux·服务器·学习·编辑器·vim
@十八子德月生2 小时前
8天Python从入门到精通【itheima】-1~5
大数据·开发语言·python·学习
Willis_m3 小时前
Linux 服务器用 SSH 拉取多个 Git 工程
linux·服务器·git·ssh
1candobetter3 小时前
git如何将本地 dev 分支与远程 dev 分支同步
git
此方konata3 小时前
git常用命令
git
Clockwiseee4 小时前
文件上传总结
运维·服务器·学习·文件上传
苜柠4 小时前
Wpf学习片段
学习
欢乐熊嵌入式编程5 小时前
智能手表固件升级 OTA 策略文档初稿
嵌入式硬件·学习·智能手表
起床学FPGA5 小时前
异步FIFO的学习
学习·fpga开发