使用Git分布式版本控制系统
-
GIT(分布式版本控制系统)
使用Git服务程序
在正式使用前,我们还需要弄清楚Git的三种重要模式,分别是已提交、已修改和已暂存:
已提交(committed):表示数据文件已经顺利提交到Git数据库中。
已修改(modified):表示数据文件已经被修改,但未被保存到Git数据库中。
已暂存(staged):表示数据文件已经被修改,并会在下次提交时提交到Git数据库中。
提交前的数据文件可能会被随意修改或丢失,但只要把文件快照顺利提交到Git数据库中,那就可以完全放心了,流程为:
1.在工作目录中修改数据文件。
2.将文件的快照放入暂存区域。
3.将暂存区域的文件快照提交到Git仓库中。
主机名称 操作系统 IP地址GIT服务器 Centos 7 192.168.126.137GIT客户端 Centos 7 192.168.126.138
[root@accommate ~]# yum install -y git Loaded plugins: langpacks, product-id, subscription-manager ………………省略部分安装过程……………… Installing:git x86_64 1.8.3.1-4.el7 rhel7 4.3 M Installing for dependencies:perl-Error noarch 1:0.17020-2.el7 rhel7 32 kperl-Git noarch 1.8.3.1-4.el7 rhel7 52 kperl-TermReadKey x86_64 2.30-20.el7 rhel7 31 k ………………省略部分安装过程……………… Complete! 然后创建Git版本仓库,一般规范的方式要以.git为后缀:
[root@accommate ~]# mkdir accommate.git
修改Git版本仓库的所有者与所有组:
[root@accommate ~]# chown -Rf git:git accommate.git/
初始化Git版本仓库:
[root@accommate ~]# cd accommate.git/ [root@accommate accommate.git]# git --bare init Initialized empty Git repository in /root/accommate.git/
其实此时你的Git服务器就已经部署好了,但用户还不能向你推送数据,也不能克隆你的Git版本仓库,因为我们要在服务器上开放至少一种支持Git的协议,比如HTTP/HTTPS/SSH等,现在用的最多的就是HTTPS和SSH,我们切换至Git客户机来生成SSH密钥:
[root@localhost /]# 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: b0:74:b6:97:98:ad:a3:f0:24:a8:b6:f4:e5:d8:31:73 root@localhost.localdomain The key's randomart image is: +--[ RSA 2048]----+ | | | | | o o | | . = = . | | . S + | | . o | | .. o=.Eo | |.o. ===. . | |o..o oo | +-----------------+
将客户机的公钥传递给Git服务器:
[root@localhost /]# ssh-copy-id 192.168.126.137 The authenticity of host '192.168.126.137 (192.168.126.137)' can't be established. ECDSA key fingerprint is 0a:89:0f:71:fb:0e:75:f7:37:9b:50:37:56:b7:95:25. Are you sure you want to continue connecting (yes/no)? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@192.168.126.137's password: Number of key(s) added: 1Now try logging into the machine, with: "ssh '192.168.126.137'" and check to make sure that only the key(s) you wanted were added.
此时就已经可以从Git服务器中克隆版本仓库了(此时目录内没有文件是正常的):
[root@localhost /]# git clone root@192.168.126.137:/accommate.git Cloning into 'accommate'... warning: You appear to have cloned an empty repository.
向Git版本仓库提交一个新文件:
[root@localhost accommate]# echo "I successfully cloned the Git repository" > readme.txt [root@localhost accommate]# git add readme.txt [root@localhost accommate]# git status # On branch master # # Initial commit # # Changes to be committed: # (use "git rm --cached <file>..." to unstage) # # new file: readme.txt # [root@localhost accommate]# git commit -m "Clone the Git repository" [master (root-commit) 1709f48] Clone the Git repository1 file changed, 1 insertion(+)create mode 100644 readme.txt [root@localhost accommate]# git status # On branch master nothing to commit, working directory clean
但是这次的操作还是只将文件提交到了本地的Git版本仓库,并没有推送到远程Git服务器,所以我们来定义下远程的Git服务器吧:
[root@localhost accommate]# git remote add server root@192.168.126.137:/accommate.git
将文件提交到远程Git服务器吧:
[root@localhost accommate]# git push -u server master Counting objects: 3, done. Writing objects: 100% (3/3), 272 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To root@192.168.126.137:/accommate.git* [new branch] master -> master Branch master set up to track remote branch master from server.
为了验证真的是推送到了远程的Git服务,你可以换个目录再克隆一份版本仓库(虽然在工作中毫无意义):
[root@localhost accommate]# cd ../Desktop [root@localhost accommate Desktop]# git clone root@192.168.10.10:/root/accommate.git Cloning into 'accommate'... remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0) Receiving objects: 100% (3/3), done. [root@linuxprobe Desktop]# cd accommate/ [root@linuxprobe linuxprobe]# cat readme.txt I successfully cloned the Git repository
使用Git分布式版本控制系统相关推荐
- Git 分布式版本控制系统
目录 文章目录 目录 Git 分布式版本控制系统 Git 的基本概念 Git 的仓库结构 Git 的核心对象 Git 的数据结构 Git Flow 参考文档 Git 分布式版本控制系统 Git 是一个 ...
- g4e基础篇#2 Git分布式版本控制系统的优势
1. 基础篇: 为什么要使用版本控制系统 Git 分布式版本控制系统的优势 Git 安装和设置 初始化Git存储库(Repo) 起步 1 – 创建分支和保存代码 起步 2 – 了解Git历史记录 起步 ...
- Git分布式版本控制系统(下)
Git分布式版本控制系统(下) 链接:https://pan.baidu.com/s/1CgaEv12cwfbs5RxcNpxdAg 提取码:fytm 复制这段内容后打开百度网盘手机App,操作更方便 ...
- Git分布式版本控制系统(上)
Git分布式版本控制系统(上) 链接:https://pan.baidu.com/s/1CgaEv12cwfbs5RxcNpxdAg 提取码:fytm 复制这段内容后打开百度网盘手机App,操作更方便 ...
- Git分布式版本控制系统
Git分布式版本控制系统 git remote -v 查看仓库 一 企业高效持续集成平台场景介绍: 二,GIT分布式版本控制系统: 2.1 Git简介: 2.1.1 git是什么? Git在Wikip ...
- Git 分布式版本控制系统使用教程
Git 专栏索引: Git 分布式版本控制系统使用教程 在 IDEA 中使用 Git 图文教程 Git 分布式版本操作系统使用教程 1. 版本控制系统简介 1.1 集中式版本控制系统 1.2 分布式版 ...
- git(2)---git 分布式版本控制系统
集中式vs分布式 Linus一直痛恨的CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢? 先说集中式版本控制系统,版本库是集中存放在中央服务 ...
- Git分布式版本控制系统简介和使用
Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.[1] Git的读音为/gɪt/. Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本 ...
- 22-07-14 西安 Git 分布式版本控制系统 、代码管理
Git是目前世界上最先进的分布式版本控制系统,Git可以做源代码管理 Git的诞生 Linus (Linus Torvalds 林纳斯.托瓦斯)是在BitKeeper停止向开源社区提供免费版本后开发了 ...
最新文章
- c# 小票打印机打条形码_C#打印小票自带条形码打印
- vim java 注释_centOS7 下的vim java补全
- 基于STM32的DS1302时钟芯片驱动
- Linux的NTP配置总结(转)
- winform中关于panel中滚动条和键盘事件几点体会
- c语言实现去除字符串首尾空格
- 手动为 SAP Spartacus 添加 SSR 支持的步骤
- 手机操控全站仪安卓版 测量员.app
- 嵌入式控制系统和计算机系统
- java final内存机制_Java中的内存处理机制和final、static、final static总结
- 成功通航:用宜搭提升数字化管理效能,确保每次飞行任务安全执行
- 使用C#操作Oracle Spatial的SDO_GEOMETRY对像(读取和写入)
- 视频转换器如何将视频MKV转换成MP4格式
- 通知!7月SCI/SSCI/EI目录已更新,大批中科院1-4区好刊,请查收!
- 大数据处理与分析---课程总结
- 【疑难杂症】Excel数值自定义显示万,并保留两位小数
- win10专业版激活
- CIE 国际照明委员会
- 开发制作一个小程序需要多少钱
- 北京卓镭激光完成近亿元B轮融资,君联资本领投...
热门文章
- python opencv imread()函数,关于:灰度图(二维数组图),彩色图(三维数组图)
- 大数据分布式集群搭建(9)
- 快速人脸验证--MobileFaceNets: Efficient CNNs for Accurate Real-time Face Verification on Mobile Devices
- 图像分割--PixelNet: Representation of the pixels, by the pixels, and for the pixels
- opensips中db_default_url解析存在的bug
- 【rnnoise快速体验】rnnoise从编译到训练
- Linux: debian/ubuntu下安装Neo4j
- sqlmap 跑access_sqlmap注入Access
- Spring data redis乱码问题
- Centos7 上配置 java JDK1.8