git介绍

作者: 易路先登 | 来源:发表于2021-04-13 22:06 被阅读0次
git发展历史

1 、集中式VCS的特点

  • 有集中的版本管理服务器
  • 具备文件版本管理和分支管理能力
  • 集成效率有明显地提高
  • 客户端必须时刻和服务器相连

2、分布式VCS特点

  • 服务端和客户端都有完整的版本库
  • 脱离服务端,客户端照样可以管理版本
  • 查看历史和版本比较等多数操作都不需要访问服务器,比集中式VCS更能提高版本管理效率


    image.png

3、Git特点

  • 最有的存储能力
  • 非凡的性能
  • 开源
  • 备份简单
  • 可离线操作
  • 易定制工作流程

4、Git安装

https://git-scm.com官网下载,傻瓜式安装

单人本地
三个区(工作区,暂存区,版本管理区)
三个状态 ()
单人远程
多人协作

5、Git的简单配置

$ git config --global user.name "John Doe"//配置用户名
$ git config --global user.email johndoe@example.com//配置邮箱
$ git config --list//查询配置项
$ git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"//配置编辑器的命令

6、Git起步

git help//查找git命令的用法
git help --web log//通过浏览器查看某个命令的详细说明
git fetch -h //查找子命令的用法
  • 1 初始化git仓库
git init//初始化一个空目录为git仓库,或者将一个已有项目改为git仓库
  • 2 获取远端仓库
git clone 仓库地址(既可以是远端的,也可以是本地的)

git remote -v  查看克隆仓库的源仓库信息
  • 3 添加忽略文件(定义某些文件不必被git管理)
    在工作区更目录下新建.gitignore文件,如下方:
    image.png
  • 4 修改文件名
git mv a b//将a文件重命名为b
  • 5 .git下的HEAD与config
cat .git/HEAD//树的头信息
cat .git/config//git仓库配置文件,可编辑
git config --local --list//查看本地配置信息
git config --local user.name //查看用户名
git config --local user.name xxxx//设置用户名
  • 6 .git目录下究竟存放了些什么
//HEAD目录下存放的refs里的引用
cd refs
cd ./heads
cat master
git cat-file -t 哈希//查看类型
git cat-file -p 哈希//查看文件内容
//objects里存放真正的文件快照
  • 7 git删除一个文件
git rm file.xx//彻底从git树上删除文件,无法检出,如果手动删除的话,使用git checkout -- file还可以检出该文件
  • 8 .git目录中文件的查看
git cat-file -t 哈希值//查看对应哈希值的类型
git cat-file -p 哈希值//查看对应哈希值的内容
  • 9 一个commit究竟包含哪些内容
git log//查看每个commit的哈希
git cat-file -p 哈希//查看提交的内容
//每个commit对应着一个tree  
//该tree里存放文件快照或者嵌套的tree

//暂存区有了修改以后查看objects目录下的内容
find .git/object -type f
  • 10 分离头指针
//基于某个commit就分离了头指针,此后的修改就不基于分支了
git checkout (commit哈希)
//分离头指针后再切换分支,刚才做的修改会被丢掉
//除非基于新提交再做分支
git branch 分支名  提交哈希
  • 11 集中回退或撤销的骚操作
git commit --amend   --allow-empty//覆盖前一次的提交的message(偷偷提交)
git reset HEAD filename//取消某文件的暂存
git checkout -- filename//从版本区检出某文件
  • 12 修改提交说明
//修改最近一次的提交说明

git commit --amend //覆盖前一次的提交的message
//修改老的commit的提交说明(只推荐在未被合并到其他分支的分支进行)
git rebase -i  哈希//(待变提交的父提交的哈希id)
//两次交互
  • 13 将多个commit合并为一个
git rebase -i 哈希//父提交   然后选择s选项
  • 14 重命名文件*
git mv filenameA filenameB//将文件A 重命名为文件B
  • 15 查看提交历史
git log//详细罗列所有的提交历史
git log --oneline //将提交历史中的节点浓缩到一行
git log -n//数字  查看最近几次的提交
git log --all //查看所有分支的提交历史
git log --all --graph //查看所有分支的提交历史并且以简略图画区分不同分支的提交历史
  • 16 图形界面gitk
gitk//会弹出图形界面详细罗列当前仓库的版本情况且可以做相应操作
image.png
  • 17 git的三个工作区
    .git目录中的objects目录存放着每次提交的文件
    查看顺序如下:
    (1)git cat-file -p ed13a716
    (2)git cat-file -p abab72caf
    (3)git cat-file -p 52cfcc97
    一个文件对应一个blob对象
    image.png
image.png
image.png
  • 18 比较缓存区与仓库异同
git diff --cached
  • 19 比较工作区与暂存区
git diff
  • 20 取消暂存区部分文件的修改
git reset HEAD -- url
  • 21 删除提交
git reset --hard 父提交哈希id
  • 22 创建分支*
git checkout -b branchname//创建一个叫branchname的分支
git checkout -b branchname  [头指针] //从某个commit节点创建一个叫做branchname的分支
git branch -b 分支  源/分支  //基于远端的某分支创建一个本地分支
git branch -v //查看本地分支
git branch -va //查看本地和远端所有分支
git merge 源/分支 //将某源上的某分支合并到当前分支
  • 23 远程分支
git clone //将远程克隆到本地
git push [别名(origin) 分支(master)]//将本地推送到远程
git pull [别名(origin) 分支(master)]//将远程拉取到本地并合并
git fetch <shortname|origin>//从远程仓库拉取(但不会自动合并到你的分支)
git pull <shortname|origin>//从远程仓库拉取并自动合并到你的仓库(保证是fast-words的)
git clone url//从远程仓库克隆内容,Git会给你克隆的仓库服务器一个默认的名字origin
git remote -v//查看git的远程仓库
git remote add <shortname> <url>//手动指定一个远程仓库
//为确保远程和本地提交内容一致,先git pull  再git push
  • 24 暂存工作区未完成工作
//如果工作区中有一些未完成的修改,不能commit,也不值得add,怎么办?
git stash//暂存工作区中不成熟的修改
git stash apply//恢复暂存的未完成工作
git stash pop//恢复工作区中暂存的不成熟修改(并清空stash List)
  • 25 将git仓库备份到本地
git clone
git remote
  • 26 配置github账号的ssh
https://docs.github.com/cn/github/authenticating-to-github/connecting-to-github-with-ssh
  • 27 将本地仓库同步到远端
git remote -v//查看和本地仓库链接的远程仓库
git remote add 别名  仓库地址
git fetch 源 分支//将远端对应源的对应分支拉到本地
  • 28 图形界面
gitk
gitk --all
  • 29 合并冲突
    (1)快速合并
    (2)不同人修改不同文件
    (3)不同人修改了不同文件的不同地方
    (4)不同人修改了不同文件的相同地方
    (5)变更文件名

相关文章

  • 2018-05-17

    Git介绍及注册 git介绍 git(https://github.com/) 是分布式版本控制技术 SVN是集中...

  • git介绍

    gitbook下载 git教程廖雪峰 本篇博客部分来自pro git 和廖雪峰的gitl教程 版本控制 本控制系统...

  • Git介绍

    关于Git,下面这幅图准确的描述了Git的整个框架: 在平时的开发过程中,可能经常为了某一个功能,而将整个目录进行...

  • Git 介绍

    Git开发流程 Git就是版本控制管理工具,还有一个叫做svn。 可以在命令行使用(大部分都在这是用) 也可以使用...

  • git 介绍

    一 git 的版本控制原理 像subversion等cvs,使用记录版本差异的形式来进行版本控制,如下图所示: g...

  • git ——介绍

    什么是 Git? Git 是由 Linux 之父 Linus Tovalds 为了更好地管理linux内核开发而创...

  • git介绍

    一种常见的版本控制工具 获取 克隆仓库 git支持以ssh或者http的方式来标识远程仓库 以上两条命令作用相同,...

  • Git介绍

    Git简单介绍 什么是GitGit是一款源代码管理工具(版本控制工具) 什么又是源代码:凡是由我们手写的代码都称之...

  • Git介绍

    它是一款免费的、开源的、目前世界上最先进的分布式版本控制系统!

  • Git介绍

    一、Git诞生 同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。1991年,Linus创建了...

网友评论

      本文标题:git介绍

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