博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2019/07/23 git分支及远程仓库(04)
阅读量:3924 次
发布时间:2019-05-23

本文共 3118 字,大约阅读时间需要 10 分钟。

各种对象的引用方法在这里插入图片描述

**引用的方式可以是
完整的校验码 full sha-1
长于6位,唯一标识当前对象的可以 partial sha-1
日期规格 date spec
特殊符号
carrot parent 秃子符 引用上一级的指针
tree pointer 树指针
**在这里插入图片描述在这里插入图片描述
一般使用 6位5位在这里插入图片描述
日期的特殊表示方式在这里插入图片描述
倒数第5次在这里插入图片描述
秃子符表示master分支的,最近一次提交的,副提交的副提交在这里插入图片描述
波浪线表示第二个
在这里插入图片描述
秃子符是当前一次提交的上一次提交在这里插入图片描述
再往前一次,可以理解成第二个副提交
可能还有第三个,看你有几个分支
^1表示当前分支的副提交
^2表示第二个分支的副提交
$3表示第三个分支上的副提交
在这里插入图片描述在这里插入图片描述
可以理解为副提交的副提交,上一代的上一代在这里插入图片描述
想要表示第二个分支 上一代的上一代
当前分支上一代的上一代的第二个分支的副提交
在这里插入图片描述
第一个提交,下一个副提交,下一个副提交,2第二个分支的副提交
走的路是一样的,表达方式不同
在这里插入图片描述在这里插入图片描述在这里插入图片描述
两个提交之间的所有提交
从这次提交以后的所有提交在这里插入图片描述
副提交的副提交的副提交的,到第二个分支的副提交
在这里插入图片描述
对应的提交的引用方式可以灵活引用,谁和谁比较都可以用这种非绝对路径的表示法
这就是提交的引用方式

如何去对应git的工作流了,branch工作流在这里插入图片描述

**normal development 正常的开发方式
want to try an idea 试一个新的注意
have to do a hotfix 热修复分支
merge idea into development 如何将多个开发人员的结果合并一起
push to production
**
在这里插入图片描述
看一下branch ,切换到branch showbranch 显示分支所有的关系的在这里插入图片描述
这是同一个级别 的在这里插入图片描述
c0之后又两个分支 ,develop和story 95在这里插入图片描述
创建一个idea的新分支,并切换到idea分支在这里插入图片描述在这里插入图片描述在这里插入图片描述
热修复怎么做,修改后直接提交,并加标签在这里插入图片描述在这里插入图片描述在这里插入图片描述
如果想把多个研发人员的主意合并在一起在这里插入图片描述在这里插入图片描述
而后把merge的生产结果推送的生产环境中去在这里插入图片描述在这里插入图片描述
两种不同的合并逻辑在这里插入图片描述
如果生产环境尝试把多个合并
流行的工作流又哪些
在这里插入图片描述
集中仓库模型,都使用一个shared repository
开发人员各自使用本地的仓库开发自己的功能
在这里插入图片描述
一个稳定版的集中仓库,每个开发负责其中一个模块,每个人把仓库克隆到自己主机上来,然后再自己主机上开发研发在这里插入图片描述
第一个研发上传了,第二个研发需要fetch再merge在这里插入图片描述
但是这种模式久了会乱套的,所以就需要专门的人来合并
dictator; 发号施令者
在这里插入图片描述
每一个人实现研发之前,从blessed拿到本地开始开发,开发完以后i推给能访问的仓库,lieutenant,
dictator fetch到本地,merge 合并之后统一推到blessed
在这里插入图片描述
第三种方式,专门用来负责合并的在这里插入图片描述
每个开发需要先克隆blessed稳定版本,然后对应放到远程仓库中去在这里插入图片描述
管理员用fetch和rebase或merge的方式来合并,合并之后再上传到仓库在这里插入图片描述
如何实现有这么一个公共仓库在这里插入图片描述
应该放在一个服务器上,这个服务器应该是局域网或互联网(开源程序才能直接放到互联网上,)的
真正使用这个服务器的方法有两种,
开源软件放到互联网中,
1.访问代码需要验证,不能匿名访问
2.放到公司内部网络中,作为一个代码仓库服务器
远程代码服务器的仓库,想用急需要克隆到本地再本地进行修改再push上去,所以远程服务器上是不需要工作目录的
假设本地有一个
myproject的项目目录,远程服务器不需要目录,直接把.git当作一个功开的目录,名字叫做myproject.git
在这里插入图片描述
可以指定一个裸仓库,是没有工作目录的
git init会创建一个隐藏的.git目录–bare创建一个裸仓库,没有工作目录,直接指明仓库名即可
在这里插入图片描述
但是远程仓库如何输出给别人来访问
1.把这个仓库所在路径作为一个http协议的url(http协议很容易get,想要push如何,需要put操作,并且认证,建议https)2.使用ssh,再远程主机给每个使用的人创建远程账号,再各自的本地主机生产一对密钥,把公钥部分放到远程服务器上家目录的,有了密钥认证,推送就可以使用ssh协议即可
可以使用ssh推,https往下拉,使用ssh认证更加安全
在这里插入图片描述
git有专门实现仓库共享的协议在这里插入图片描述 Git服务器:只能拉不能推
协议:本地协议(local)、HTTP/HTTPS协议、SSH协议、Git协议;

本地协议:最原始的方式(同一个主机有多个用户,可以彼此之间克隆)

URL:
/path/to/repo.git 路径,每一次克隆可能是基于硬链接创建的
file:///path/to/repo.git 协议,每一次克隆都是直接复制的

Git协议

由git-daemon程序提供,监听在tcp的9418端口;仅支持“读”操作,无任何认证功能;

URL:

git://host/path/to/repo.git
git://host/~user/path/to/repo.git

SSH协议

URL
ssh://[USER@]host[:port]/path/to/repo.git
ssh://[USER@]host[:port]/~USERNAME/path/to/repo.git

URL2

[USER@]hostpath/to/repo.git

HTTP/HTTPS协议

1.6.5-:哑http协议
1.6.6+:智能http协议
智能协议支持 读/写/认证

URL:

http://host/path/to/repo.git

我们应该使用智能https协议来使用远程仓库

github可以给你提供公共托管服务在这里插入图片描述
如果有些文件不像被跟踪,可以创建.gitignore文件
readme文件不想被追踪,就直接写readme即可
在这里插入图片描述
版本在这里插入图片描述
点击创建就好了在这里插入图片描述
可以用gitremote 命令添加一个远程仓库
在这里插入图片描述在这里插入图片描述
ssh没配置现在只能用https在这里插入图片描述在这里插入图片描述

** 代表所有分支,现在就已经把本地仓库和远程仓库建立了关联关系,现在可以往上推了*

在这里插入图片描述
推的时候指明 repositoory和指明引用的refspec),来完成推送在这里插入图片描述
指定推哪个分支在这里插入图片描述
把本地的myproject推送的远程仓库中去,输入用户名和密码在这里插入图片描述在这里插入图片描述
提示二者不能兼容,两个文件到底覆盖不覆盖,不确定
git pull 直接取回来自动合并
在这里插入图片描述
提交为0.4.1在这里插入图片描述在这里插入图片描述
在这里插入图片描述
现在就提交好了,现在已经push到本地来了在这里插入图片描述
可以把本地的push到远程仓库上在这里插入图片描述
这样可以把本地的内容推送到远程仓库上了在这里插入图片描述
删除了,也可以克隆,把远程仓库的内容到本地在这里插入图片描述
能看到以前的每一次提交在这里插入图片描述
也可以推的时候打标签,因为标签是我们方便引用的标识符
git tag打标签

如果在github上想要使用ssh协议在这里插入图片描述

ssh密钥在这里插入图片描述在这里插入图片描述
创建的密钥的方法在这里插入图片描述
生成后添加在这里插入图片描述在这里插入图片描述在这里插入图片描述
生成一对密钥,公钥放在github
在这里插入图片描述
把看到的文件内容复制在这里插入图片描述在这里插入图片描述
现在就可以了在这里插入图片描述
现在就可以使用ssh了在这里插入图片描述在这里插入图片描述
删除几行在这里插入图片描述在这里插入图片描述
完成以后可以直接往上推
先把远程的仓库删除了,刚才是删除了再git clone的所以目录名改变了
在这里插入图片描述
现在的url和fetch已经是ssh协议路径了, 在这里插入图片描述在这里插入图片描述
删掉几行在这里插入图片描述
推送到远程主机上在这里插入图片描述在这里插入图片描述
这就是如何使用github集中式的托管仓库的
也有专门写代码文章的htt ps://www.gitbook.com在这里插入图片描述
如果不想使用github,就需要自己创建一个托管服务器
可以使用gitlab
是开源的自己去建立代码托管服务器
有两种版本
使用ruby语言研发,组件非常多,依赖postgresql,redis,安装配置极为复杂
好在提供了ce,版本,里面有初始化脚本
在这里插入图片描述

转载地址:http://fckgn.baihongyu.com/

你可能感兴趣的文章
ML.NET 示例:对象检测
查看>>
C#基于yolov3的行人检测
查看>>
ML.NET Cookbook:(16)什么是规范化?为什么我需要关心?
查看>>
WPF 修改(优化)Menu菜单的样式
查看>>
晕了!这个配置值从哪来的?
查看>>
我开发了一款基于web容器的前端项目容器
查看>>
WPF实现环(圆)形菜单
查看>>
WPF 写一个提醒工具软件(完整项目)
查看>>
Windows 11 快速体验:开始菜单居中,全系圆角设计!
查看>>
异步流使用注意事项
查看>>
NET问答: 为什么仅有 getter 的属性,还可以在构造函数中赋值 ?
查看>>
WPF TextBox限制只能输入数字的两种方法
查看>>
【荐】牛逼的WPF动画库:XamlFlair
查看>>
如何绕过 TPM 2.0 安装 Windows 11 操作系统?
查看>>
为WPF播放GIF伤神不?
查看>>
.NET Core with 微服务 - Elastic APM
查看>>
生产力提升! 自己动手自定义Visual Studio 2019的 类创建模板,制作简易版Vsix安装包...
查看>>
考虑用Task.WhenAll
查看>>
关于面试,避开这几点,成功几率更大~~~
查看>>
通过反射实现IOC功能
查看>>