实验室服务器尽管已经设置代理上网,但是访问git的时候,只能通过http clone项目,因而不满于实际开发需求。因而需要换种方式实现。
上网搜索,发现大多数方案要求借助于代理服务。在非管理员条件下想要实现代理服务并不容易,而且系统已经内置了代理,两者也容易发生冲突。
借助先前git内网服务搭建的经验,采用中转的方式来实现。
在server端初始化git仓库
project: testcode
path: /data/d2/RIBLL2017NaMgAlSi/gitbackup
code:
git init --bare testcode
- 这一步会自动在gitbackup目录下创建testcode目录
edit: 在testcode目录下创建
.gitignore
文件1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28# Prerequisites
*.d
# Compiled Object files
*.slo
*.lo
*.o
*.obj
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Fortran module files
*.mod
*.smod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app
# root file
*.root在server端自己的工作目录下clone testcode项目
code:
git clone /data/d2/RIBLL2017NaMgAlSi/gitbackup/testcode
随后即可进入testcode工作目录创建自己的项目文件。正常add,commit和push
在个人电脑端clone testcode项目
code:
git clone ssh://wuchenguang@*:2727//data/d2/RIBLL2017NaMgAlSi/gitbackup/testcode
在个人电脑端配置
push到github(执行一次)
git remote set-url --add --push origin git@github.com:mission-young/testcode.git
push到server(执行一次)
git remote set-url --add --push origin ssh://wuchenguang@*:2727//data/d2/RIBLL2017NaMgAlSi/gitbackup/testcode
同步push(需要时执行)
git push
.bashrc 设置备份
- server
1
2
3# git --init bare project
export gitserver=/data/d2/RIBLL2017NaMgAlSi/gitbackup
# eg. git clone $gitpath/code 用于clone server项目 - pc
1
2
3
4
5
6
7
8export gitserver=/data/d2/RIBLL2017NaMgAlSi/gitbackup
export gitpath="ssh://wuchenguang@*:2727/$gitserver"
# eg. git clone $gitpath/code 用于clone server项目
export pushgithub="remote set-url --add --push origin git@github.com:mission-young"
# eg. git $pushgithub/code 用于设置push到github
export pushserver="remote set-url --add --push origin ssh://wuchenguang@*:2727/$gitserver"
# eg. git $pushserver/code 用于设置push到server
# 搞定上面几步之后,git push 可以同时上传到github与server