搭建自己的git代码服务器

mac2022-07-01  6

一直以来想在家搭建一个自己的git代码服务器,国庆假期终于有时间搞一搞了。这样自己在笔记本上辛辛苦苦写的代码,就可以备份到linux主机上,再也不担心某天笔记本电脑硬盘挂了,或者电脑挂了,而丢失代码。

资源:

一台 linux主机(作为git服务器来托管)一台win7笔记本电脑(使用win7笔记本作为日常开发电脑)

准备工作:

      在linux主机上安装git:sudo apt-get install git      在笔记本电脑上安装windows版本的git,非常简单,附上连接https://git-scm.com/downloads

假设以上工作已经完成,接着就开始搭建git服务器。

windowns端:

启动git bash,这里模拟了一个linux环境,里面有git的命令,及vi命令,非常的方便,当然有些用户可能习惯使用windows GUI工具也是可以的,我们暂且不说。在e盘下新建source_code目录,并切换到此目录生成公钥  ssh-keygen

连续按几次enter就生成了在C:\Users\sc\.ssh下有个id_rsa.pub文件就是公钥,我们需要把此文件中的内容copy到linux主机中对应的位置,下文中会有详细说明。

Linux端:

 需要增加一个名为git的用户,并在git用户的目录下新建一个.ssh文件夹,并在.ssh文件夹中创建authorized_keys文件 

     

sudo adduser git su git cd mkdir .ssh cd .ssh touch authorized_keys

创建authorized_keys文件是目的是为了把各个用户的公钥存放在这个文件中,只有把这些公钥存放在这里,对应的用户才有权限访问我们的代码服务器。把上文中在windows中创建的id_rsa.pub文件中的内容拷贝到authorized_keys中并保存。

2.创建代码目录,假设我们创建为project.git

mkdir project.git cd project.git

3.将project.git初始化为空仓库,使用--bare选项

git@sc-System-Product-Name:~/project.git$ git --bare init Initialized empty Git repository in /home/git/project.git/

现在我们已经在服务器端初始化完成了一个空仓库。

windows端:

sc@sc-PC MINGW64 /e/source_code $ mkdir code_test sc@sc-PC MINGW64 /e/source_code $ cd code_test/ sc@sc-PC MINGW64 /e/source_code/code_test

在code_test里面新建文件

sc@sc-PC MINGW64 /e/source_code/code_test $ ls test.c

使用命令行对code_test文件夹做初始化,并做一次git 初始化提交

sc@sc-PC MINGW64 /e/source_code/code_test $ git init Initialized empty Git repository in E:/source_code/code_test/.git/ sc@sc-PC MINGW64 /e/source_code/code_test (master) $ git add . warning: LF will be replaced by CRLF in test.c. The file will have its original line endings in your working directory. sc@sc-PC MINGW64 /e/source_code/code_test (master) $ git commit -m "initial commit" [master (root-commit) 6b7e181] initial commit warning: LF will be replaced by CRLF in test.c. The file will have its original line endings in your working directory. 1 file changed, 1 insertion(+) create mode 100644 test.c

将本地仓库的远端添加为linux主机中的空仓库

git remote add origin git@192.168.1.105:/home/git/project.git

PS:git remote rm origin 可以删除已经存在的远端地址。

 

并push到远端

$ git push origin master git@192.168.1.105's password: Counting objects: 3, done. Writing objects: 100% (3/3), 228 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To git@192.168.1.105:/home/git/project.git * [new branch] master -> master

可以看到我们已经提交成功。

$ git remote -v origin git@192.168.1.105:/home/git/project.git (fetch) origin git@192.168.1.105:/home/git/project.git (push)

在另外一个目录中做一次拉取测试

sc@sc-PC MINGW64 /e/source_code/one $ git clone git@192.168.1.105:/home/git/project.git Cloning into 'project'... git@192.168.1.105's password: remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0) Receiving objects: 100% (3/3), done. Checking connectivity... done. sc@sc-PC MINGW64 /e/source_code/one $ ls project/ sc@sc-PC MINGW64 /e/source_code/one $ cd project/ sc@sc-PC MINGW64 /e/source_code/one/project (master) $ ls test.c

好了,现在已经完全ok了,可以愉快的提交代码了。后面更复杂的git用户管理,团队合作等用法,后面有时间再更新。

 

 

 

 

 

 

 

 

最新回复(0)