Git服务器搭建,以及Git基本操作

这两天搭建Git服务器,折腾了好久,把自己纠结的几个点记录分享下。

『Git Server搭建』

1.Git安装,安装之前先查看下是否已经安装好了:   

git version

如果没有安装:

yum install git

2.选择一个文件夹,初始化Git仓库:

sudo git init --bare test.git

此处的--bare的意思就是建立一个裸仓库,不能在此仓库里进行add和commit操作。服务器里面的初始代码,也是需要client端推送(push)进来的,不可以自己去commit。这个问题我真心是纠结了好久啊,我一开始切换到test.git这个目录里面,再git init,然后后面的操作都不对了。其实这样初始化就OK了。

3.创建一个新用户,用来运行git服务(此处随便啥用户都可以,只要找好该用户处于的组就可以了,用户名在后面SSH登陆的时候要用到)

1 sudo adduser zita    #新增用户
2 passwd zita          #修改用户密码
3 groups zita          #查看该用户所处的组 

此时test.git是属于root:root:

我们将其修改为zita:zita:

sudo chown -R zita:zita test.git

此时git server就搭建好了,就是辣么简单,没有其他操作了。。。

『Git Client』

此处的client建立在windows上,别问我为什么要用windows,因为这个上面的要求。

在windows上装好Git Gui后,就可以开始操作了。

1.新建一个文件夹,作为Git仓库,在此文件夹中初始化git。

初始化好了之后,会自动生成一个.git的隐藏目录,务必不要手动修改此文件夹。

 

2.基本配置:

再右击打开”Git Gui“,进行基本配置:

1)配置用户名和邮箱号,这一步只是为了标识出不同的用户。

填写完了保存。

2)生成SSH KEY,供远程登陆使用。

 

 

然后,登录到git服务器上,将SSH KEY加入到/home/git/.ssh/authorized_keys文件中。如果没有此文件,请按照这个路径新建文件。

3.基本操作:

1)添加并提交文件,我在版本库里添加了一个文件:

换用”Git Bash“:

git status  #查看当前版本库的变动

此时可以看到”1.txt“发生了变动

git add 1.txt    #将1.txt添加到缓冲区
git commit -m "first commit"    #添加备注并且提交

 

再次查看版本库状态,无更新了:

2)版本回退:

我先多修改几次文件,然后多提交几次:

git log    #显示操作记录

此时我想回退到first commit:

git reset --hard 5282c6    #此处的数字为版本号的sha1前几位

3)重回未来:

此时我想再返回到second commit,该怎么办?

此时的git log只剩一条记录了:

我们可以使用git reflog,找到版本号:

git reflog

git reset --hard 6903158

4.远程操作:

1)clone远程库:

git clone zita@192.168.1.140:/home/githome/test.git

此时的版本库里什么都没有,因此是空的。

2)push代码上去:

git push <远程主机名> <本地分支名>

查看远程主机名:

git remote -v

如果没有,则可以添加。此处的”origin“为自定义的远程服务器的名字,zita为刚才添加的用户名,192.168.1.140为git服务器的IP地址,/home/githome/test.git为刚才设置的git仓库文件夹:

git add origin zita@192.168.1.140:/home/githome/test.git

查看本地分支,默认为master:

git branch

 push 代码到远程服务器:

git push origin master

push成功了,此时在服务器上是看不到我push上去的代码的,但是别人在他的client端是可以看到的。

3)此时我新建另外一个文件夹,初始化一个新的仓库,并且添加远程服务器:

git fetch origin   #获取远程服务器的变动

此时文件还在一个缓冲区里,我们需要将其merge到自己的分支上来:

首先查看远程分支名字:

git branch -a

我将远程的origin/master分支合并到我的master分支上:

git merge origin/master

本地就获取到了文件:

 『小结』

Git还有好多操作和一些原理性的东西,等用到了再去学习吧。

参考资料:

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

http://www.csdn.net/article/2014-06-17/2820265-git

 

posted @ 2016-08-08 17:37  筱筱汀  阅读(951)  评论(1编辑  收藏  举报