首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Git最全系列教程(四)

本章第一节将介绍可用的协议以及各自优缺点。下面一节将介绍一些针对各个协议典型的设置以及如何在服务器上实施。...简单地说,裸仓库就是你工作目录中 .git 子目录内的内容。 4.1 协议 Git 可以使用四种主要的协议来传输数据:本地传输,SSH 协议,Git 协议和 HTTP 协议。...下面分别介绍一下哪些情形应该使用(或避免使用)这些协议。 值得注意的是,除了 HTTP 协议外,其他所有协议都要求在服务器端安装并运行 Git。...基于网页的 GitWeb 用户界面 如果想看看自己项目的效果,不妨用 Git 自带的一个命令,可以使用类似 lighttpd 或 webrick 这样轻量级的服务器启动一个临时进程。...如果是在防火墙之内的服务器上,可用于支撑大量参与人员或自动系统(用于持续集成或编译的主机)只读访问的项目,这样可以省去逐一配置 SSH 公钥的麻烦。 但不管哪种情形,Git 协议的配置设定都很简单。

1.6K10

代码托管从业者 Git 指南

;另一类是没有工作区的存储库,就是裸存储库,在代码托管平台的服务器上,存储库几乎都是以裸存储库的方式存储的。...时,则会从设置的钩子目录查找钩子 info D 存储库信息 dump 协议依赖,但目前 dump 协议已无人问津 objects D 存储库对象存储目录 refs D 存储库引用存储目录 packed-refs...,也可以使用 GIT_CURL_VERBOSE=2 GIT_TRACE_PACKET=2 这样设置环境变量后运行相关命令调试 Git,在 Windows 中可以使用我编写的包管理器 baulk (https...在实施 Git Over TCP (git://) 服务器时,只需要解析第一个 pktline 数据包即可,git:// 协议简单,表达能力有限,没有足够的权限验证,公有云除了 GitHub 其他平台使用的较少...在讨论伸缩性之前,我们要解释一下分布式文件系统为什么不适合大型代码托管平台。 Git 的计算压力并没有随着分布式文件系统的扩展性而分摊。

1.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    git: 四种git协议 (本地协议、HTTP 协议、SSH协议、 Git 协议)

    最后,如果你不介意托管你的代码在其他人的服务器,且不想经历设置与维护自己服务器的麻烦,可以试试我们介绍的几个仓库托管服务。...只需要像设置其他共享目录一样,把一个裸版本库的副本放到大家都可以访问的路径,并设置好读/写的权限,就可以了, 我们会在 在服务器上搭建 Git 讨论如何导出一个裸版本库。...最终,这个协议并不保护仓库避免意外的损坏。 每一个用户都有“远程”目录的完整 shell 权限,没有方法可以阻止他们修改或删除 Git 内部文件和损坏仓库。...哑 HTTP 协议里 web 服务器仅把裸版本库当作普通文件来对待,提供文件服务。 哑 HTTP 协议的优美之处在于设置起来简单。...相比 SSH 协议,可以使用用户名/密码授权是一个很大的优势,这样用户就不必须在使用 Git 之前先在本地生成 SSH 密钥对再把公钥上传到服务器。

    18.4K20

    4.1 服务器上的 Git - 协议

    最后,如果你不介意托管你的代码在其他人的服务器,且不想经历设置与维护自己服务器的麻烦,可以试试我们介绍的几个仓库托管服务。...在此,我们将会讨论那些协议及哪些情形应该使用(或避免使用)他们。 本地协议 最基本的就是 本地协议(Local protocol) ,其中的远程版本库就是硬盘内的另一个目录。...最终,这个协议并不保护仓库避免意外的损坏。 每一个用户都有“远程”目录的完整 shell 权限,没有方法可以阻止他们修改或删除 Git 内部文件和损坏仓库。...哑 HTTP 协议里 web 服务器仅把裸版本库当作普通文件来对待,提供文件服务。 哑 HTTP 协议的优美之处在于设置起来简单。...相比 SSH 协议,可以使用用户名/密码授权是一个很大的优势,这样用户就不必须在使用 Git 之前先在本地生成 SSH 密钥对再把公钥上传到服务器。

    1.3K40

    代码托管从业者 Git 指南

    ;另一类是没有工作区的存储库,就是裸存储库,在代码托管平台的服务器上,存储库几乎都是以裸存储库的方式存储的。...,也可以使用 GIT\_CURL\_VERBOSE=2 GIT\_TRACE\_PACKET=2 这样设置环境变量后运行相关命令调试 Git,在 Windows 中可以使用我编写的包管理器 baulk...这里需要注意,实施 Git Over HTTP 服务器时,Git 客户端需要在 POST 请求响应最开始添加 001e# service=git-upload-pack\n0000,另外我们还需要正确的设置...在实施 Git Over TCP (git://) 服务器时,只需要解析第一个 pktline 数据包即可,git:// 协议简单,表达能力有限,没有足够的权限验证,公有云除了 GitHub 其他平台使用的较少...在讨论伸缩性之前,我们要解释一下分布式文件系统为什么不适合大型代码托管平台。 Git 的计算压力并没有随着分布式文件系统的扩展性而分摊。

    1.2K30

    JAVAEE工程师系列技术之分布式版本控制系统git

    由于没有git目录了,先进行了初始化的操作 git init 设置用户信息 git config --global user.name "laozhang" git config --global user.email...不管是有意还是无心 在Git中如果不小心把文件或目录删除了,是可以挽救回来的,这也是使用版本控制系统最主要的原因之一。...会切换到指定的分支,但如果后面接的是文件名或路径,Git则不会切换分支,而是把文件从.git目录中复制一份到当前的工作目录。...-- 如果手动无法创建,则使用该命令。...你认为的分支是什么样的 分支是什么 有人可能认为,所谓的“开分支”,就是把文件先复制到另外的目录,然后进行改动,之后再合并,把文件与原本的文件比对之后放回原来的目录……其实,Git不是这样做的。

    12110

    搭建Git服务器并感受hook使用

    通常情况下我们都是将项目托管到Github,Coding等服务商。如果你有一台自己的Linux云主机,在上面搭建Git服务器比想象中要简单的多。.../.ssh 目录,并设置权限 sudo chmod 700 /home/git/.ssh chmod 600 authorized_keys # 创建项目目录,这里没有放到用户目录下 mkdir -...# 建立一个裸仓库并设置该仓库目录的组权限为可写。 # 裸仓库就是一个只包含.git子目录的内容,不包含其他资料。...但是Github还支持HTTP协议,比如 https://github.com/mafeifan/smzdm.git 想达到同样的目的,需要在服务器上针对apache或nginx配置 git-http-backend...使用服务器的hook 每当本地push代码,还得在服务器上git pull。这样太麻烦了。git支持hook机制,类似事件通知,比如git服务器收到push请求,并且接受完代码提交时触发。

    1.3K20

    Git基础知识(九)

    一个远程仓库通常只是一个裸仓库: 一个没有当前工作目录的仓库。 简单的说,裸仓库就是你工程目录内的 .git 子目录内容,不包含其他资料。...协议 本地协议 HTTP协议 SSH协议 Git协议 本地协议 使用本地的一个文件夹当作仓库的时候,将它使用文件共享给其他人。...并不保护仓库避免意外的损坏,每一个用户都有“远程”目录的完整 shell 权限,没有方法可以 阻止他们修改或删除 Git 内部文件和损坏仓库。...可以使用 HTTP 协议的用户名/密码的基础 授权,免去设置 SSH 公钥。...相比 SSH 协议,可以使用用户名/密码授权是一个很大的优势,这样用户就不必须在使用 Git 之前先在本地生成 SSH 密钥对再把公钥上传到服务器。

    58340

    Git图文使用教程详解一

    如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。...# 1.4、Git 简史 # 1.5、Git 工作机制 # 1.6 Git 和代码托管中心 代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为 远程库 。 # 2....Git 安装 Git 官网 查看 GNU 协议,可以直接点击下一步。 选择 Git 安装位置,要求是非中文并且没有空格的目录,然后下一步。 Git 选项配置,推荐默认设置,然后下一步。...Git 安装目录名,不用修改,直接点击下一步。 Git 的默认编辑器,建议使用默认的 Vim 编辑器,然后点击下一步。...注意:这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任何关系。

    26830

    Git 版本管理工具(一)

    低速的网络会让人心情烦躁,有时候就呆呆地盯着屏幕上的 commit 进度,什么事情也干不了。而没有网络连接更是致命的:你无法 commit !...而在合并模式下,用户可以随意编辑或更改文件,但可能随时会被通知存在冲突(两个或多个用户同时编辑同一文件),于是版本控制工具或用户需要合并更改以解决这种冲突。...(4)变更范围(Scope of change):描述了版本编号是针对单个文件还是整个目录树。 (5)网络协议(Network protocols):描述了多个版本库间进行同步时采用的网络协议。...安装的过程很简单,基本上可以使用默认设置。只是在设置路径的时候要注意一下,为了避免与Windows路径导致的意外情况,还是使用“Use Git Bash Only”比较安全。...5、 Git 服务相关 1、  建立Git远程服务器: 目前貌似还没有在Windows上建立Git服务器的,足见Linux在开源社区里强大的优势啊!

    2K30

    git版本管理工具介绍(git管理工具有哪些)

    低速的网络会让人心情烦躁,有时候就呆呆地盯着屏幕上的 commit 进度,什么事情也干不了。而没有网络连接更是致命的:你无法 commit !...(4)变更范围(Scope of change):描述了版本编号是针对单个文件还是整个目录树。 (5)网络协议(Network protocols):描述了多个版本库间进行同步时采用的网络协议。...安装的过程很简单,基本上可以使用默认设置。只是在设置路径的时候要注意一下,为了避免与Windows路径导致的意外情况,还是使用“Use Git Bash Only”比较安全。...因此,为了避免麻烦,最好避免使用中文的文件名、目录名和用户名等 (原文,请参考我在百度空间的博客:Git 界面GUI和命令行Command两种操作方式) (3) 设定GitHub 要使用GitHub,首先需要创建...5、 Git 服务相关 1、 建立Git远程服务器: 目前貌似还没有在Windows上建立Git服务器的,足见Linux在开源社区里强大的优势啊!

    6.6K11

    MacLinuxWindows如何从零开始搭建Hexo静态博客并部署到远程平台

    确保: Windows用户确保cmd或powershell运行目录在刚刚创建的的Hexo文件夹内; Mac或Linux用户确保Termminal运行目录在刚刚创建的的Hexo文件夹内; 注意⚠️:这个目录...但是需要注意: Gitee无法自定义域名,也就是你无法绑定自己的域名;且后续官方开放域名绑定、解析,也需要备案域名,不如直接部署到个人服务器或静态托管。...部署Hexo到腾讯云静态托管 部署到腾讯云静态托管,好处: 拥有CDN加速,国内和国外访问极速快 相对于服务器,价格更便宜 自己域名没有备案,可以使用腾讯云提供的临时域名 其缺点有: 临时域名有访问限制...这样,就把本地Hexo文件推送到腾讯云静态托管内。...具体腾讯tcb命令使用,可以参考腾讯云官方文档 访问静态托管博客 根据你设置的自定义域名或默认域名即可访问: [format,png] 注意:默认域名有访问限制,建议使用自定义域名。

    2.2K51

    Git的介绍&&安装&&简单使用

    本篇博客是博主自己最近整理的Git笔记,如有错误,请指出 文章目录 Git是什么 版本控制 版本控制分类 Git发展历史 Git安装 Git的一些指令 设置用户名与邮箱 Git的三个区域 Git文件操作...所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。...######表示注释 详细可见Git指令 设置用户名与邮箱 当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息。...git的工作流程一般是这样的: 1、在工作目录中添加、修改文件; 2、将需要进行版本管理的文件放入暂存区域; 3、将暂存区域的文件提交到git仓库。...如果使用git rm移出版本库, 则成为Untracked文件 Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作.

    39830

    Git的深入理解与GitHub托管服务的使用

    现在,每个人都可以在一定程度上看到项目中的其他人正在做什么,管理员也可以轻松掌握每个开发者的权限,看到每个人每天的提交记录。这样做最大的缺点就是中央服务器的单点故障。...如果宕机一小时,那么在一小时内所有人都无法提交更新,也就无法协同工作。要是中央服务器的磁盘发生故障,碰巧没有备份或者备份不及时,就会有丢失数据的风险。...从项目中取出某个版本的所有文件和目录,用以开始后续工作的叫做工作目录。这些文件实际上都是从 Git 目录中的压缩对象数据库中提取出来的,接下来就可以在工作目录中对这些文件进行编辑。      ...所以,我们可以从文件所处的位置来判断状态:如果是 Git 目录中保存着的特定版本文件,就属于已提交状态;如果作了修改并已放入暂存区域,就属于已暂存状态;如果自上次取出后,作了修改但还没有放到暂存区域,就...Git的使用 Git 支持许多数据传输协议,包括本地传输、 git://协议、http(s):// 或者 SSH传输协议 user@server:/path.git,除了HTTP协议之外,其他所有协议都要求在服务器端安装并运行

    1K30

    版本控制系统 - GIT

    分布式版本控制工具:分布式版本控制系统可以没有 “中央服务器”,每个人的电脑上都是一个完整的版本仓库,这样工作的时候,不需要联网。因为版本仓库就在你自己的电脑上。...一个文件夹包含 .git 隐藏目录(Git 工作目录),说明此文件目录使用 Git 版本管理。 .git 隐藏目录中存储了很多配置信息、日志信息和文件版本信息、暂存区信息等。....以上配置信息默认存储在用户目录下,如果设置错误,可以删除 .gitconfig 文件,重新操作以上命令即可。...Git init 如果在当前目录中看到 .git 文件夹(此文件夹为隐藏文件夹)则说明 Git 仓库创建成功 本地仓库的操作 创建 Git 版本库 在本地创建 Git 版本库,需要使用 git init...这个命令合并了前两个独立的命令,平常使用中一般这样使用。

    1.7K40

    版本控制简介

    如果您在Linode云平台上托管一个网站或一个基于Web的应用程序,则您的用户将依赖您的内容,这些内容必须是可获取的。您还需要更新和修补内容。但是,更改内容可能会导致无法预料的错误,从而导致停机。...如果Git,Subversion或Mercurial无法满足您自动化服务器构建和管理配置的需求,请随意调查其他选项。...以下是它的工作原理: 在工作目录中创建或修改文件。对更改满意后,使用git add命令将修改后的文件移动到暂存区。 新文件和已修改文件的快照将添加到暂存区。现在您可以预览文件了。...这样的设置超出了本指南的范围,但Git官网提供了一些有关此主题的优秀说明。 安装Git 您可以在台式计算机,Linode云服务器或两者上安装Git。开始使用Git很容易。...更多信息 有关此主题的其他信息,您可能需要参考以下资源。虽然提供这些是希望它们有用,但请注意,我们无法保证外部托管材料的准确性或及时性。 版本控制系统

    1.9K30

    Git 简单入门(一)

    “中央服务器”的电脑,这个服务器的作用仅仅是用来交换大家的修改,没有它只是交换修改不方便而已 Git 安装 在安装之前先试着输入git 看看系统有没有安装Git,如果没有的话就要进行安装了,方法如下:...Git 的使用 版本库 版本库就是一个仓库/目录,这个目录里面的所有文件都可以被Git管理 创建版本库 创建一个空目录 在命令行中进入该目录,执行下面的命令 git init 可以发现当前目录下面多了一个...,要把误删的文件恢复到最新版本 git checkout -- 文件名 远程仓库 像GitHub和码云等网站提供Git仓库托管服务,这个需要自己去注册网站的账号,之后才能使用 Git支持多种协议...(HTTP/S、本地协议、SSH、Git))参考资料 SSH Key (验证身份的一种方式) 在用户主目录下面看看有没有 .ssh目录,如果有,看看这个目录里面是否有 id_rsa(私钥)和id_rsa.pub..." 用账号登录托管网站,然后在账号设置里面添加 SSH Key 即可 添加远程仓库 关联远程仓库 git remote add origin 地址 添加后,远程库的名字就是origin,这是Git

    40820

    使用Git来管理源代码

    所以版本控制工具可以看做整个编码工作的基础,如果没有版本控制来统一代码库,那么对于复杂且参与人数较多的项目是难以完成的,同时如果没有统一的代码库基础,那么如持续集成、发布等工作将无法开展。   ...而分布式可以理解为去中心化,没有特定服务器,每一个节点都拥有所有的内容,而每一台安装了Git的计算机就可以看作一个节点,所以Git几乎所有的操作都是在本地执行的(可以在本地创建仓库、添加/修改/提交文件等等...Git中对于文件有三个重要的工作区: 数据仓库:保存了所有Git提交的状态为Commited的文件,相当于集中式版本管理工具中服务器管理的文件数据库,数据仓库文件位于.git目录下 工作目录:工作目录就是用于开发的区域...Git   说到Git有人可能会有疑惑,为什么Git可以在Visual Studio中使用,而GitHub也提供了自己的客户端,但是像国内也有码云(gitee)这样的托管平台,那么Git这个工具到底是怎样的...注:git commit -a只能提交已经被git管理的修改文件)   跳过暂存区提交: 手动删除工作区文件(即直接删除目录下文件): 从git中删除文件:(git rm 1.md 或 git rm

    1.5K20

    ssh key与gitgithub生成密钥

    :远程github仓库配置   第三步为可省略步骤,如果你在取得Git仓库时就使用的是ssh协议,就无需修改  第四步:测试SSH连接 3. idea中配置Git(两种方式) 4. idea中配置Git...如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。...仓库是使用https协议进行访问的。      .../someproject.git (push)  2.使用浏览器登陆github,找到仓库ssh协议相应的url。...注1:一般会选择当前项目所在的目录    6. 2.上传项目到本地仓库,项目右键选择Git-->add,此时项目文件变成绿色,此时文件只是处于暂存区,并没有真正进入到版本库(本地)中   6.3.项目右键

    2.2K30

    构建全链路安全能力,守护代码资产安全

    这样一来,HTTPS 客户端在尝试建立加密链接的时候,会要求服务器出示 CA 签发的证书,客户端可以使用预安装在操作系统或者浏览器内的 CA 公钥进行验证,确认服务器对域名的所有权,这样一来就可以确保不会有中间人攻击...SSH 是一种常用于远程管理 Linux/Unix 服务器的安全加密协议,其功能非常多样。以 Git 为基础的代码托管也常使用这个协议进行加密代码传输。...在给定一个版本号,我们可以认为这个版本背后对应的全部文件内容,历史记录,提交信息,目录结构都是完全一致的。对于确定的版本号就没有篡改的可能性。...完整性和可用性 我们知道 Git 本身会通过哈希校验机制来确保仓库的完整性,但前提是仓库文件是完备的。如果仓库的文件丢失或者损坏,Git 的哈希校验也将无法工作。...这样的设计让各个节点都可以不闲置计算资源,而且任意一个节点出现损坏都可以快速恢复。 检出安全 代码检出后才能使用,而检出也涉及传输机密性问题,这点与检入部分没有区别。

    86050
    领券