使用Git分布式控制系统

简介: Git 是一个分布式版本控制软件,与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便!

问题1:为什么要有这个Git?


个人理解:开发者们通过邮件向Linus发送着自己编写的源代码文件,由Linus本人通过手工的方式将代码合并。能不能每个人本地都有一个服务端的源码数据库,这样不必再完全依赖于服务端的源码数据库,使得源代码的发布和合并更加方便。所以git诞生了!


实例:GitHub是通过Git进行版本控制的软件源代码托管服务,用户可以免费创建公开的代码仓库。(程序员都知道吧!)


问题2:什么是Git?


答:Git 是一个分布式版本控制软件,与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便!


一:Git服务程序运行思路


文字:


1.在工作目录中修改数据文件。

2.将文件的快照放入暂存区域。

3.将暂存区域的文件快照提交到Git仓库中。


图片:


微信图片_20220507225627.png


二:Git服务基础命令:


个人的用户名称和电子邮件地址:


git config --global user.name “Name”

git config --global user.email “root@email”


提交数据:


git add readme.txt


将暂存区的文件提交到Git版本仓库:


git commit -m “解释说明”


查看下当前Git版本仓库的状态:


git status


三:部署Git服务器


Git是分布式的版本控制系统,我们只要有了一个原始的Git仓库,就可以让其他主机克隆我们的原始版本仓库,从而使得一个Git版本仓库可以被同时分布到不同的主机之上。


1.安装git服务


[root@caq ~]# yum install git


2.创建Git版本仓库,要以.git为后缀:


[root@caq ~]# mkdir caq.git


3.修改Git版本仓库的所有者与所有组


[root@caq ~]# chown -Rf git:git caq.git/


4.初始化Git版本仓库:


[root@caq ~]# cd caq.git/
[root@caq caq.git]# git --bare init Initialized empty Git repository in /root/caq.git/


5.服务器上的Git仓库此时已经部署好了,但是还不能分享给其他人。需要有个协议来限制。猜到了吧,是ssh协议!

在客户端生成ssh密钥


[root@caq ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory ‘/root/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
65:4a:53:0d:4f:ee:49:4f:94:24:82:16:7a:dd:1f:28 root@caq.com
The key’s randomart image is:
±-[ RSA 2048]----+
| .o+oo.o. |
| .oo *.+. |
| …+ E * o |
| o = + = . |
| S o o |
| |
| |
| |
| |
±----------------+


将客户机的公钥传递给Git服务器:


[root@caq ~]# ssh-copy-id 192.168.10.10 root@192.168.10.10’s password: Number of key(s) added: 1 Now try logging into the machine, with: “ssh ‘192.168.10.10’” and check to make sure that only the key(s) you wanted were added.


6.现在客户端就可以克隆服务端的版本仓库了。


[root@caq ~]# git clone root@192.168.10.10:/root/caq.git Cloning into ‘caq’… warning: You appear to have cloned an empty repository.


7.初始化下Git工作环境:


[root@caq ~]# git config --global user.name “Liu Chuan” [root@caq ~]# git config --global user.email “root@caq.com” [root@caq ~]# git config --global core.editor vim


8.向Git版本仓库中提交一个新文件:


[root@caq caq]# echo “I am fine” > readme.txt
[root@caq caq]# git add readme.txt
[root@caq caq]# git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use “git rm --cached …” to unstage)
#
# new file: readme.txt
#
[root@caq caq ]# git commit -m “Clone the Git repository”
[master (root-commit) c3961c9] Clone the Git repository
Committer: root
1 file changed, 1 insertion(+)
create mode 100644 readme.txt
[root@linuxprobe caq]# git status
# On branch master
nothing to commit, working directory clean


9.向服务器发送文件


[root@caq caq]# git remote add server root@192.168.10.10:/root/caq.git
[root@caq caq]# git push -u server master
Counting objects: 3, done.
Writing objects: 100% (3/3), 261 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To root@192.168.10.10:/root/caq.git
[new branch] master -> master
Branch master set up to track remote branch master from server.


10.查看远程服务器的仓库有无客户端发来的文件(我是又克隆了一份,当然也可以直接切换到服务器共享仓库查看)


[root@caq caq]# cd …/~
[root@caq ~]# git clone root@192.168.10.10:/root/caq.git
Cloning into ‘caq’…
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
[root@caq ~]# cd caq/
[root@caq caq]# cat readme.txt I am fine


git内容知识点很多,这篇要是看的人多的话我在出剩余的知识吧。

相关文章
|
SpringCloudAlibaba 前端开发 Java
SpringBoot整合Nacos自动刷新配置
Nacos作为SpringBoot服务的注册中心和配置中心。 在NacosServer中修改配置文件,在SpringBoot不重启的情况下,获取到修改的内容。 本例将在配置文件中配置一个 cml.age=100 的配置项,程序中编写一个方法读取配置文件,并通过 Get--->/test/age 接口提供给浏览器访问。 若配置文件中的 age 修改为 200 ,不用重新启动程序,直接访问 /test/age 接口,将获取到最新的值 200 若配置文件中没有age 的配置项,或干脆没有 cml 的配置项,访问 /test/age 接口将返回默认的值 18
1343 0
|
SQL Oracle 关系型数据库
解决数据库慢的方法论
数据库的performance是一个长期的监控过程,不能头疼医头,脚疼医脚。数据库慢一般有三种情况1。
1026 0
|
18天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
10天前
|
云安全 人工智能 安全
Dify平台集成阿里云AI安全护栏,构建AI Runtime安全防线
阿里云 AI 安全护栏加入Dify平台,打造可信赖的 AI
|
13天前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
1071 37
|
12天前
|
机器学习/深度学习 人工智能 搜索推荐
万字长文深度解析最新Deep Research技术:前沿架构、核心技术与未来展望
近期发生了什么自 2025 年 2 月 OpenAI 正式发布Deep Research以来,深度研究/深度搜索(Deep Research / Deep Search)正在成为信息检索与知识工作的全新范式:系统以多步推理驱动大规模联网检索、跨源证据。
835 56
|
10天前
|
文字识别 测试技术 开发者
Qwen3-VL新成员 2B、32B来啦!更适合开发者体质
Qwen3-VL家族重磅推出2B与32B双版本,轻量高效与超强推理兼备,一模型通吃多模态与纯文本任务!
717 11
下一篇
开通oss服务