git 历史版本导出_Git基础知识(九)
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基础知识(九)相关推荐
- eclipse查看代码git历史_Eclipse中GIT历史版本比较和回退
Eclipse中GIT历史版本比较和回退 我们开发的时候,经常会遇到业务变化或者代码实现逻辑改变,有时候需要参考或者回退历史版本,我们看看eclispe里如何操作? 查看主分支历史版本 右击代码文件- ...
- git 分支复制_Git基础知识(五)
Git基础知识(五) 分支 都说Git的分支是它的必杀技特性,由于没有接触过太多的版本管理工具,就使用过的SVN来说,两者真的差别巨大.SVN创建一个分支,需要将内容复制一遍!这个时间真的是非常的漫长 ...
- 码云如何下载历史版本代码_git和码云的使用
码云是开源中国社区2013年推出的基于 Git 的完全免费的代码托管服务,这个服务是基于 Gitlab 开源软件所开发的,我们在 Gitlab 的基础上做了大量的改进和定制开发,目前已经成为国内最大的 ...
- git:历史版本回滚、重新回到最新版本及取消修改内容
重新检出历史版本 场景:需要回到之前的版本,修改参数执行一下代码 查看历史版本号 git log -10 #查看最近10次commit的记录 检出历史版本 git checkout <版本号&g ...
- Java基础知识(九) 容器
Java基础知识 1. Java Collections 框架是什么 2. 什么是迭代器 3. ArrayList.Vector 和 LinkedList 有什么区别 4. HashMap.Hasht ...
- sqlserver evaluation是什么版本_SQL Server 基础知识
目录 什么是 SQL Server? 安装 关键概念 系统数据库(System Databases) 登录名与数据库用户(Login and user) 身份验证模式(Authentication M ...
- git 历史操作日志_Git - 查看提交历史
查看提交历史 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史. 完成这个任务最简单而又有效的工具是 git log 命令. 我们使用一个非常简单的 "simplegit& ...
- git 历史操作日志_git的历史记录
git的历史记录 1.查看git日志 git log 查看全部commit信息 git log -p 查看全部commit信息 ...
- Git 历史版本 for Windows
Git for Windows 国内下载站 Git for Windows. 国内直接从官网(http://git-scm.com/download/win)下载比较困难,需要翻墙.这里提供一个国内的 ...
最新文章
- 按 结构记录的 相关字段 快速排序
- 22/100. Find All Anagrams in a String
- HDU2021多校第五天 1009 Array-树状数组求二阶前缀和
- Apache Tomcat 7 Configuration BIO NIO AIO APR ThreadPool
- springBoot 解决前后端分离项目中跨越请求,同源策略
- 电脑开机启动修复无法自动修复此计算机,Win7系统开机无法自动修复此计算机如何解决...
- oracle的关键字
- cad图纸问号怎么转换文字_CAD打开图纸后字体显示为问号,这样解决治标治本(送)...
- Linux 五种IO模型
- 构造函数和复制函数java_用Java复制构造函数
- 计算机高手如何操作键盘,从小白到高手 游戏键盘驱动全面解析
- OLLYDBG使用笔记
- ARM学习-GNU ARM汇编
- MySQL的计算时间差
- 论文复刻:排污权机制是否提高了企业全要素生产率(附代码、数据、原文献)
- 大数据新闻推送你怎么看_大数据分析表明:新闻越“假”转发越多!你知道为什么吗?...
- 最新淘宝店铺宝贝PC电脑端隐藏屏蔽技术
- WPF——ContentPresenter
- D3D渲染技术之混合案例
- 多线程编程的目标与挑战
热门文章
- 风压和功率计算公式轴流式_水泵和风机的功率计算及风量、风压的附加系数
- 信息学奥赛一本通 2005:【20CSPJ普及组】直播获奖 | 洛谷 P7072 [CSP-J2020] 直播获奖
- 信息学奥赛一本通(1209:分数求和)
- 信息学奥赛一本通(1185:单词排序)
- Protecting the Flowers(POJ-3262)
- 信息学奥赛C++语言:蒙氏数学难题
- 倒计时按钮_办公小技巧:轻松玩转PPT秒针倒计时
- php静态资源服务器,Node实现静态资源服务器
- C语言单片机等待询问_单片机很好玩8,温度太高就报警,制作一个智能室内温度湿度计...
- OpenCV辅助对象(help objects)(5)_DataType