linux上搭建git服务器之5(git服务器)

Posted 狂奔的CD

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux上搭建git服务器之5(git服务器)相关的知识,希望对你有一定的参考价值。

正文

参考 https://git-scm.com/book/zh/v2/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E5%8D%8F%E8%AE%AE

1 协议

1)本地协议
克隆一个本地版本库,可以执行如下的命令:

$ git clone /srv/git/project.git

或你可以执行这个命令:

$ git clone file:///srv/git/project.git

如果在 URL 开头明确的指定 file://,那么 Git 的行为会略有不同。 如果仅是指定路径,Git 会尝试使用硬链接(hard link)或直接复制所需要的文件。 如果指定 file://,Git 会触发平时用于网路传输资料的进程,那样传输效率会更低。

2)HTTP 协议

3)SSH 协议
通过 SSH 协议克隆版本库,你可以指定一个 ssh:// 的 URL:

$ git clone ssh://[user@]server/project.git

或者使用一个简短的 scp 式的写法:

$ git clone [user@]server:project.git

  1. Git 协议

2 建造一个基于ssh的git服务器

1)首先得有个本地仓库,参考前几节的内容,创建自己的本地仓库

#进入目标目录
cd xxx
#初始化仓库
git init
#创建ignore,并编辑要忽略的文件
sudo vim .gitignore
#添加追踪文件
git add xxxx
#提交
git commit -m '初始版本'

2) 导出裸仓库
需要把现有仓库导出为裸仓库——即一个不包含当前工作目录的仓库

git clone --bare ./ xxx.git

将本地项目 ./ 中的.git 导出为 xxx.git

  1. 把裸仓库放到服务器上
    由于局域网内可以互相ssh,就把本机当作服务器,把xxx.git存放到git专用目录下
    /srv/git/xxx.git

sudo mkdir /srv/git
sudo mv -if xxx.git /srv/git

这样远程仓库就有了,原来的项目可以废掉了。

4)从远程仓库下载到本地

git clone xxx@localhost:/srv/git/xxx.git

就哦了

ps: 作为python 项目 , pycharm直接有对git的可视化支持,好用的不要不要的。

3 远程仓库更新

push 提交到远程仓库
pull 拉取远程仓库并合并
fetch 拉取远程仓库
reset 将本地仓库回滚到某次提交 ,–hard将删除该次提交后面的所有提交
revert 还原某次提交,(如果一不小心将错误提交到远程仓库,通过该手段,先将本地仓库revert,然后再次push即可)

以上是关于linux上搭建git服务器之5(git服务器)的主要内容,如果未能解决你的问题,请参考以下文章

linux上搭建git服务器之1(git介绍)

linux上搭建git服务器之3(git远程仓库)

Git版本控制之ubuntu搭建Git服务器

在 linux 上搭建自己的 git 服务器

阿里云 linux搭建git服务器

怎么在gitlab上面创建远程仓库