一、准备环境

linux服务器主机选择ubuntu系统,上面需要有ssh服务器,最好有一个专门的账户来管理git的仓库。

(1)安装ssh

sudo apt-get install openssh-server



查看是否安装成功.

ps -ef|grep sshd

如果有sshd的进程,表示ssh服务打开。


(2) 建立git账户

adduser gitserver



这里用户名就是git服务器的用户名,密码以后为服务器的密码

su gitserver
cd
mkdir projects
git --bare init

切换到gitserver的目录下,建立用于管理git仓库的目录projects。

二、建立本地仓库

在ubuntu其他账户上,建立测试目录~/hello_git,下面有一个文件hello.cpp,内容如下:

#include <iostream>
using namespace std;
int main()
{
	cout<<"hello git first init."<<endl;
	return 1;
}



切换到hello_git目录下,执行git的初始化命令。

cd ~/hello_git
git init
git add .
git config user.email "dong_beijing@csdn.com"
git config user.name "dong_beijing"
git commit -m 'first init commit '

介绍一下指令init建立本地仓库,add. 添加当前目录所有文件到本地仓库,config设置用户名和邮箱, commit提交到本地仓库,-m后面为注释。

commit之后,git就产生了第一条日志,输入git log命令可见

git log
commit 031b797a43e46f26d21acf13d39cd3690cdb88e7
Author: dzy <dong_beijing@csdn.com>
Date:   Thu Sep 21 13:50:08 2017 +0800

    first init commit

三、建立服务器仓库

执行指令:

git remote add origin gitserver@192.168.1.198:/home/gitserver/projects



其中192.168.1.198为步骤一的git服务器的ip,/home/gitserver/projects为步骤一建立的目录。

输入-v指令,可见fetch和push已建立好。

git remote -v
origin	gitserver@192.168.1.198:/home/gitserver/projects (fetch)
origin	gitserver@192.168.1.198:/home/gitserver/projects (push)

把本地仓库推送到远端服务器。

git push origin master

提示输入密码password,输入步骤一中gitserver账户设置的密码,完成后提示:

To 192.168.1.198:/home/gitserver/projects
 * [new branch]      master -> master

四、用户使用git仓库

组里成员用eclipse比较多,以eclipse与shell一起做介绍。

用户场景:

(1)eclipse用户连接git服务器,并进行更新,提交到本地与远端仓库;

(2)shell用户获取eclipse的更新。

(1)的步骤介绍:

eclipse用git服务器clone代码,

git 搭建局域网仓库 git 局域网服务器_git服务器

选择clone uri,

git 搭建局域网仓库 git 局域网服务器_eclipse_02

设置ssh的连接如下:

git 搭建局域网仓库 git 局域网服务器_git服务器_03

建立好eclipse的本地仓库如下:

git 搭建局域网仓库 git 局域网服务器_git服务器_04

将eclipse本地的branch和git服务器的branch进行merge

git 搭建局域网仓库 git 局域网服务器_git_05

merge的配置,可选为eclipse的默认配置。

git 搭建局域网仓库 git 局域网服务器_git_06

在working directory下,已有hello.cpp,进行测试更改,如下:

#include <iostream>
using namespace std;
int main()
{
    cout<<"hello git first init."<<endl;
    cout<<"git first update"<<endl;
	return 1;
}

增加一行cout,对eclipse本地进行commit,更新本地仓库,再选择push,更新git服务器的仓库,要求输入密码,为git服务器的gitserver账户的密码

git 搭建局域网仓库 git 局域网服务器_git服务器_07

完成步骤(1)。

步骤(2)的介绍:

在二步骤中的ubuntu的账户下,

cd ~/hello_git
git pull origin master



完成shell用户的代码更新。

输入git log可见update

git log
commit 035d94604c9a350b4b4dbb187c735807702e691e
Author: dzy <dzy@206.com>
Date:   Thu Sep 21 14:03:43 2017 +0800

    update

commit 031b797a43e46f26d21acf13d39cd3690cdb88e7
Author: dzy <dong_beijing@csdn.com>
Date:   Thu Sep 21 13:50:08 2017 +0800

    first init commit

附:

git的一些有用的指令:

mergetool 处理冲突

branch 处理分支,可与checkout配合

status查看状态

add的指令,基本都有对应的remove指令。

fetch+merge =pull指令,

即git pull origin master,

可以改为 git fetch origin,然后git diff remotes/origin/master,然后git merge remotes/origin/master