分布式版本控制系统Git的安装及使用
Git的安装分为客户端安装和服务端安装,鉴于我平时码代码在windows环境下,因此本文客户端安装直接在windows环境,服务端安装在linux环境下(centos).
Git客户端安装
客户端下载地址: https://git-scm.com,安装成功后,在开始菜单找到“Git”->"Git Bash",弹出类似命令行的窗口,说明安装成功
安装成功后,在命令行中输入如下:
git config --global user.name "your name"
git config --global user.email "your email"
生成密钥:执行以下命令之后,会在.ssh的目录中产生id_rsa和id_rsa.pub两个文件,id_rsa.pub为公钥,我们需要将它拷贝到git服务端的/home/git/.ssh/authorized_keys里面
ssh-keygen -t rsa
注意:如果在以后执行"git add" 命令时,出现:“LF will be replaced by CRLF” 警告,执行如下命令
$ rm -rf .git // 删除.git
$ git config --global core.autocrlf false //禁用自动转换
Git服务端的安装
第一步,安装git
yum install git
第二步,创建一个git用户,用来运行git服务
adduser git
第三步,创建证书登录
收集所有需要登录的用户公钥,也就是他们的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys中,一行一个(如果不存在authorized_keys文件,执行:touch authorized_keys)
第四步,初始化git仓库
先选定一个目录作为git仓库,假设为/srv/yiwole,执行如下命令:
cd /srv/yiwole
git --bare init //建立裸仓库,服务器端只允许共享文件,不允许直接在上面工作
进入srv目录,更改文件所有者为git
chown -R git:git yiwole
第五步,禁用shell登录
出于安全考虑,创建的git用户不允许直接登录shell,打开/etc/passwd,找到类似下面的一行
//注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序
git:x::::/home/git:/bin/bash
改为:
git:x::::/home/git:/usr/bin/git-shell
搭建完成后,我们需要了解与git服务器交互过程中用到的主要命令,包括git clone,git remote git fetch,git push,git pull等
1.git clone
此命令是我们与远程服务器交互的第一步,通过此命令,可以将远程版本库克隆到本地
语法:git clone 版本库的网址 本地库名称(eg: git clone git@192.168.0.124:/srv/yiwole yiwole)
本地库名称可以省略,省略之后,会在本地生成和版本库名称一致的文件
2.git remote
此命令用于管理远程主机,此命令在没有参数的情况下可列出所有主机
eg:git remote add origin git@192.168.0.124:/srv/yiwole关联远程库
3.git fetch
此命令将远程版本库的更新更新到本地
语法:git fetch 主机名称 分支名字(eg:get fetch origin master)
分支名字可以省略,省略之后,将主机上的所有分支更新到本地
4.git push
此命令用于将本地分支的更新推送到远程主机
语法 git push 远程主机名 本地分支名:远程分支名(git push origin master:master)
如果省略远程分支名,则表示将本地分支推送与存在最终关系的远程分支,如果远程分支不存在,则会被新建。如果省略本地分支名,则表示要删除远程主机中分支
5.git pull
此命令用于获取远程分支的更新
语法:git pull 远程主机 远程分支:本地分支(eg:git pull origin master:master)
git 的钩子功能实现自动同步到站点目录(www)
cd /srv/yiwole
cd hooks
//这里我们创建post-receive文件
vim post-receive
//在该文件里输入以下内容
#!/bin/bash
git --work-tree=/home/www checkout -f
//保存退出后,将该文件用户及用户组都设置成git
chown git:git post-receive
//由于该文件其实就是一个shell文件,我们还应该为其设置可执行权限
chmod post-receive
注意:需要服务器上的git用户有权限进入www目录,可执行chown -R git:git www
分布式版本控制系统Git的安装及使用的更多相关文章
- 分布式版本控制系统 Git 的安装与使用
作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 远端库地址:https://github.com/CJL29 ...
- 分布式版本控制系统Git的安装与使用
分布式版本控制系统Git的安装与使用 作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103 我的远端仓库地址是:htt ...
- 【软件工程】分布式版本控制系统Git的安装与使用
作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 远端库地址:https://github.com/Richa ...
- 分布式版本控制系统Git的安装与使用(作业2)
(本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103) 分布式版本控制系统Git的安装与使用 一.安装Git b ...
- 第二次作业-分布式版本控制系统Git的安装与使用
本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103 我的github远程仓库的地址:https://github ...
- 随笔 | 分布式版本控制系统Git的安装与使用
作业要求来自https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 GitHub远程仓库的地址https://github.com/W ...
- 【软件工程Ⅱ】作业二 |分布式版本控制系统Git的安装与使用
本次作业的要去来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 远程库地址:https://github.com/Mol ...
- 作业2:分布式版本控制系统Git的安装与使用
1.下载安装配置用户名和邮箱. 2. 创建工作目录并通过git init命令把这个目录变成Git可以管理的仓库. 3. 在工作目录下准备文本文件,建议下载Notepad++代替记事本. 4. 组合用g ...
- 作业二:分布式版本控制系统Git的安装与使用
作业要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 1.下载安装配置用户名和邮箱. (1)下载安装Github配置 ...
随机推荐
- nodejs辅助前台开发系列(1) 搭建简单HTML开发环境
搭建简单的html开发环境一般需要解决两个问题: 文本编辑器 WebServer集成 在文本编辑器选择上,VS Code 无疑是一匹黑马,谁用谁知道.WebServer集成nodejs对前端来说最为友 ...
- 【前端单元测试入门03】Sinon
前端测试存在的问题 在讲Sinon之前,我们得先讲一下在学习了Mocha.chai以及enzyme之后,我们的前端测试还存在的一些问题. 比如前台测试需要与后台交互,获取后台数据后再根据相应数据进行测 ...
- 聊聊Linux用户态驱动设计
序言 设备驱动可以运行在内核态,也可以运行在用户态,用户态驱动的利弊网上有很多的讨论,而且有些还上升到政治性上,这里不再多做讨论.不管用户态驱动还是内核态驱动,他们都有各自的缺点.内核态驱动的问题是: ...
- firemonkey ListView DynamicAppearance
Go Up to FireMonkey Application Design Contents [hide] 1 Customizing the List View Appearance Prope ...
- Centos7数据实时同步
Rsync+inotify 功能要求 通过rsync+inotify将数据库指定目录实时同步到备份服务器. 环境说明 M:192.168.10.11 数据库服务器 S:192.168.10.13 备份 ...
- Angular开发实践(四):组件之间的交互
在Angular应用开发中,组件可以说是随处可见的.本篇文章将介绍几种常见的组件通讯场景,也就是让两个或多个组件之间交互的方法. 根据数据的传递方向,分为父组件向子组件传递.子组件向父组件传递及通过服 ...
- 自动识别移动端还是PC端
平时在开发中经常会遇到这样的需求,除了开发PC端之外,还会同时开发移动端.对于简单的页面,可以使用bootstrap之类的框架实现响应式页面,可是当页面很复杂的时候,就需要开发一个移动端页面,一个PC ...
- CXF SOAP 及其安全控制
通过上一篇文章,相信您已经学会了如何使用 CXF 开发基于 SOAP 的 WS 了.或许您目前对于底层原理性的东西还不太理解,心中难免会有些疑问: 什么是 WSDL? 什么是 SOAP? 如何能让 S ...
- MyBatis-plus 代码生成器
1.添加pom文件依赖 <!-- Mybatis-Plus 自动生成实体类--> <dependency> <groupId>com.baomidou</gr ...
- Pla
Pla(jdoj1006) 题目大意:给你n个矩形,并排放在一起,你的目的是将所有的矩形全部染色.你每次染的形状为一个矩形,问:最少需要染多少次? 注释:n<=10^6,wi , hi<= ...