当前位置: 首页 > news >正文

Git向远程仓库与推送以及拉取远程仓库

理解分布式版本控制系统

1.中央服务器

我们⽬前所说的所有内容(⼯作区,暂存区,版本库等等),都是在本地也就是在你的笔记本或者计算机上。⽽我们的 Git 其实是分布式版本控制系统!什么意思呢?
那我们多人开发难道是大家围在一台电脑上开发吗?
当然不是了,git也想到了这个问题

⽐⽅说你在⾃⼰电脑上改了⽂件A,你的同事也在他的电脑上改了⽂件A,这时,你们俩之间只需把各⾃的修改推送给对⽅,就可以互相看到对⽅的修改了

在这里插入图片描述

分布式版本控制系统通常也有⼀台充当中央服务器的电脑,但这个服务器的作⽤仅仅是⽤来⽅便“交换”⼤家的修改,没有它⼤家也⼀样⼲活,只是交换修改不⽅便⽽已。有了这个“中央服务器”的电脑,这样就不怕本地出现什么故障了(⽐如运⽓差,硬盘坏了,上⾯的所有东西全部丢失,包括git的所有内容)

2.远程仓库

1.新建远程仓库

1新建仓库步骤

在这里插入图片描述
在这里插入图片描述

2.仓库成员管理

在这里插入图片描述
在这里插入图片描述

3.交流问题Issue

在这里插入图片描述

4.合并申请单 Pull Request

开发完成后向master主分支合并分支是非常不安全的,实际开发中不会被允许
Pull Request就相当于是一个合并申请单,开发者向管理员发起申请合并的操作,等管理员同意之后,会有专门的人员来进行合并
详细介绍链接:Pull Request
在这里插入图片描述

3.克隆远程仓库

1.使用使HTTPS ⽅式

在这里插入图片描述

# 使用HTTP的方式克隆远程仓库
git clone [远程仓库链接]
# 查看远程仓库名字
git remote -v

在这里插入图片描述
表示当前仓库具有推送和拉取的权限

2.使用SSH的方式

SSH 协议使⽤了公钥加密和公钥登陆机制,体现了其实⽤性和安全性,使⽤此协议需要将我们的公钥放上服务器,由 Git 服务器进⾏管理
在这里插入图片描述

# 使用SSH的方式克隆仓库
git clone git@gitee.com:wang-congya/remote-gitcode.git

使⽤ SSH ⽅式克隆仓库,由于我们没有添加公钥到远端库中,服务器拒绝了我们的 clone 链接。需要我们设置⼀下
没看明白,下次再说

4.修改user.name和email配置

在这里插入图片描述
首先我们查看一下git配置,需要注意一下本地仓库与远程仓库的name,与email的配置要相同,如果忘记了,可以在个人信息中查看
在这里插入图片描述
在这里插入图片描述

修改git配置
git --global user.name "wang-congya"
git --global user.email "wangcong_626@163.com"

5.向远程仓库推送

需要有权限才能推送,并且需要将远程仓库与本地仓库的分支进行连接,master分支在克隆的时候会自动连接

# 创建一个文件写入hello git
vim file.txt
# 提交至暂存区以及版本库
git add file.txt
git commit -m""
# 查看状态
git status
# 向远程仓库推送并合并到远程分支
git pull <远程主机名> <远程分⽀名>:<本地分⽀名>
# 如果远程分⽀是与当前分⽀合并,则冒号后⾯的部分可以省略。
4 git pull origin master
# 按照提示输入git的名称和密码即可
"wang-congya"
密码就是账号密码

6.拉取远程仓库

有时候,远程仓库是要领先于本地仓库⼀个版本,为了使本地仓库保持最新的版本,我们需要拉取下远端代码,并合并到本地。Git 提供了 git pull 命令,该命令⽤于从远程获取代码并合并本地的版本

# 拉取远程仓库并合并到本地分支上
git pull <远程主机名> <远程分⽀名>:<本地分⽀名>
# 如果远程分⽀是与当前分⽀合并,则冒号后⾯的部分可以省略。
git pull origin master
# 查看当前仓库状态
git status

7.配置 .gitignore

在⽇常开发中,我们有些⽂件不想或者不应该提交到远端,⽐如保存了数据库密码的配置⽂件,那怎么让 Git 知道呢?
在 Git ⼯作区的根⽬录下创建⼀个特殊的 .gitignore ⽂件,然后把要忽略的⽂件名填进去,Git 就会⾃动忽略这些⽂件了
不需要从头写 .gitignore ⽂件,gitee 在创建仓库时就可以为我们⽣成,不过需要我们主动勾选⼀下:
在这里插入图片描述

# 强制添加,尽量不使用
git add -f [文件名]
# 修改.gitignore
# 表示忽略所有以.so结尾的文件
*.so
# 表示不忽略b.so文件
!b.so
# 查看某个文件被忽略的原因
git check-ignore -v a.so
http://www.lryc.cn/news/143235.html

相关文章:

  • PostgreSQL+SSL链路测试
  • 服务器(容器)开发指南——code-server
  • C++贪吃蛇(控制台版)
  • Java之字符串实践
  • BM20 数组中的逆序对
  • 高德猎鹰轨迹查询相关接口
  • 整理总结新手开始抖音小店经营:常见问题及解决办法
  • 4-1-netty
  • hive 动态分区-动态分区数量太多也会导致效率下降只设置非严格模式也能执行动态分区
  • java八股文面试[JVM]——JVM调优
  • FairyGUI-Unity 异形屏适配
  • Oracle监听器启动出错:本地计算机上的OracleOraDb11g_home1TNSListener服务启动后又停止了解决方案
  • Spring复习:(58)<context:annotation-config/>的作用
  • “东方杯”英特尔oneAPI黑客松大赛—参赛经验分享
  • win10家庭版远程桌面补丁_rdp wrapper
  • 【C++设计模式】开放-封闭原则
  • vue+file-saver+xlsx+htmlToPdf+jspdf实现本地导出PDF和Excel
  • axios 进阶
  • Redis限流实践:实现用户消息推送每天最多通知2次的功能
  • uniapp 存储base64资源为http链接图片
  • 列表类控件虚拟化
  • c# 多线程Task.Run 取消正在执行的多线程
  • sql server 如何设置主键
  • 【LeetCode-中等题】19. 删除链表的倒数第 N 个结点
  • Matlab图像处理-减法运算
  • stm32之11.USART串口通信
  • Python实现T检验
  • 校招算法题实在不会做,有没有关系?
  • Michael.W基于Foundry精读Openzeppelin第32期——SignatureChecker.sol
  • 如何修改字符串内容?