Git环境部署
部署git 服务器环境
- 系统环境准备
192.168.30.25 master git gitlab
192.168.30.26 client git
关闭防火墙
[root@master ~]# iptables -F
[root@master ~]# setenforce 0
[root@master ~]# systemctl stop firewalld
- 使用yum安装git (两台服务器都需要安装)
[root@master ~]# yum -y install git
[root@client ~]# yum -y install git
创建git版本仓库,一般规范的方式要以.git为后缀
[root@master ~]# mkdir linuxprobe.git
[root@master ~]# useradd git
[root@master ~]# passwd git
更改用户 git 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@master ~]# chown -Rf git:git linuxprobe.git
初始化版本仓库
[root@master ~]# cd linuxprobe.git/
[root@master linuxprobe.git]# git --bare init
初始化空的 Git 版本库于 /root/linuxprobe.git/
此时Git服务器已经部署好了,但不能向服务器推送数据,也不能克隆Git版本仓库,需要
在服务器上开放至少一种支持Git的协议,比如http/https/ssh等现在用的最多的就是HTTPS和SSH ,本案例中使用的是SSH协议,切换至Git客户机来生成SSH秘钥
[root@client ~]# ssh-keygen //一路回车
+---[RSA 2048]----+
| .=.oo*o. |
| .. X.B.. |
| o oo Xo+ |
| * +.o*oo |
| B S. *o |
| . X o oo |
| o + oE . |
| . .. . |
| oo |
+----[SHA256]-----+
[root@client ~]# ssh-copy-id 192.168.30.25 //将客户机的公钥传递给git服务器
此时就已经可以从Git服务器中克隆版本仓库了(此时目录没有文件是正常的)
[root@client ~]# git clone root@192.168.30.25:/root/linuxprobe.git
正克隆到 'linuxprobe'...
warning: 您似乎克隆了一个空版本库。
配置的是用户名名称和电子邮件地址。每次git提交都会引用这两条信息,记录提交了文件的用户,并且会随更新内容一起呗永久纳入历史记录
[root@client ~]# git config --global user.name "zhan san"
[root@client ~]# git config --global user.email root@linuxprobe.com
设置vim 为默认的文本编辑器
[root@client ~]# git config --global core.editor vim
此时查看git工作环境信息
[root@client ~]# git config --list
user.email=root@linuxprobe.com
user.name=zhan san
core.editor=vim
Git只能追踪类似于txt文件,网页,程序源码等文本文件内容的变化,下面模拟代码提交的过程
[root@client ~]# cd linuxprobe/
[root@client linuxprobe]# echo "Initialization Git repository" > readme.txt
将文件添加到暂存区
[root@client linuxprobe]# git add readme.txt
添加到暂存区后再次修改文件的内容
[root@client linuxprobe]# echo "Something not important" >> readme.txt
将暂存区的文件提交到git版本仓库,命令格式为“git commit -m ”提交说明
[root@client linuxprobe]# git commit -m "add the readme file"
[master(根提交) b4cc72b] add the readme file
1 file changed, 1 insertion(+)
create mode 100644 readme.txt
查看当前工作目录的状态
[root@client linuxprobe]# git status
# 位于分支 master
# 尚未暂存以备提交的变更:
# (使用 "git add <file>..." 更新要提交的内容)
# (使用 "git checkout -- <file>..." 丢弃工作区的改动)
#
# 修改: readme.txt
#
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
1) 第一次修改提交代码:git 将代码文件提交到本地git版本数据库,此时会在暂存区生产一个快照版本
2) 第二次修改提交代码:当再次修改代码是,需要重新提交到暂存区,此时还会生产一个快照版本
3) 提交代码:只有将暂存区的代码提交到Git版本数据库才能算真正提交
查看当前文件内容与Git版本数据库中的差别
[root@client linuxprobe]# git diff readme.txt
diff --git a/readme.txt b/readme.txt
index cb06697..33d16d0 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1 +1,2 @@
Initialization Git repository
+Something not important
现在把文件提交Git版本数据库吧
[root@client linuxprobe]# git add readme.txt
再来查看下当前git版本仓库的状态
[root@client linuxprobe]# git commit -m "added a line of words"
[master 55930eb] added a line of words
1 file changed, 1 insertion(+)
[root@client linuxprobe]# git status
# 位于分支 master
无文件要提交,干净的工作区
但是这次的操作还是只将文件提交到了本地的git仓库,并没有推送带远程的Git服务器
,所有需要定义远程的git服务器
[root@client linuxprobe]# git remote add server root@192.168.30.25:/root/linuxprobe.git
将文件提交到远程git服务器
[root@client linuxprobe]# git push -u server master
Counting objects: 6, done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (6/6), 517 bytes | 0 bytes/s, done.
Total 6 (delta 0), reused 0 (delta 0)
To root@192.168.30.25:/root/linuxprobe.git
* [new branch] master -> master
分支 master 设置为跟踪来自 server 的远程分支 master。
为了验证是否推送到了远程的git服务,可以换个目录在克隆一份版本仓库
[root@client linuxprobe]# mkdir test
[root@client linuxprobe]# cd test
[root@client test]# git clone root@192.168.30.25:/root/linuxprobe.git
正克隆到 'linuxprobe'...
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
接收对象中: 100% (6/6), done.
Git环境部署的更多相关文章
- 分布式版本库——Windows下Git的环境部署以及在GitHub上开源自己的项目
分布式版本库--Windows下Git的环境部署以及在GitHub上开源自己的项目 这几天着实忙的焦头烂额,可惜不是搞技术,今天周日,难得闲下来,写篇大家都想学习的Git教程,其实廖雪峰老师的网站已经 ...
- 环境部署(七):linux下Jenkins+Git+JDK持续集成
前面几篇博客介绍了linux下安装Jenkins.Git.JDK以及Git基础教程和Git关联github等内容,这篇博客,介绍下如何在linux服务器中利用它们构建持续集成环境... 一.准备工作 ...
- Visual Studio Git代码管理环境部署
Visual Studio 2010 部署Git代码管理环境. 第一:首先做Git的安装和环境部署 1.下载并安装Git软件,在windows环境下的Git叫做“msysGit”,官网地址为https ...
- Anyconnect的VPN环境部署(2)-在Linux客户机上连接Anyconnect
由于之前已经在机房IDC安装了Anyconnect的VPN服务环境(参考:Anyconnect的VPN环境部署(1)-OpenConnect server(ocserv)服务安装)今天介绍下在linu ...
- FW: Chef集中管理工具实践之 (1) 环境部署
本文转载:http://heylinux.com/archives/2208.html Chef集中管理工具实践之 (1) 环境部署 目录结构Chef集中管理工具实践之 (0) 什么是ChefChef ...
- Git自动部署
Git自动部署文件位于repository下面的hooks里的post-receive #!/bin/sh set -e git-update-server-info gitosis-run-hook ...
- Flume环境部署和配置详解及案例大全
flume是一个分布式.可靠.和高可用的海量日志采集.聚合和传输的系统.支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(比如文本.HDF ...
- NodeJS项目迁移兼Ubuntu下NodeJS环境部署
前言 之前做的几个项目都托管在阿里云服务器,但是最近要到期了.想着到底要不要续期,毕竟100/月.后面看着阿里云有个活动,800/三年.果断买下.环境部署折腾了一天,其中也遇到几个坑. 目录 一.安装 ...
- MIP开发教程(一) MIP-CLI工具安装与环境部署
依赖安装 安装 MIP-CLI 创建开发文件结构 1. 依赖安装 MIP-CLI 使用 NPM 安装,依赖 node 环境: node 安装-windows node 安装-mac MIP-CLI 开 ...
随机推荐
- OC中APPDelegate[[UIApplication shareApplication]delegate]]Swift实现
直接上代码: var myDelegate:AppDelegate? myDelegate = UIApplication.sharedApplication().delegate as? AppDe ...
- 2015 Multi-University Training Contest 2 1004 Delicious Apples(DP)
pid=5303">题目链接 题意:长度为l 的环,有n棵果树,背包容量为k,告诉你k棵苹果树的id.以及每棵树上结的果子数.背包一旦装满要返回起点(id==0) 清空,问你至少走多少 ...
- js滚轮换切屏
因为全项目不是自己写的,仅仅是帮别人写js滚轮代码,并且别人项目也还未上线.所以仅仅贴出自己写的那段部分代码, 效果:鼠标滚轮滚动时.网頁屏幕一屏一屏的上下切换 (下面代码在本地电脑的IE,chrom ...
- 利用 gnuplot_i 在你的 c 程序中调用 GNUPLOT
这是一篇非常早曾经写的小文章,最初发表于我的搜狐博客(2008-09-23 22:55).由于自从转移到这里后,sohu 博客就不再维护了,所以把这篇文章也一起挪了过来. GNUPLOT 是一款功能强 ...
- css中合理的使用nth-child实现布局
写这篇文章的目的.主要是今天要实现一个布局:li.每行三个,总数不定.仅仅能相邻的li之间须要10px的间距.效果例如以下图: watermark/2/text/aHR0cDovL2Jsb2cuY3N ...
- CF85 E Guard Towers——二分图
题目:http://codeforces.com/contest/85/problem/E 给定一些点的坐标,求把它们分成两组,组内最大距离的最小值: 二分答案,判断就是看距离大于 mid 的点能否组 ...
- Python三次登陆
题目:Python实现三次登陆 不要急于马上把三次登陆写出来,一定要将复杂的程序简单化,必须一步一步地去扩展,这样才保证不会出错. 步骤一:实现简单的一次登陆 # 事先定义 user = 'dark_ ...
- Timer A UP mode 中断
Timer_A, Toggle P1.0, CCR0 Up Mode ISR, DCO SMCLK // Description: Toggle P1.0 using software and TA ...
- astgo常见问题(FAQ)知识库
Q:为什么我在astgo 的一些列表页面看不到右侧顶端的高级功能菜单?R:因为你没有先选择代理商,这些操作都是针对于某个代理商才可以操作的! Q:为什么我无法给astgo 的代理商充值?R:因为你登录 ...
- [Swift通天遁地]七、数据与安全-(1)XML文档的创建和解析
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...