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的安装及使用的更多相关文章

  1. 分布式版本控制系统 Git 的安装与使用

    作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 远端库地址:https://github.com/CJL29 ...

  2. 分布式版本控制系统Git的安装与使用

    分布式版本控制系统Git的安装与使用 作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103 我的远端仓库地址是:htt ...

  3. 【软件工程】分布式版本控制系统Git的安装与使用

    作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 远端库地址:https://github.com/Richa ...

  4. 分布式版本控制系统Git的安装与使用(作业2)

    (本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103) 分布式版本控制系统Git的安装与使用 一.安装Git b ...

  5. 第二次作业-分布式版本控制系统Git的安装与使用

    本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103 我的github远程仓库的地址:https://github ...

  6. 随笔 | 分布式版本控制系统Git的安装与使用

    作业要求来自https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 GitHub远程仓库的地址https://github.com/W ...

  7. 【软件工程Ⅱ】作业二 |分布式版本控制系统Git的安装与使用

    本次作业的要去来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 远程库地址:https://github.com/Mol ...

  8. 作业2:分布式版本控制系统Git的安装与使用

    1.下载安装配置用户名和邮箱. 2. 创建工作目录并通过git init命令把这个目录变成Git可以管理的仓库. 3. 在工作目录下准备文本文件,建议下载Notepad++代替记事本. 4. 组合用g ...

  9. 作业二:分布式版本控制系统Git的安装与使用

    作业要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 1.下载安装配置用户名和邮箱. (1)下载安装Github配置 ...

随机推荐

  1. 大数据(2):基于sogou.500w.utf8数据hive的实践

    一.环境的搭建 1.安装配置mysql rpm –ivh MySQL-server-5.6.14.rpm rpm –ivh MySQL-client-5.6.14.rpm 启动mysql 创建hive ...

  2. 性能测试-并发和QPS

    性能测试-并发和QPS 响应时间: cpu计算耗时 + cpu等待耗时 + 网络io耗时 + 磁盘io耗时 并发: 服务端并发和客户端并发不是同一个概念.客户端并发仅仅是为了模拟多用户访问,服务端并发 ...

  3. 防反编译的加壳工具-Virbox Protector

    通过Virbox Protector可快速对您的软件进行加壳,可防调试,防挂钩,防反编译. 首先,你要有一个云平台(www.sense.com.cn)的帐号,登录后,只需将你的dll或者exe拖入到加 ...

  4. Hibernate之三态

    1.瞬时态 瞬时态也成为临时态或者自由态,瞬时态的实例是new命令创建.开辟内存空间的对象,不存在持久化标识OID,尚未与Hibernate Session关联,在数据库中没有任何记录,失去引用将被G ...

  5. 基于hi-nginx的web开发(python篇)——路由装饰器

    现在,有了起步的基本认识,现在需要一个可以媲美flask或者bottle的简洁易用的路由功能,可以用装饰器写法任意映射 URLs 到代码. 这个,并不难.首先,来一个叫做hi的模块:hi.py: im ...

  6. Redis 中的数据类型及基本操作

    Redis 内置的数据类型有 5种:字符串String.哈希Hash.列表List.集合Set.有序集合ZSet 字符串类型 String 是 Redis 中最基本的类型,一个 key 对应着一个 v ...

  7. 网络通信 --> ZMQ安装和使用

    ZMQ安装和使用 ZMQ 并不像是一个传统意义上的消息队列服务器,事实上,它也根本不是一个服务器,它更像是一个底层的网络通讯库,在 Socket API 之上做了一层封装,将网络通讯.进程通讯和线程通 ...

  8. Linux下导入SQL文件

    导入数据库 一.首先建空数据库 格式: mysql>create database 数据库名;举例: mysql>create database abc; 二.导入数据库 方法一: 选择数 ...

  9. Git忽略规则.gitignore梳理

    对于经常使用Git的朋友来说,.gitignore配置一定不会陌生.废话不说多了,接下来就来说说这个.gitignore的使用. 首先要强调一点,这个文件的完整文件名就是".gitignor ...

  10. 个人总结——Beta阶段

    Beta总结 我们在beta 结束之后, 每位写一个博客, 回顾并总结自己的beta过程,哪些方面做的好的,哪些方面做得不足需要改进的 回答问题 分析在Alpha阶段自己提出的五个问题,针对每个问题, ...