Git使用和原理(3)

1.远程操作

1.1分布式版本控制系统

我们⽬前所说的所有内容(⼯作区,暂存区,版本库等等),都是在本地!也就是在你的笔记本或者 计算机上。⽽我们的 Git 其实是分布式版本控制系统!什么意思呢?
可以简单理解为,我们每个⼈的电脑上都是⼀个完整的版本库,这样你⼯作的时候,就不需要联⽹
了,因为版本库就在你⾃⼰的电脑上。既然每个⼈电脑上都有⼀个完整的版本库,那多个⼈如何协作 呢?⽐⽅说你在⾃⼰电脑上改了⽂件A,你的同事也在他的电脑上改了⽂件A,这时,你们俩之间只需 把各⾃的修改推送给对⽅,就可以互相看到对⽅的修改了 分布式版本控制系统的安全性要⾼很多,因为每个⼈电脑⾥都有完整的版本库,某⼀个⼈的电脑坏掉 了不要紧,随便从其他⼈那⾥复制⼀个就可以了。
在实际使⽤分布式版本控制系统的时候,其实很少在两⼈之间的电脑上推送版本库的修改,因为可能 你们俩不在⼀个局域⽹内,两台电脑互相访问不了。也可能今天你的同事病了,他的电脑压根没有开 机。因此,分布式版本控制系统通常也有⼀台充当"中央服务器"的电脑,但这个服务器的作⽤仅仅 是⽤来⽅便"交换"⼤家的修改,没有它⼤家也⼀样⼲活,只是交换修改不⽅便⽽已。有了这个"中央服务器"的电脑,这样就不怕本地出现什么故障了(⽐如运⽓差,硬盘坏了,上⾯的所有东西全部 丢失,包括git的所有内容)

1.2远程仓库

Git 是分布式版本控制系统,同⼀个 Git 仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只 有⼀台机器有⼀个原始版本库,此后,别的机器可以 "克隆" 这个原始版本库,⽽且每台机器的版本 库其实都是⼀样的,并没有主次之分。
你肯定会想,⾄少需要两台机器才能玩远程库不是?但是我只有⼀台电脑,怎么玩?
其实⼀台电脑上也是可以克隆多个版本库的,只要不在同⼀个⽬录下。不过,现实⽣活中是不会有⼈ 这么傻的在⼀台电脑上搞⼏个远程库玩,因为⼀台电脑上搞⼏个远程库完全没有意义,⽽且硬盘挂了 会导致所有库都挂掉,所以我也不告诉你在⼀台电脑上怎么克隆多个仓库。
实际情况往往是这样,找⼀台电脑充当服务器的⻆⾊,每天24⼩时开机,其他每个⼈都从这个"服务 器"仓库克隆⼀份到⾃⼰的电脑上,并且各⾃把各⾃的提交推送到服务器仓库⾥,也从服务器仓库中 拉取别⼈的提交。
完全可以⾃⼰搭建⼀台运⾏ Git 的服务器,不过现阶段,为了学 Git 先搭个服务器绝对是⼩题⼤作。好 在这个世界上有个叫 GitHub 的神奇的⽹站,从名字就可以看出,这个⽹站就是提供 Git 仓库托管服务 的,所以,只要注册⼀个GitHub账号,就可以免费获得 Git 远程仓库。
github 是国外的⽹站,速度⽐较慢,也可以采⽤ gitee 来托管代码。下来,我们从零开始, 使⽤⼀下码云远程仓库。

1.3新建远程仓库

新建远程项⽬仓库:


填写基本信息

克隆远程仓库

克隆/下载远端仓库到本地,需要使⽤ git clone 命令,后⾯跟上我们的远端仓库的链接,远端仓库
的链接可以从仓库中找到:选择"克隆/下载"获取远程仓库链接:

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

复制代码
git clone git地址

如果使⽤ SSH ⽅式克隆仓库,由于我们没有添加公钥到远端库中,服务器拒绝了我们的 clone 链接。需要 我们设置⼀下:
第⼀步:创建SSH Key。在⽤⼾主⽬录下,看看有没有.ssh⽬录,如果有,再看看这个⽬录下有没有 id_rsa 和 id_rsa.pub 这两个⽂件,如果已经有了,可直接跳到下⼀步。如果没有,需要创建
SSH Key:

复制代码
ssh-keygen -t rsa -C "输入自己的邮箱"

顺利的话,可以在⽤⼾主⽬录⾥找到 .ssh ⽬录,⾥⾯有 id_rsa 和 id_rsa.pub 两个⽂件,这两
个就是SSH Key的秘钥对, id_rsa 是私钥,不能泄露出去, id_rsa.pub 是公钥,可以放⼼地告
诉任何⼈
第⼆步:添加⾃⼰的公钥到远端仓库。

点击确认后,需要对你进⾏认证,输⼊你的账号密码即可。⾄此,我们的准备⼯作全部做完,欢快的 clone吧
如果有多个⼈协作开发,GitHub/Gitee 允许添加多个公钥,只要把每个⼈的电脑上的
Key 都添加到 GitHub/Gitee,就可以在每台电脑上往 GitHub/Gitee 上提交推送了。

1.4向远程仓库推送

本地已经 clone 成功远程仓库后,我们便可以向仓库中提交内容

复制代码
git add .
git commit -m "注解"
git push <远程主机名> <本地分⽀名>:<远程分⽀名>

1.5拉取远程仓库

复制代码
git pull <远程主机名> <远程分⽀名>:<本地分⽀名>

2.配置 Git

2.1忽略特殊⽂件

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

如果当时没有选择这个选择,在⼯作区创建⼀个也是可以的。⽆论哪种⽅式,最终都可以得到⼀个完 整的 .gitignore ⽂件,例如我们想忽略以 .so 和 .ini 结尾所有⽂件, .gitignore 的内容
如下:

复制代码
# 省略选择模本的内容
...
# My configurations:
*.ini
*.so

在 .gitignore ⽂件中也可以指定某个确定的⽂件。
最后⼀步就是把 .gitignore 也提交到远端,就完成了:
但有些时候,你就是想添加⼀个⽂件到 Git,但由于这个⽂件被 .gitignore 忽略了,根本添加不
了,那么可以⽤ -f 强制添加:

复制代码
git add -f [filename]

或者你发现,可能是 .gitignore 写得有问题,需要找出来到底哪个规则写错了,⽐如说 a.so ⽂件
是要被添加的,可以⽤ git check-ignore 命令检查:

复制代码
git check-ignore -v a.so

但是我们发现 .* 这个规则把 .gitignore 也排除了。虽然可以⽤ git add -f 强制添加进去,
但有强迫症的童鞋还是希望不要破坏 .gitignore 规则,这个时候,可以添加⼀条例外规则:

复制代码
不排除.gitignore
!.gitignore

2.2给命令配置别名

在我们使⽤ Git 期间,有些命令敲的时候着实让⼈头疼(太⻓了。。),幸运的是,git⽀持对命令进 ⾏简化!

复制代码
举个例⼦,将 git status 简化为 git st ,对应的命令为:

不过,我个⼈还是不推荐⼤家现在去使⽤他,⽬前所有的命令都要⼿动完成,尽快适应 Git。

相关推荐
LIO2 小时前
前端开发之Git 代码仓库管理详细教程
前端·git
大山同学3 小时前
DeepSeek-TUI:1M 上下文、递归子代理与 Git 沙箱回滚
git
HoneyMoose5 小时前
执行 git svn clone --stdlayout 命令无输出
git·svn
HoneyMoose6 小时前
把 SVN 仓库转换为 Git 需要的 2 个命令
git·svn
历程里程碑16 小时前
4 Git远程协作:从零开始,玩转仓库关联与代码同步(带实操代码讲解)
大数据·c++·git·elasticsearch·搜索引擎·gitee·github
金銀銅鐵18 小时前
[git] 浅解 git reset 命令
git·后端
zhangfeng113319 小时前
部署到服务器上 宝塔系统 使用宝塔在线编辑器 FTP 批量上传 Git 部署 打包上传 codebudyy 编程程序开发
服务器·git·编辑器
学习是种信仰20 小时前
Git工作流
git·深度学习
yuanyuan2o221 小时前
Git merge 的几种不同模式
git·github
视觉小萌新1 天前
关于Vscode配置企业Git
git