记录一下利用Git在局域网共享代码,也分享给有需要的人
背景:
在单位里一直用git lab社区版,好用,但报了几次漏洞,尽管在局域网内,上级一有通知就必须处理,总是要修复,很是麻烦
局域网内是严禁用window网络共享的,目前想到的方案使用ssh+Git(欢迎大佬提供其它方案)。
网上也有教程,但都不太完整,结合自己的实操,编写本教程,可以让自己记着过程。
架构:
Centos7服务器一台(离线无法连接互联网)、客户端任意
过程:
1、Centos7服务器开通ssh,这个是标配,不说了
2、下载Git
A:本地电脑windows 10 64位,安装 Git,大部分操作在Git bash完成,个人喜欢当shell用
https://github.com/git-for-windows/git/releases/download/v2.38.0.windows.1/Git-2.38.0-64-bit.exe
B:CentOS服务用的Git
https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.38.0.tar.xz
3、本地与服务器分别安装Giti
A:本地
后面不管了,全是:next
本地成功安装
B:服务器
B1:上传 git-2.38.0.tar.xz
B2:编译安装
1、ssh登录服务器
2、tar Jxf git-2.38.0.tar.xz && cd git-2.38.0
3、./configure prefix=/usr
4、make all && make install (输出n多东西,没什么值得看的)
5、看到显示Git 版本,表过安装完成
4、本地设置用户及服务器设置Git用户
A:远程设置用户并生成密钥
1、[root@xxx git-2.38.0]# useradd git
2、[root@xxx git-2.38.0]# passwd git
//更改 git 的密码 。
3、[root@xxx ~]# ssh-keygen -C "bryan sun@gmail.com"
//在 .ssh目录 生成密钥 id_rsa 与 id_rsa.pub
4、[root@xxx ~]# mv id_rsa.pub /home/git/.ssh/authorized_keys
//自制公钥到git下,实现无密码登录
5、[root@xxx ~]# vim /etc/ssh/sshd_config
//找到 PubkeyAuthentication yes
6、[root@xxx ~]# systemctl restart sshd
//重启sshd服务
B:本地,在Git bash 里设置
1、git config --global user.name "bryan sun"
2、git config --global user.email "bryan sun@gmail.com"
3、scp root@服务器IP:~/.ssh/id.rsa ./.ssh/
//复制私钥到本地
4、ssh git@服务器IP
//如果不用输入密码,表达成功了,如果不成功,百度一下 linux的无密码登录吧,其实也不难
5、完成上面的,实现就完成了配置,现在可以利用git,假设本地有个叫test的项目
1、创建远空仓库
//后面的都在本地在Git bash 里执行
$ ssh git@服务器IP "cd ~ && git init --bare test"
提示:使用 'master' 作为初始分支的名称。这个默认分支名称可能会更改。要在新仓库中
提示:配置使用初始分支名,并消除这条警告,请执行:
提示:
提示: git config --global init.defaultBranch <名称>
提示:
提示:除了 'master' 之外,通常选定的名字有 'main'、'trunk' 和 'development'。
提示:可以通过以下命令重命名刚创建的分支:
提示:
提示: git branch -m <name>
已初始化空的 Git 仓库于 /home/git/test/
$ git init test
Initialized empty Git repository in C:/Users/Administrator/test/.git/
//测试
$ cd ./test1 && echo "hello world" >index.html
$ git add .
$ git commit -m"commit one"
[master (root-commit) xxxxxx] commit one
1 file changed, 1 insertion(+)
create mode 100644 index.html
$ git remote add origin ssh://git@服务器IP/home/git/test1
//增加本地远程分支
//关联远程分支与本地master分支
$ git push --set-upstream origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 217 bytes | 217.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To ssh://服务器IP/home/git/test
* [new branch] master -> master
branch 'master' set up to track 'origin/master'.
测试成功!
在任何一台安装Git有客户端机子里,都可以运行:
$git clone ssh://git@服务器IP/home/git/test
实现代码共享
最新评论
大家一起努力!!加油!