Git基础知识(九)

一个远程仓库通常只是一个裸仓库: 一个没有当前工作目录的仓库。

简单的说,裸仓库就是你工程目录内的 .git 子目录内容,不包含其他资料。

协议

  • 本地协议
  • HTTP协议
  • SSH协议
  • Git协议

本地协议

使用本地的一个文件夹当作仓库的时候,将它使用文件共享给其他人。

$ git clone /opt/git/project.git # 本机$ git clone file:///opt/git/project.git #共享文件

增加一个本地版本到Git项目

$ git remote add local_proj /opt/git/project.git
  • 优点

简单,直接使用了现有的文件权限和网络访问权限。

  • 缺点

不方便从多个位置访问。

并不保护仓库避免意外的损坏,每一个用户都有“远程”目录的完整 shell 权限,没有方法可以 阻止他们修改或删除 Git 内部文件和损坏仓库。

HTTP协议

  • Git 1.6.6之前的HTTP协议是只读模式的,又称为「哑」HTTP协议。
  • Git 1.6.6之后的HTTP协议,又称「智能」HTTP协议。

可以使用 HTTP 协议的用户名/密码的基础 授权,免去设置 SSH 公钥。

相比 SSH 协议,可以使用用户名/密码授权是一个很大的优势,这样用户就不必须在使用 Git 之前先在本地生成 SSH 密钥对再把公钥上传到服务器。

SSH协议

SSH 协议也是一个验证授权的网络协议;

克隆的方法:

# 1$ git clone ssh://user@server/project.git# 2$ git clone user@server:project.git

优点:

  • 通过 SSH 访问是安全的「 所有传输数据都要经过授权和加密。」
  • SSH 协议很高效,在传输前也会尽量压缩数据。

缺点:

  • 不能匿名访问(即使是只读数据)

Git协议

包含在 Git 里的一个特殊的守护进程。

它监听在一个特定的端口「9418」。

要让版本库支持 Git 协议,需要先创建一个 git-daemon-export-ok 文 件 :它是 Git 协议守护进程为这个版本库提供服务的必要条件 「但是除此之外没有任何安全措施」。 要么谁都可以克隆这个版本库,要么谁也不能。 由于没有授权机制,一旦开放推送操作,意味着网络上知道这个项目 URL 的人都可以向项目推送数据。

优点:最快

缺点:缺乏授权机制

搭建Git仓库

导出裸仓库

我们需要导出一个「不包含当前工作目录的仓库」

$ git clone --bare Git_study Git_study.git

导出裸仓库

把仓库放到服务器上

假设使用我的阿里云设备来当服务器

我在/home/zx路径下新建一个文件夹git_study

存放路径:/home/zx/git_study

$ scp -r Git_study.git zx@123.56.13.233://home/zx/git_study

上传至服务器

下面看一下阿里云上的内容

服务器侧

克隆内容

$ git clone zx@123.56.13.233:/home/zx/git_study/Git_study.git

普通克隆

也可以将这个仓库进行修改,使其拥有推送权限。

运行 git init 命令,并加上 --shared 选项,那么 Git 会自动修改该仓库目录的组权限 为可写。

$ ssh zx@123.56.13.233$ cd /home/zx/git_study/Git_study.git$ git init --bare --shared# Reinitialized existing shared Git repository in /home/zx/git_study/Git_study.git/

增加权限

由于我大部分时间都是使用的HTTP来进行Git操作,所以SSH相关内容就不画蛇添足了。

有很多优秀的代码托管平台可以选择:https://git.wiki.kernel.org/index.php/GitHosting

代码托管

欢迎关注我的公众号:zx94_11

git 历史版本导出_Git基础知识(九)相关推荐

  1. eclipse查看代码git历史_Eclipse中GIT历史版本比较和回退

    Eclipse中GIT历史版本比较和回退 我们开发的时候,经常会遇到业务变化或者代码实现逻辑改变,有时候需要参考或者回退历史版本,我们看看eclispe里如何操作? 查看主分支历史版本 右击代码文件- ...

  2. git 分支复制_Git基础知识(五)

    Git基础知识(五) 分支 都说Git的分支是它的必杀技特性,由于没有接触过太多的版本管理工具,就使用过的SVN来说,两者真的差别巨大.SVN创建一个分支,需要将内容复制一遍!这个时间真的是非常的漫长 ...

  3. 码云如何下载历史版本代码_git和码云的使用

    码云是开源中国社区2013年推出的基于 Git 的完全免费的代码托管服务,这个服务是基于 Gitlab 开源软件所开发的,我们在 Gitlab 的基础上做了大量的改进和定制开发,目前已经成为国内最大的 ...

  4. git:历史版本回滚、重新回到最新版本及取消修改内容

    重新检出历史版本 场景:需要回到之前的版本,修改参数执行一下代码 查看历史版本号 git log -10 #查看最近10次commit的记录 检出历史版本 git checkout <版本号&g ...

  5. Java基础知识(九) 容器

    Java基础知识 1. Java Collections 框架是什么 2. 什么是迭代器 3. ArrayList.Vector 和 LinkedList 有什么区别 4. HashMap.Hasht ...

  6. sqlserver evaluation是什么版本_SQL Server 基础知识

    目录 什么是 SQL Server? 安装 关键概念 系统数据库(System Databases) 登录名与数据库用户(Login and user) 身份验证模式(Authentication M ...

  7. git 历史操作日志_Git - 查看提交历史

    查看提交历史 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史. 完成这个任务最简单而又有效的工具是 git log 命令. 我们使用一个非常简单的 "simplegit& ...

  8. git 历史操作日志_git的历史记录

    git的历史记录 1.查看git日志 git log                     查看全部commit信息 git log -p                  查看全部commit信息 ...

  9. Git 历史版本 for Windows

    Git for Windows 国内下载站 Git for Windows. 国内直接从官网(http://git-scm.com/download/win)下载比较困难,需要翻墙.这里提供一个国内的 ...

最新文章

  1. 按 结构记录的 相关字段 快速排序
  2. 22/100. Find All Anagrams in a String
  3. HDU2021多校第五天 1009 Array-树状数组求二阶前缀和
  4. Apache Tomcat 7 Configuration BIO NIO AIO APR ThreadPool
  5. springBoot 解决前后端分离项目中跨越请求,同源策略
  6. 电脑开机启动修复无法自动修复此计算机,Win7系统开机无法自动修复此计算机如何解决...
  7. oracle的关键字
  8. cad图纸问号怎么转换文字_CAD打开图纸后字体显示为问号,这样解决治标治本(送)...
  9. Linux 五种IO模型
  10. 构造函数和复制函数java_用Java复制构造函数
  11. 计算机高手如何操作键盘,从小白到高手 游戏键盘驱动全面解析
  12. OLLYDBG使用笔记
  13. ARM学习-GNU ARM汇编
  14. MySQL的计算时间差
  15. 论文复刻:排污权机制是否提高了企业全要素生产率(附代码、数据、原文献)
  16. 大数据新闻推送你怎么看_大数据分析表明:新闻越“假”转发越多!你知道为什么吗?...
  17. 最新淘宝店铺宝贝PC电脑端隐藏屏蔽技术
  18. WPF——ContentPresenter
  19. D3D渲染技术之混合案例
  20. 多线程编程的目标与挑战

热门文章

  1. 风压和功率计算公式轴流式_水泵和风机的功率计算及风量、风压的附加系数
  2. 信息学奥赛一本通 2005:【20CSPJ普及组】直播获奖 | 洛谷 P7072 [CSP-J2020] 直播获奖
  3. 信息学奥赛一本通(1209:分数求和)
  4. 信息学奥赛一本通(1185:单词排序)
  5. Protecting the Flowers(POJ-3262)
  6. 信息学奥赛C++语言:蒙氏数学难题
  7. 倒计时按钮_办公小技巧:轻松玩转PPT秒针倒计时
  8. php静态资源服务器,Node实现静态资源服务器
  9. C语言单片机等待询问_单片机很好玩8,温度太高就报警,制作一个智能室内温度湿度计...
  10. OpenCV辅助对象(help objects)(5)_DataType