Centos7搭建Git及安装使用

一、Centos7.2 下 Git的安装

1、查看是否安装了git

rpm -qa|grep git

未分类

若已经安装,需要先卸载。卸载命令如下:

rpm -e --nodeps git  或者  rpm -e git

未分类

2、安装Git

yum install git

未分类

输入y,并回车

未分类

再使用 rpm -qa|grep git 来查看是否已经安装好了Git。

未分类

3、创建Git仓库

mkdir six_git        // 创建文件夹
useradd six             //创建用户名并设置密码
passwd six            //(系统会提示输入密码和再次密码)
groupadd git        // 创建组
git init --bare        //进入所创建的文件夹,初始化一个仓库
chown -R six:git /var/www/six_git/        // 赋权限

未分类

二、windows7 下连接Git版本库

1、安装Git 和 TortoiseGit(小乌龟)

2、在本地创建文件夹

>在windows7中某个盘符下创建一个名为“six” 的文件夹,这个文件夹就是我们与远程仓库通讯的文件夹。

3、进入“six”文件夹,右击菜单设置本机用户名和email

为了直观分辨不同用户为版本开发的贡献,需要设定用户名和email
下面分别是中文版和英文版的 TortoiseGit

未分类

未分类

未分类

未分类

4、Clone版本库(克隆)

在要克隆版本库的文件夹中点击右键,点击“Git克隆”菜单,根据图中信息填写后,点击确定,输入当时创建“six”账户是设置的密码即可。

未分类

未分类

未分类

输入创建“six”用户时,设置的密码。
英文版本:

未分类

未分类

填写好后,点击“ok”按钮,并要求输入密码。

未分类

5、添加文件

在clone库的文件夹中添加一个测试文件,并在空白处点击邮右键,选择“TortoiseGit”-à “添加”

未分类

勾选未受版本控制的文件,也就是刚刚创建的测试文件,点击确定按钮。

未分类

添加完成后,弹出“加入完成”对话框,点击确定即可

未分类

再在该文件夹空白出点击右键,点击“Git提交(C)->”master”…”

未分类

在对话框中填写相关的说明信息并选择文件,点击提交即可。

未分类

6、更新版本库

更新版本库前应该改先从服务器上“拉取”一下,再把自己修改的内容“推送”到服务器上.

未分类

未分类

三、建立发布版本库

1、在centos中建立发布版本库,然后进入文件夹。

未分类

2、更新版本库,进入版本目录,执行“git pull”命令

未分类

3、 禁止shell登陆

出于安全考虑,git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。
找到类似下面的一行:

six:x:502:502::/home/six:/bin/bash
改为
six:x:502:502::/home/six:/usr/local/git/bin/git-shell
或者
six:x:502:502::/home/six:/usr/bin/git-shell
six:x:502:502::/home/six:/bin/false

git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。

未分类

四、错误

未分类

在 windows文件夹 下 bash命令中输入:

git fetch --all
git reset --hard origin/master

Git的bash操作:

进入git bash,我这个windows下个git已经安装配置完成了,所以直接clone,192.168.153.129为我centos7的ip
git clone git@192.168.153.129:/srv/git/project.git
输入git的密码
进入project.git
cd project.git
创建一个测试文件
vim test.txt
随便写一些内容
查看状态
git status      看到有一个待添加的文件texs.txt了
添加test.txt让git追踪
git add test.txt
提交到版本库,并写上备注信息
git commit test.txt -m ‘just a test’
把他推送到服务器的版本库中去
git push origin master

未分类

git client

未分类

git commit

已经推送到服务器端区了。。。接下来去服务器端看看有木有

刚才俺们在服务器端创建版本库时用的是 git init –bare project.git 加了个–bare就是创建一个裸仓库,没有工作区哒,所以这里只记录了文件的改动,要看是不是同步过来了,需要在git clone一次,看是不是这一次有test.txt啦

未分类

未分类

git clone git@127.0.0.1:/srv/git/project.git,输入密码后,开始下载代码了,果然master分支已经有test.txt啦.
git log查看一下提交记录,在mon feb 2 09:47:46 2015 +0800的这个,邮件为xxx的作者xxx提交哒。因为windows客户端配置的git是偶滴工作邮件和姓名,就打码了,ok,私有git搭建完成。

git的删除操作

rm test.txt
git status
$ git rm test.txt
rm 'test.txt'
git add -u
$ git commit -m "remove test.txt"
git push

现在,文件就从版本库中被删除了。

另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:

$ git checkout -- test.txt

git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

小结

命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。