Git导图
2021-08-28 19:16:42   0  举报             
     
         
 AI智能生成
  Git思维导图
    作者其他创作
 大纲/内容
  8. 分支操作    
     分支介绍    
     介绍    
     在版本控制过程中,使用多条线同时进行开发  
     多位同事分工合作,每条线互补影响,在完成的时候整合即可  
     Git中是通过分支来实现的,分支之间代码隔离,可以切换、合并分支  
     好处    
     多个分支(功能)同时开发,相互堵路,互不影响  
     如果一个功能开发失败,功能被抛弃,删除分支即可,对主线代码不会产生任何影响  
     查看分支    
     查看本地分支    
     git branch  
     查看远程分支    
     git branch -r  
     查看所有分支,本地+远程    
     git branch -a  
     创建分支    
     git branch [分支名称]  
     切换分支    
     git checkout [分支名称]  
     合并分支    
     checkout 切换到最终分支  
     git merge [要合并的分支]  
     删除本地分支    
     git branch -d [要删除的分支名称]  
     git branch -D [要删除的分支名称] 强制删除  
     推送本地新分支到远程    
     git push -f [远程库别名] 分支名称  强制推送本地分支到远程  
     删除远程分支    
     git branch --delete [远程分支名称]  
     9. 远程库操作    
     介绍    
     使用Git一般都会选择一个或者多个远程库作为服务端    
     公司内部:GitLab  
     开源的:GitHub、Gitee  
     添加远程库    
     git remote add [分支别名] [仓库地址]  
     查看远程库列表    
     git remote -v  
     拉取    
     抓取    
     git fetch  
     合并    
     抓取之后会在本地创建一个合并分支  
     手动吧这个合并分支merge到本地分支  
     抓取并且自动合并    
     git pull  
     推送    
     git push [仓库别名/地址] [分支名]  
     git push -f [仓库别名/地址] [分支名] 强制推送  
     克隆    
     git clone [仓库地址] [拉取到本地的文名]  
     10. tag标签操作    
     介绍    
     在项目构建过程中,如果要发行版本,需要做一个记录,以便于以后需要的时候,重新打包这个版本。这个时候就需要tag这个功能了  
     创建标签    
     给当前最新提交打tag    
     git tag -a `tagName` -m `注释`  
     给指定的commitId打tag    
     git tag -a `tagName` `commitId` -m `注释`  
     查看标签    
     查看标签列表    
     git tag [--list]  
     查看单个标签详细信息    
     git show `tagName`  
     切换到标签内部,查看提交信息    
     git checkout `tagName`  
     git log --oneline  
     推送标签到远程    
     推送全部标签    
     git push [远程库别名] --tags  
     推送指定标签    
     git push [远程库别名] [tag] `tagName`  
     删除标签    
     删除本地标签    
     git tag -d `tagName`  
     删除远程标签    
     git push [远程库别名] :refs/tags/`tagName`  
     11. patch补丁操作    
     介绍    
     patch是一个文本文件,他的内容类似于git diff,但是他除了包含代码信息之外,还包含提交的元数据信息,如提交人,提交时间,注释等  
     一般在打了一个tag版本之后,如果有重大bug或者部分代码更新,但是又没有新的tag发布计划,可以打补丁,以安装补丁的方式进行部分代码更新,而不必要等最新的tag发布  
     流程    
     用户A开发了项目,打了tag,发行了该tag  
     用户B下载了该tag,已经开始使用,但是发现了bug  
     这个时候,用户A针对这些bug进行了修复,但是不准备重新打tag,所以打了一些补丁  
     用户B需要将这些补丁下载下载,进行安装,这样就会有部分代码更新,解决所急需要的功能或者bug修复  
     打补丁    
     使用git format-patch进行打补丁操作    
     当前分支所有超出master分支的提交    
     git format-patch -M master  
     某次提交之后的所有提交(不包含当次提交)    
     git format-patch `分支的commitId`  
     从根到指定提交的所有的提交(包含当次提交)    
     git format-patch --root `分支的commitId`  
     某两次提交之间的所有提交(不包含头,包含尾)    
     git format-patch `开始的commitId`..`结束的commitId`  
     某次提交之前的n次提交(包含当次提交)    
     git format-patch –`个数` `结束的commitId`  
     某次提交(单个)    
     git format-patch -1 `要打的commitId`  
     补充    
     一个patch文件代表了一次提交  
     补丁文件名默认从1开始,并拼接提交对应的第一行作为文件名,注意,只取英文字母,中文忽略  
     可以使用参数`--numbered-files`选项,则文件名只有编号,不包含提交信息  
     可指定`-o <dir>`指定patch的存放目录  
     应用补丁    
     检查patch文件    
     git apply --stat [文件列表]  
     检查能否应用成功    
     git apply --check  `文件列表`  
     安装补丁    
     git am --signoff < `文件列表`  
     1. 版本控制系统    
     介绍    
     记录一个或者若干个文件内容变化,以便于查阅特定版本修订情况的系统  
     好处    
     对文件历史版本进行控制,可以方便的管理,回退,恢复  
     多人协同开发,代码同步  
     如果项目出现问题,可以对文件历史版本进行对比,根据历史差异找出问题出现的地方,谁导致的,谁提交的,什么时间提交的  
     重要版本tag标记,对重要版本进行管理  
     分类    
     集中化版本控制系统(SVN)    
     只有一台服务器,存储的是最新版本和上一个版本的差异。  
     问题:单节点故障,只有联网才能工作  
     分布式版本控制系统(Git)    
     每一台客户端都是服务器。存储的是最新的版本和历史版本的索引,每一个客户端都存有整个仓库镜像,通过极致的压缩和解压缩算法保证  
     2. 发展历史    
     Linux之父,林纳斯 托瓦斯编写处Linux  
     项目大了,开源支持人多了,需要版本控制工具支持  
     刚开始用的是BitKeeper(闭源,但是给Linux免费用),但是Linux社区的大佬都是开源精神,所以喜欢翻看代码。因为Bitkeep是闭源的,所以终止了合作  
     Linux之父用了一周写了一个Git,并且在一个月之内,吧Linux源码通过Git管理起来,并且开源  
     3. 安装    
     windows:下载安装包一步一步安装  
     linx:使用npm或者apt-get安装,或者离线包编译安装  
     4. Git设置签名    
     设置用户名    
     git config --global user.name "HLH"  
     设置邮箱    
     git config --global user.email "17703595860@163.com"  
     查看全局配置    
     git config --global --list  
     5. GIt本地结构    
     工作区:代码编辑区域  
     暂存区:暂存修改  
     本地库:本地仓库  
     6. Git使用场景    
     团队间合作    
     使用一个仓库    
     项目经理初始化本地库,创建远程库,推送初始更改  
     给项目组开发人员分配权限  
     项目组开发人员克隆仓库,进行代码拉取,更改,提交,推送  
     项目经理拉取最新代码,查看项目进度和代码评审  
     跨团队合作    
     多个库,通过fork复制,发送pull Request合并    
     本团队项目经理初始化本地库,创建远程库,推送初始更改  
     给本团队开发人员开放权限  
     对仓库进行fork复制,复制的仓库给合作团队使用  
     合作团队负责人管理仓库,添加仓库开发成员  
     两个团队的开发人员可以各自修改,提交,维护自己的远程库  
     如果需要合并,可以发送pullRequest进行代码合并  
     7. 常用命令    
     初始化    
     git init  
     添加    
     git add [文件/目录/.]  
     提交    
     git commit [文件/目录] -m "注释"  
     查看文件状态    
     git status  
     查看日志    
     git log    
     带分页效果,显示最长的唯一标识  
     b:上一页  
     空格:下一页  
     q:退出  
     git log --pretty-oneline    
     不带分页效果,一行显示,显示最长的版本号  
     git log --oneline    
     不带分页,一行显示,显示7位版本号  
     git reflog    
     在 git log --oneline的基础上添加了HEAD@{数字},代表回退到当前步骤所走的部数,并且显示pull,回滚之类的日志  
     回滚    
     git reset [操作符] 版本号    
     --hard    
     工作区和暂存区都不保留代码  
     --mixed    
     工作区保留代码  
     --soft    
     工作区和暂存区都保留代码  
     删除文件之后的恢复    
     恢复就是重置到当前最新提交,使用HEAD指针即可    
     git reset --hard HEAD  
     文件比对    
     工作区和暂存区代码对比    
     git diff [文件名]  
     暂存区和本地库代码对比    
     git diff [本地仓库版本号] 文件名  
    
 
 
 
 
  0 条评论
 下一页
  
   
   
   
  
  
  
  
  
  
  
  
  
  
 