一、准备环境
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代码,
选择clone uri,
设置ssh的连接如下:
建立好eclipse的本地仓库如下:
将eclipse本地的branch和git服务器的branch进行merge
merge的配置,可选为eclipse的默认配置。
在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账户的密码
完成步骤(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