当前位置: 首页 > news >正文

三只松鼠的网站建设理念云开发网站

三只松鼠的网站建设理念,云开发网站,苗木网站模版,专业网站设计力荐亿企邦Git基础之远程服务器 Author:onceday date:2023年3月5日 满满长路有人对你微笑过嘛… windows安装可参考文章:git简易配置_onceday_CSDN博客 參考文档: 《progit2.pdf》,Progit2 Github。《git-book.pdf》 文章目…

Git基础之远程服务器

Author:onceday date:2023年3月5日

满满长路有人对你微笑过嘛…

windows安装可参考文章:git简易配置_onceday_CSDN博客

參考文档:

  • 《progit2.pdf》,Progit2 Github。
  • 《git-book.pdf》

文章目录

      • Git基础之远程服务器
        • 1.概述
        • 2. 创建裸仓库
        • 3. Git 守护进程
        • 4. HTTP协议

1.概述

远程仓库可以是一个裸仓库(base repository),即一个没有当前工作目录的仓库,只包含.git文件夹里面的内容。

可以通过四种协议来传输资料:

  • 本地协议Local,远程库是同一主机上的另外一个目录,通常通过共享文件系统实现。如果将所有代码都存放于同一台电脑,不是一个好主意。可以使用/srv/git/my.gitfile:///srv/git/mygit,如果没有指定file://,Git会尝试使用硬链接(hard link)或直接赋值所需的文件,如果指定file://,Git会触发平时用于网路传输资料的进程,效率可能会低一些。

    如下是一个示例:

    git clone /home/ubuntu/c-code/.git
    git add local /home/ubuntu/c-code/.git
    
  • HTTP协议,有智能协议(可以根据需要提供匿名服务或者加密授权服务)和哑协议两种(web服务器提供静态服务)。

  • SSH(secure Shell)协议,常见的安全和加密传输协议。

  • Git协议,这是包含在Git里的一个特殊守护进程,不能提供授权和加密服务,传输速率快。

一般来说HTTP协议和Git协议可用于大型开源代码的分享服务器,如果是可控开发,还是需要用到HTTPS协议和SSH协议。

2. 创建裸仓库

Git仓库需要创建裸仓库,通常需要从现有仓库中导出,裸仓库不能包含当前工作目录。

ubuntu->git-test:$ git clone --bare cc cc.git
Cloning into bare repository 'cc.git'...
done.
ubuntu->git-test:$ ll cc.git/
total 44
drwxrwxr-x  7 ubuntu ubuntu 4096 Mar  5 13:07 ./
drwxrwxr-x  4 ubuntu ubuntu 4096 Mar  5 13:07 ../
drwxrwxr-x  2 ubuntu ubuntu 4096 Mar  5 13:07 branches/
-rw-rw-r--  1 ubuntu ubuntu  116 Mar  5 13:07 config
-rw-rw-r--  1 ubuntu ubuntu   73 Mar  5 13:07 description
......
ubuntu->git-test:$ ll cc
total 112
drwxrwxr-x 3 ubuntu ubuntu  4096 Mar  5 12:51 ./
drwxrwxr-x 4 ubuntu ubuntu  4096 Mar  5 13:07 ../
-rw-rw-r-- 1 ubuntu ubuntu  8124 Mar  5 12:48 .clang-format
drwxrwxr-x 8 ubuntu ubuntu  4096 Mar  5 12:48 .git/
-rw-rw-r-- 1 ubuntu ubuntu     6 Mar  5 12:48 .gitignore
-rw-rw-r-- 1 ubuntu ubuntu    63 Mar  5 12:48 makefile
-rw-rw-r-- 1 ubuntu ubuntu   408 Mar  5 12:48 socket.c
......

如上所示,使用git clone --bare project project.git即可,project是当前git仓库的目录路径,project.git是新的裸仓库的目录路径。注意project.git是目录不是文件,后缀.git是惯例使用,而非必须

上述命令的效果和cp -Rf project/.git project.git是基本等价的,但配置文件有些许不同。

可以看到,裸仓库中只有.git中的文件,而没有当前工作目录的内容

创建好仓库后,可以通过SSH协议把文件复制到服务器上(需要先将SSH公钥放在服务器上):

scp -r cc.git ubuntu@onceday.work:/home/ubuntu/git-test/

然后便可以使用ssh来读取此服务器上/home/ubuntu/git-test/目录来克隆对应仓库。

git clone ubuntu@onceday.work:/home/ubuntu/git-test/cc.git

如果SSH连接用户对该目录拥有可写入权限,那么他就拥有推送权限

使用SSH连接直接初始化git裸仓库的命令如下:

git init --bare --shared

对于小型项目,上面的SSH+裸仓库已够用,只需通过对不同成员的账号进行管理即可。

对于用于ssh连接的账户,其shell可以设置为git-shell,可以方便地将用户git的活动限制在与Git相关的范围内。更换ssh连接使用下述命令即可:

$ cat /etc/shells 		# see if git-shell is already in there. If not...
$ which git-shell 		# make sure git-shell is installed on your system.
$ sudo -e /etc/shells 	# and add the path to git-shell from last command
$ sudo chsh git -s $(which git-shell) # 修改指定系统用户的shell

设置为git-shell的用户,其只能利用SSH连接对Git仓库进行推送和拉取操作,而不能登录机器并取得普通shell。任何试图登入,都会被拒绝。

3. Git 守护进程

这是创建一个Git协议的服务器,具体过程请参考progit2书籍。

开启该服务器很简单,如下:

$ git daemon --reuseaddr --base-path=/srv/git/ /srv/git/
  • --reuseaddr,选项允许服务器在无需等待旧连接超时的情况下重启。
  • --base-path,选项允许用户在未完全 指定路径的条件下克隆项目, 结尾的路径将告诉 Git 守护进程从何处寻找仓库来导出。
  • 如果有防火墙正在运 行,你需要开放端口 9418 的通信权限。

目前的Linux系统通常使用systemd提供系统服务管理能力,如下配置:

[Unit]
Description=Start Git Daemon
[Service]
ExecStart=/usr/bin/git daemon --reuseaddr --base-path=/srv/git/ /srv/git/
Restart=always
RestartSec=500ms
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=git-daemon
User=git
Group=git
[Install]
WantedBy=multi-user.target

将该文件的内容放在/etc/systemd/system/git-daemon.service中即可,操作主要使用接来下几个命令:

  • systemctl enable git-daemon,使能该服务,在系统启动时能自动运行。
  • systemctl start git-daemon,启动该服务。
  • systemctl stop git-daemon,停止该服务。
  • systemctl restart git-daemon,重启该服务。
  • systemctl disable git-daemon,关闭该服务,后续不会随系统自启动。

通过在目标仓库下创建git-daemon-export-ok文件可以允许Git提供无需授权的项目访问服务。

4. HTTP协议

关于这个协议,详情请参考progit2书籍。

这个一般是借助web服务器来实现,这里推荐一下现代化的工具,即GitLab,该工具是开源的,可以用来搭建私有的git 服务器,详情可以参考官方网站:GitLab.org / GitLab FOSS · GitLab。

web服务器来实现,这里推荐一下现代化的工具,即GitLab,该工具是开源的,可以用来搭建私有的git 服务器,详情可以参考官方网站:GitLab.org / GitLab FOSS · GitLab。

http://www.yayakq.cn/news/735385/

相关文章:

  • 自己做报名网站教程网站统计帮哪个好
  • 云数据库可以做网站吗手机网站设计
  • 网站如何推广营销柳州建设公司网站
  • 猴王水果竞猜网站建设购买已备案域名
  • 做电影网站要买什么推广策划方案
  • 修改网站dnswordpress 主题丢失
  • 企业展示网站如何建怎样制作表白网站
  • 多语种外贸网站建设如何给网站做提升
  • 江苏徐州网站建设廊坊市建设局网站
  • 网站建设及推广的书手机网站Com
  • 山东省建设厅的网站做网站卖机器
  • 电商网站的建设步骤南京房产网
  • 如何利用tp-link按错900做网站仓库管理系统需求分析
  • 网站 设计 案例 简单黄页88和58那个推广好
  • 电子商务如何设计网站建设软件定制开发方案模板
  • 安徽省建设厅证书查询官方网站宁夏电力建设工程公司外部网站
  • 孝义网站开发专业旅游网站制作
  • 无锡网络建站wordpress tag标签多
  • 越南的网站建设浙江网站开发
  • 汕头企业建站襄阳网站建设关于飞鱼
  • 搭建一个网站 优帮云怎么把东西发布到网上卖
  • 网站建设找哪家公司wordpress 手机版
  • 宁夏建网站报价网站做推荐链接端口
  • 罗湖区住房和建设网站如何做超市的网站
  • 做钢丝绳外贸的网站百度网站流量查询
  • 做机械的外贸网站建筑木工模板包工价格
  • 网站 关键词 选择网站免费源码
  • 阿里云用什么系统做网站好明星网页设计
  • 怎么在静态网站基础上加动态网站可以免费看
  • 网站建设公司的年报狠狠做最新网站