git基础

作者: Daisy小朋友 | 来源:发表于2019-11-07 17:49 被阅读0次

1 git简介

版本控制:是指通过记录软件开发过程中的源代码。配置工具环境,数据等的历史信息,快速重现和访问任意一个修订版本。
版本控制是团队协作交付软件的基础,应支持团队间所有变更历史的详细信息查询及共享,包括修改人员,修改时间,文件内容以及注释信息等,通过有效信息共享,加快问题定位和沟通协作效率。
需求:1 记录变更 2 合并,冲突检测 3 多分支
历史:
1992 -linux系统
2002年-bitkeeper,期间手工合并源码
2005年合作破裂,之后开发了git
2008 github上线
对比:
svn-集中式版本控制
git-分布式版本控制,local repository,本地开发即可,需要的时候去和远端更新


图片.png

2 git大特性

  • 分布式
  • 近乎零成本的分支管理,git中分支是指针形式
  • 真正的版本控制系统,借鉴linux系统
  • 功能强大
  • 开源免费

3 专业术语

  • 本地库(本地),缓冲区(缓存,加快效率),中心库(远程集中式仓库)


    图片.png
  • commit(sha1):40位的哈希值,用于代表一个完整的快照,唯一的


    图片.png

    上面的是svn的更新方式,版本2中A和C文件都有改动,svn只记录差异,当我们获取版本2时,需要先将版本1获取,再增加版本2的差异,这样效率会比较低。
    git每个版本就是一个完整的快照状态,考虑:会不会有冗余的存储,设计的时候有考虑,内容是一样的即使名字不一样也是指向的同一文件,不会有太多的复杂运算,效率高

  • HEAD:当前处于激活状态的最新提交
  • remote:远程仓库

4 git命令

配置用户信息,开启颜色显示

$ git config --global user.name "your name"
$ git config --global user.email "you email"
$ git config --global color.ui auto

上面配置会写入到.gitconfig 目录:/c/Users/daisy
配置ssh协议连接,私有项目
ssh-keygen -t rsa -C "your identity message"
基本命令

$ git init  //基于目录创建本地库,会创建.git隐藏目录
$ git status //查看状态,红色代表未纳入版本控制的文件
$ git log --oneline  //简略的查看log信息
$ git log --oneline --decorate --all --graph  //图形化查看
$ git merge fetch1  //当前在master分支下,将fetch1上的所有改动merge到master下,这个时候很容易出现冲突,git status可以查看你冲突的内容,所以尽量一些小的改动就merge到master分支上,修改后加入缓冲区再提交
$ git cherry-pick -s -x e016f48  
//cherry-pick  仅仅将需要的代码提交,-s添加签名信息 -x归溯信息 commit也可添加这个,如图,git log查看时会多一些签名信息
$ git revert e016f48  //revert把一些提交入库的命令回退
$ git rebase -i master  //打开后显示注释信息,并修改那些提交那些删除,相当于fetch2中的分支历史转移到master上,就像是基于,matser分支修改的一样,rebase会识别出来之前,跳过cherry -pick的提交rebase 分支数,parent,merge是所有的,cherry-pick是一个一个的,rebase是批量的cherry-pick
可以把提交历史整理的非常规整
$ git push origin test  //将本地分支push到远程分支,单单git push会有提示,此时远端就有test这个分支了
$ git fetch origin //拉取远端的改动

5 git使用标准

基本顺序
你修改好了代码,先要提交
git commit -am “commit message"
然后有两种方法来把你的代码和远程仓库中的代码合并
a. git pull这样就直接把你本地仓库中的代码进行更新但问题是可能会有冲突(conflicts),个人不推荐
b. 先git fetch origin(把远程仓库中origin最新代码取回),再git merge origin/master(把本地代码和已取得的远程仓库最新代码合并),如果你的改动和远程仓库中最新代码有冲突,会提示,再去一个一个解决冲突,最后再从1开始
如果没有冲突,git push origin master,把你的改动推送到远程仓库中

七步工作法

图片.png
  • 获取代码
  • 多次进行开发验证
  • 本地提交commit,加上-s参数增加签名信息
  • 更新主干 rebase,rebase之前git pull --rebase先更新再rebase,有冲突调试
  • 提交 commit-amend
  • push主干分支,先提交到代码评审分支(merge request)
  • 合并主干分支 merge
分支策略

1 每天像主干合并一次代码
2 让分支的生命周期尽量的短(少于一天)
3 同一时间少于三条活跃分支
4 避免使用代码线锁定的方式进行被动管理

相关文章

  • 2.Git初步

    Git是什么 Git是什么 Git基础 Git基础 1. 下载安装Git GIT官网 安装好后,按win+R 输入...

  • Git总结

    初步 下载git 基础配置: 基础操作 获取Git仓库 初始化现有仓库 git init 克隆远程仓库 git c...

  • Git基本操作

    一、 git的基础操作 基础操作 1.在项目里创建一个git : $ git init 链接远程项目: $ git...

  • git操作

    git基础命令: git commit ---- 提交git branch newBranchName --- 新...

  • Git

    关于版本控制 Git 简史 Git 基础 安装 Git Git 前的配置

  • 2.3 Git 基础 - 查看提交记录

    提交记录git log 2.2 Git 基础 - 记录每次更新到仓库(删除和改名)2.4 Git 基础 - 撤销操...

  • 面试中的那些 Git 问题 - 基础部分

    面试中的那些 Git 问题 - 基础部分 面试中的那些 Git 问题 - 基础部分

  • 2016-06-24 阅读整理

    Git Git 基础命令Git 分支管理Git 分支合并Git 公钥提交Git 常用技巧Git 设置别名 Andr...

  • Git 系列文章

    GIT 初识 Git的基础操作 Git的远程操作 Git的分支管理 Git标签操作 Git团队协作 Git 多账户...

  • git资源学习

    git资源学习 Git详解之一 Git起步 Git详解之二 Git基础 Git详解之三 Git分支 Git详解之四...

网友评论

      本文标题:git基础

      本文链接:https://www.haomeiwen.com/subject/wxwvbctx.html