有些小公司没有搭建Git服务器,让一些用过Git服务器的人难以适应,增加了合代码的困惑,而且不知道自己改过哪些地方,追踪的时候会非常麻烦,今天教大家在电脑上搭建自己的Git服务器。
如果几个人同时维护一份代码,可以向公司申请一台电脑,当成服务器,如果没有条件,别慌,可以把某个同事的电脑当成服务器(比较苦逼的就是那个同事电脑可能会卡一点),一个人维护那就更好了,接下下开始搭建Git服务器环境。
一、搭建git服务器环境
1)、从http://www.gitblit.com下载Git服务器包,如下图所示;
2)、下载成功之后,把该目录放在空间比较大的盘中,譬如本电脑的D盘比较大,我就放在了D盘:D:\git_server\gitblit-1.8.0,git_server是自己创建的一个目录,把下载的文件放在该目录下,进行解压。
3)、创建存储项目代码的目录,这里为D:\git_server\GitProject
4)、更改D:\git_server\gitblit-1.8.0\gitblit-1.8.0\data目录下的defaluts.properties文件。如下几个地方需要修改。
1、 #git.repositoriesFolder = ${baseFolder}/git
git.repositoriesFolder = D:\git_server\GitProject\demo
2、#server.httpPort = 0
server.httpPort = 10010
3、server.httpBindInterface =192.168.1.166 后面的IP地址为电脑的IP地址
4、server.httpsBindInterface =localhost
更改后,保存关闭文件。
5)、开始运行gitblit.cmd批处理文件。如下图所示表示运行成功。
6、在浏览器中输入:http://192.168.1.166:10010/,如果可以登录网页表示服务器环境搭建成功。
7、用户默认情况下可以用用户名:admin和密码:admin进行登录,之后可以更改密码,如下所示。
7、客户端想访问服务端首先得创建版本库,如下图所示,填写相关内容后,点击创建按钮。
8、创建版本库之后,就会生成如下界面,客户端可以通过如下地址ssh://admin@192.168.1.166:29418/~admin/sensor.git访问服务器了。
注意:如果被当成Git服务器的电脑是动态获取IP地址,则需要更换defaluts.properties文件下的属性server.httpBindInterface =新的IP地址,然后启动gitblit.cmd,然后才可以访问网页:http://新的IP地址:10010/
二、客户端访问Git服务器
1、客户端想访问Git服务器首先需要下载TortoiseGit,建议下载地址:https://tortoisegit.org/download/,下载并安装成功后,找一个目录如:本人在路径e/worktools下,点击鼠标右键会弹出Git Bash here选项,单机,
输入git clone http://admin@192.168.1.166:10010/r/~admin/radio.git,远程版本库就拉在本地目录E:\work_tools\sensor下了。
2、用户想把自己的项目放到Git服务器上,譬如把本地的收音机radio项目传到GIt服务器上,首先把本地的Radio项目拷贝到E:\work_tools\sensor下,如下所示:
3、拷贝好后,进入Git控制台输入cd sensor 命令进入sensor目录,然后输入git status命令,就可以看到加入的Radio_UI文件。
4、接着在控制台输入git add Radio_UI命令,再次输入git status命令,此时文件表示可以提交的状态。
5、git commit -m "first commit" 通过该命令提交代码,""包含的内容是注释文,此时代码仍然没有上传到服务器,而只是缓存在本地,接着输入
git push ssh://admin@192.168.1.166:29418/~admin/sensor.git
出现如下提示框,需要输入用户密码,前面两个password直接按Enter键,最后一个需要输入登录时的密码,输入之后就开始上传。
6、上传成功后,用户可以去服务器界面查看,如下所示表示已经上传成功。
三、GiTortoise操作Git服务器上的代码。
创建远程分支
(1)从服务器上下载代码并保存在E:\work_demos目录:
首先进入E:\work_demos目录下,鼠标右键,点击Git Bash Here打开Git控制台,在控制台中输入如下命令:
git clone ssh://admin@192.168.1.166:29418/~admin/Test.git
ssh://admin@192.168.1.166:29418/~admin/Test.git表示你之前创建库的路径。代码下完之后,就会有一个新生成一个文件夹Test,通过命令cd Test,进入该目录。
(1)查看远程和本地分支:git branch -a
Administrator@MS-20170524EUSY MINGW64 /e/work_demos/Test (master)
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
(2)创建分支:git branch sensor
Administrator@MS-20170524EUSY MINGW64 /e/work_demos/Test (master)
$ git branch sensor
(3)查看本地分支:git branch, master前面有一个星号,表示当前正在master分支上
Administrator@MS-20170524EUSY MINGW64 /e/work_demos/Test (master)
$ git branch
* master
sensor
(4)把当前分支推送到远程服务:密码就是登陆服务器的密码
Administrator@MS-20170524EUSY MINGW64 /e/work_demos/Test (master)
$ git push origin sensor
Password authentication
Password:
Total 0 (delta 0), reused 0 (delta 0)
remote: Updating references: 100% (1/1)
To ssh://192.168.1.175:29418/~admin/Test.git
* [new branch] sensor -> sensor
(5)切换到分支sensor
Administrator@MS-20170524EUSY MINGW64 /e/work_demos/Test (master)
$ git checkout sensor
Switched to branch 'sensor'
(6)再次查看本地分支:此时星号在分支sensor前面,说明正在分支sensor上。
Administrator@MS-20170524EUSY MINGW64 /e/work_demos/Test (sensor)
$ git branch
master
* sensor
(7) 在分支sensor修改代码,例如增加一个文件。
Administrator@MS-20170524EUSY MINGW64 /e/work_demos/Test (sensor)
$ touch a.txt
(8)查看修改状态,表示新增加了一个文件
Administrator@MS-20170524EUSY MINGW64 /e/work_demos/Test (sensor)
$ git status
On branch sensor
Untracked files:
(use "git add <file>..." to include in what will be committed)
a.txt
nothing added to commit but untracked files present (use "git add" to track)
(9)增加代码并添加;
Administrator@MS-20170524EUSY MINGW64 /e/work_demos/Test (sensor)
$ git add a.txt
Administrator@MS-20170524EUSY MINGW64 /e/work_demos/Test (sensor)
$ git commit -m "提交a.txt"
[sensor 5770c67] 提交a.txt
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a.txt
(10)切到主分支:git checkout master
Administrator@MS-20170524EUSY MINGW64 /e/work_demos/Test (sensor)
$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
(11)把sensor分支提交的代码合并到master分支上:git merge sensor
Administrator@MS-20170524EUSY MINGW64 /e/work_demos/Test (master)
$ git merge sensor
Updating 04b2ecc..5770c67
Fast-forward
a.txt | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a.txt
(12)删除分支sensor: git branch -d sensor
删除分支后对修改的内容没有任何影响,因为已经合并到主分支了。
Administrator@MS-20170524EUSY MINGW64 /e/work_demos/Test (master)
$ git branch -d sensor
Deleted branch sensor (was e525169).
(11)把代码推送到服务器:git push
Administrator@MS-20170524EUSY MINGW64 /e/work_demos/Test (master)
$ git push
Password authentication
Password:
Counting objects: 2, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 278 bytes | 0 bytes/s, done.
Total 2 (delta 0), reused 0 (delta 0)
remote: Updating references: 100% (1/1)
To ssh://192.168.1.175:29418/~admin/Test.git
5770c67..e525169 master -> master
(12)如果多人开发一份代码,为了区分用户,需要改用户名,命令如下:
$git config --global user.email "Emily@gmail.com"
$git config --global user.name "Emily"
四、eclipse操作Git服务器的代码。
(1)拉取服务器代码如下图所示:
URI是远程服务器下载代码的路径,直接粘贴,其他都会自动生成,密码是登录服务器的密码。
C:\Users\Administrator\git\Test是保存代码的路径,不是固定的,可以切换成其他路径。
出现如下情况,表示eclipse中已经存在该代码。如果不存在Finish按钮不是灰色的,是可以点击的。到这里就是最后一步了,点击finish后代码就已经从远程服务器拉取下来了。
(2)配置服务器的地址
(2)在修改代码代码之前首先需要拉取最新代码git pull;
(3)提交修改的代码
注意:如果被当成Git服务器的电脑是动态获取IP地址,每次重启电脑后,需要查看电脑的ip,如果电脑IP和上一次相同,只用启动gitblit.cmd即可。如果不同则需要更换defaluts.properties文件下的属性server.httpBindInterface =新的IP地址,然后启动gitblit.cmd。启动后,还需要修改本地代码中.git目录下config配置文件后,eclipse才能正常操作服务器代码如下所示: