Git远程操作


前言

分布式版本控制系统

我们之前所学习过的内容,本质都是在本地,也就是在笔记本上。而Git是分布式版本控制系统

可以简单理解为,我们每个⼈的电脑上都是⼀个完整的版本库,这样你⼯作的时候,就不需要联⽹了,因为版本库就在你⾃⼰的电脑上。既然每个⼈电脑上都有⼀个完整的版本库,那多个⼈如何协作呢?⽐⽅说你在⾃⼰电脑上改了⽂件A,你的同事也在他的电脑上改了⽂件A,这时,你们俩之间只需把各⾃的修改推送给对⽅,就可以互相看到对⽅的修改了。
在这里插入图片描述

分布式版本控制系统的安全性要⾼很多,因为每个⼈电脑⾥都有完整的版本库,某⼀个⼈的电脑坏掉了不要紧,随便从其他⼈那⾥复制⼀个就可以了。

在实际使⽤分布式版本控制系统的时候,其实很少在两⼈之间的电脑上推送版本库的修改,因为可能你们俩不在⼀个局域⽹内,两台电脑互相访问不了。也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有⼀台充当“中央服务器”的电脑,但这个服务器的作⽤仅仅是⽤来⽅便“交换”⼤家的修改,没有它⼤家也⼀样⼲活,只是交换修改不⽅便⽽已。有了这个“中央服务器”的电脑,这样就不怕本地出现什么故障了(⽐如运⽓差,硬盘坏了,上⾯的所有东西全部丢失,包括git的所有内容)

远程仓库

Git 是分布式版本控制系统,同⼀个 Git 仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只有⼀台机器有⼀个原始版本库,此后,别的机器可以 “克隆” 这个原始版本库,⽽且每台机器的版本库其实都是⼀样的,并没有主次之分。

你肯定会想,⾄少需要两台机器才能玩远程库不是?但是我只有⼀台电脑,怎么玩?

其实⼀台电脑上也是可以克隆多个版本库的,只要不在同⼀个⽬录下。不过,现实⽣活中是不会有⼈这么傻的在⼀台电脑上搞⼏个远程库玩,因为⼀台电脑上搞⼏个远程库完全没有意义,⽽且硬盘挂了会导致所有库都挂掉,所以我也不告诉你在⼀台电脑上怎么克隆多个仓库。

实际情况往往是这样,找⼀台电脑充当服务器的⻆⾊,每天24⼩时开机,其他每个⼈都从这个“服务器”仓库克隆⼀份到⾃⼰的电脑上,并且各⾃把各⾃的提交推送到服务器仓库⾥,也从服务器仓库中拉取别⼈的提交。

完全可以⾃⼰搭建⼀台运⾏ Git 的服务器,不过现阶段,为了学 Git 先搭个服务器绝对是⼩题⼤作。好在这个世界上有个叫 GitHub 的神奇的⽹站,从名字就可以看出,这个⽹站就是提供 Git 仓库托管服务的,所以,只要注册⼀个GitHub账号,就可以免费获得 Git 远程仓库。
github 是国外的⽹站,速度⽐较慢,我们课堂上同统⼀采⽤码云来托管代码。

新建远程仓库

新建远程项目仓库
在这里插入图片描述
填写基本信息,进行创建

在这里插入图片描述
可以设置成员管理
在这里插入图片描述
issue是什么??
有人发现问题,可以与开发人员进行交流。
在这里插入图片描述
pull request??
合并申请单,我们要进行合并,可能有bug,需要进行申请。由管理员确定是否进行合并操作。

在这里插入图片描述

下面这两个是介绍,中文和英文版本。
在这里插入图片描述
新建的远程仓库可以看到,之前学习的分支,也存在与远程仓库中并管理起来了。
刚创建的仓库尤其只有一个默认的master分支。

在这里插入图片描述

克隆远程仓库

克隆远程仓库到本地,需要使用

git clone 远程仓库链接。

这个地方就是我们的远程仓库链接

在这里插入图片描述

SSH协议和HTTPS协议是Git最常用的两种数据传输协议。
SSH 协议使⽤了公钥加密和公钥登陆机制,体现了其实⽤性和安全性,使⽤此协议需要将我们的公钥放上服务器,由 Git 服务器进⾏管理。使⽤ HTTPS ⽅式时,没有要求,可以直接克隆下来。

HTTPS

直接进行git clone就可以,但是注意,不能在本地仓库下操作。

SSH
如果我们直接按照上面方式会发生什么??
在这里插入图片描述

这样是不允许的,使用SSH方式克隆本地仓库,由于我们没有添加公钥到远端库中,服务器拒绝了我们的clone链接。
需要我们手动设置

1.在用户主目录下,查看是否存在 .ssh 目录。
如果有,我们再看一下这个目录下是否有id_rsa 和 id_rsa.pub 这两个⽂件。
如果已经有了,可直接跳到下⼀步。如果没有,需要创建SSH Key.

如何创建呢??

ssh-keygen -t rsa -C "邮箱"一路回车,使用默认即可

在这里插入图片描述
我们查看一下是否存在了
在这里插入图片描述
这两个就是SSH Key的秘钥对, id_rsa 是私钥,不能泄露出去, id_rsa.pub 是公钥,可以放⼼地告任何⼈

2.添加自己的公钥到远程仓库

在这里插入图片描述

在这里插入图片描述
进行设置,复制粘贴进来就可以。
如果有多人协作开发,可以添加多个公钥只要把每个⼈的电脑上的。
每个人电脑上Key 都添加到 GitHub/Gitee,就可以在每台电脑上往 GitHub/Gitee 上提交推送了。
在这里插入图片描述

我们再执行clone操作就可以了

在这里插入图片描述

当我们从远程仓库克隆后,实际上Git会自动把本地master分支与远程master分支对应起来。
并且,远程仓库默认名称是origin.
我们可以在本地使用

git remote 查看远程库的信息 ,添加 -v 选项,显示更详细的信息。

在这里插入图片描述

向远程仓库推送

clone之后,我们就可以向远程仓库进行推送操作。

本地仓库中某个分支推送远程仓库某个分支

提交时要注意,如果我们之前设置过全局的 name 和 e-mail,这两项配置需要和 gitee 上配置的⽤⼾名和邮箱⼀致,否则会出错。或者从来没有设置过全局的 name 和 e-mail,那么我们第⼀次提交时也会报错。这就需要我们重新配置下了,同样要注意需要和 gitee 上配置的⽤⼾名和邮箱⼀致。

在这里插入图片描述

git push:本地仓库内容推送到远程仓库
git push 远程主机名 本地分支名 :远程分支名。
git push 远程主机名 本地分支名 (本地分支名与远程分支名相同)

拉取远程仓库

我们可以直接在码云上对文件进行修改,我们不要这样做。知道就可以

在这里插入图片描述

假设我们已经对文件进行修改了

在这里插入图片描述
此时,远程仓库要领先于本地仓库的版本,为了使本地仓库保持最新版本,需要拉取下远端代码,合并到本地。

git pull 远程主机名 远程分支名 :本地分支名
git pull 远程主机名 远程分支名(远程分支与当前分支合并)

在这里插入图片描述

如果git本地和远端仓库不同,git会强制你进行同步。
对你来讲,一旦提交成功,就必须被所有人看到。

忽略特殊文件

在日常开发中,我们有些文件不想提交到远端仓库,就比如保存了数据库密码的配置文件,Git是如何知道的呢??
在 Git ⼯作区的根⽬录下创建⼀个特殊的 .gitignore ⽂件,然后把要忽略的⽂件名填进去,Git 就会⾃动忽略这些⽂件了。

不需要从头写 .gitignore ⽂件,gitee 在创建仓库时就可以为我们⽣成,不过需要我们主动勾选。
当时没有选择,在工作区也可以创建一个。
在这里插入图片描述

我们看一下如何使用??
如果我们想要忽略以 .so和 .ini为结尾的文件。
我们需要在 .gitignore写上
在这里插入图片描述

我们在本地上对.gitignore进行修改是立马生效的。

把 .gitignore提交到远端仓库就可以。
在这里插入图片描述
在这里插入图片描述

我们在工作区新增两个文件,检验 .gitignore 的标准就是 git status 命令是不是说 working tree clean 。
我们发现Git 并没有提⽰在⼯作区中有⽂件新增,果然 .gitignore ⽣效了!
在这里插入图片描述

我们有时想添加这个后缀的文件,但是后缀被忽略了

git add -f 文件名 强制添加

在这里插入图片描述

在这里插入图片描述

git check-ignore -v 文件名 查看忽略

如果我们就想要添加d.so文件,我们可以对 .gitignore进行修改。
在这里插入图片描述

在这里插入图片描述

我们可以发现确实提交成功了。

在这里插入图片描述

命令配置起别名

我们可以给命令起别名,便于我们操作

git config --global alias.st status 将git status简化为git st

我们看一下

在这里插入图片描述

总结

以上就是今天要讲的内容 。希望对大家的学习有所帮助,仅供参考 如有错误请大佬指点我会尽快去改正 欢迎大家来评论~~ 😘 😘 😘

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lim 鹏哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值