Git 是我们日常工作中使用频率极高的工具,下面呢,我就介绍一下Git的基本知识和常用命令,希望可以帮助大家快速度过新手期。

Git四个工作区域

  • 工作目录(Working Directory)
  • 暂存区(Stage/Index)
  • 本地仓库/版本库(Local Repository 或 Git Directory)
  • 远程仓库(Remote Repository)

Git 文件的四个状态

  • Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
  • Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified.如果使用git rm移出版本库, 则成为Untracked文件
  • Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改
  • Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存,文件状态为Modified

Git 文件状态的转变

  1. 新建文件—>Untracked
  2. 使用add命令将新建的文件加入到暂存区—>Staged
  3. 使用commit命令将暂存区的文件提交到本地仓库—>Unmodified
  4. 如果对Unmodified状态的文件进行修改—> modified
  5. 如果对Unmodified状态的文件进行remove操作—>Untracked

IDEA Git 文件颜色说明(IDEA)

IDEA配置了Git,加入Version Control(版本控制),会出现不同颜色的文件。
文件颜色只与工作区,暂缓区和本地仓库有关,与远程仓库无关。

  • 红色:为加入版本控制,工作区文件没有添加到暂缓区。(没有git add)
  • 绿色:已经加入版本控制暂未提交,工作区文件已经添加到暂缓区,没有添加到本地仓库。(已经git add 没有git commit)
  • 蓝色:已经加入版本控制,已经提交,文件改动,工作区文件已经添加到暂缓区 和 本地仓库,文件内容有改动。(已经git add 和 git commit)
  • 白色:已经加入版本控制,已经提交,文件没有改动,工作区文件已经添加到暂缓区 和 本地仓库,文件内容有改动。(已经git add 和 git commit)

颜色变化:

红色 + add ->绿色 + commit -> 白色

白色 + modify(修改)-> 蓝色 + commit ->白色

Git常用命令

通常我们从远程仓库将项目代码clone到本地后,可以通过下面三个命令,完成创建开发分支的工作,从而开展coding工作。
本地分支:poxiao_20220405
远程分支:poxiao_20220405

新建本地分支

git branch poxiao_20220405

新建远程分支

git push origin 本地分支名(poxiao_20220405) ------将本地分支提交到远程仓库
(如果远程分支存在,直接使用下一条命令)

本地分支与远程分支关联

git branch --set-upstream-to=origin/ poxiao_20220405 poxiao_20220405

版本回退

命令格式:git reset --(soft | mixed | hard ) < HEAD ~(num) >

指令 作用范围 原有文件内容的变更 目录结构的变更(增加或者删除文件)
hard 回退全部,包括HEAD,index,working tree 修改内容还在,变成未add的状态 新增文件:还存在,变成未add的状态(目录结构中文件变成绿色,可以再次执行git commit );删除文件:目录结构中还是没有,可以直接执行git commit
mixed (默认) 回退部分,包括HEAD,index 修改内容还在,变成未add的状态 新增文件: 还存在,变成未add的状态(目录结构中文件变成红色,需要执行命令git add . 再执行git commit )删除文件:目录结构中还是没有,可以直接执行git commit
soft 只回退HEAD 修改内容丢失,修改的代码 不会变成未add的状态 新增文件丢失、删除的文件相当于没删
  • HEAD:存储着当前工作区所处的某次commit,默认是上一次的commit
  • working tree:工作区
  • index:暂存区

注意: 谨慎使用 –hard 参数,它会删除回退点之前的所有信息。

HEAD 说明:

  • HEAD 表示当前版本
  • HEAD^ 上一个版本
  • HEAD^^ 上上一个版本
  • HEAD^^^ 上上上一个版本
  • 以此类推…

可以使用 ~数字表示

  • HEAD~0 表示当前版本
  • HEAD~1 上一个版本
  • HEAD^2 上上一个版本
  • HEAD^3 上上上一个版本
  • 以此类推…

init && clone

  • git init :在当前目录新建一个本地仓库
  • git init [project-name] :在project-name这个目录下新建本地仓库
  • git clone [url] :克隆一个远程仓库

status

  • git status [file-name] :查看指定文件状态
  • git status :查看所有文件状态

add

千万别忘记 “.” 这个字符

  • git add [file-name1] [file-name2] ... 从工作区添加指定文件到暂存区
  • git add . 将工作区的被修改的文件和新增的文件提交到暂存区,不包括被删除的文件
  • git add -u . u指update,将工作区的被修改的文件和被删除的文件提交到暂存区,不包括新增的文件
  • git add -A . A指all,将工作区被修改、被删除、新增的文件都提交到暂存区

commit

  • git commit -m [massage] 将暂存区所有文件添加到本地仓库
  • git commit [file-name-1] [file-name-2] -m [massage] 将暂存区指定文件添加到本地仓库
  • git commit -am [massage] 将工作区的内容直接加入本地仓库
  • git commit --amend 快速将当前文件修改合并到最新的commit,不会产生新的commit。在提交commit后发现还有部分文件修改忘记提交了可以是用该命令

注释:

加-m是指直接在后面写上版本的注释,不加-m的话会用一个vim打开文件让你写入massage,有未追踪的文件将会失败,需要add加入暂存区。

push

  • git push origin [branch-name] 推送当前本地分支到指定远程分支,origin为默认的远程仓库名称。
  • git push 将文件添加到远程仓库。
  • git push -u origin master :由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

Git基本知识和常用命令(IDEA)相关推荐

  1. Git基础知识与常用命令

    一:相关概念: 1:工作区(Working Directory): 就是你在电脑里能看到的目录 2:版本库(Repository): 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库. ...

  2. Git—基础知识及常用命令(系列一)

    1.集中式和分布式区别 1.1 集中式   集中式版本控制系统,版本库是集中存放在中央服务器的.用户都是用自己的电脑,要先从中央服务器取得最新的版本,然后coding,最后把代码推送到中央服务器.   ...

  3. Git的基本概念/常用命令及实例

    Git的基本概念/常用命令及实例 什么是仓库 在 Git 的概念中,仓库,就是你存在.git目录的那个文件夹内的所有文件,包括隐藏的文件,Git程序会再当前目录以及上级目录查找是否存在.git文件,如 ...

  4. git日常使用的常用命令总结

    git日常使用的常用命令总结 git 是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常 ...

  5. 【Java从0到架构师】Linux 基础知识、常用命令

    Linux 基础知识.常用命令 Linux 基础知识 内核和发行版 常见的 Linux 发行版 Linux 的应用领域 Linux 与 Windows 的区别 Linux 常用命令 *系统目录结构 s ...

  6. 软件测试知识——MySQL常用命令

    软件测试知识--MySQL常用命令 数据库连接 创建数据库 显示数据库 删除数据库 选择数据库 创建表 显示数据表 查看表结构 删除表 插入表数据 修改表数据 查询单表数据 查询多表关联数据 删除表数 ...

  7. 图解 Git 工作原理和常用命令使用教程

    你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 marklodato.github.io/visual-git-guide/in ...

  8. Git的基础知识和常用命令

    源代码的管理从最原始的手工备份到后来的CVS, SVN和GIT的应用,经历了一个漫长的过程.GIT大概是除了linux内核以外, Linus Torvalds对信息技术发展的另一重要贡献啦. GITH ...

  9. 收藏!工作中Git使用实践和常用命令流程合集

    来自:匠心Java 工作中git是一项必不可少的技能,在项目的开发进程中起着至关重要的作用 下面介绍一些git在工作中的一些使用实践.常用流程.常用命令,供大家参考! 一:前言 Git的定义是:分布式 ...

  10. lvm基本知识与常用命令

    lvm基础知识: lvm是Logical Volume Manager(逻辑卷管理)的缩写,可以理解为一种硬盘分区管理工具,有以下几个重要的基础术语: 物理卷(Pyhsical Volume,PV): ...

最新文章

  1. 英特尔推深度学习加速工具包OpenVINO,布局边缘计算,发力物联网业务
  2. 使用soundcard在Python中操作声卡
  3. Win7安装golang开发环境--备忘录
  4. python中文读音ndarray-NumPy与ndarray简介(转)
  5. Access 的top和order by 的问题
  6. python matplotlib plt 画图 将刻度 替换为文字/字符以及画断断续续的分段函数
  7. 在EF4.0中获取ObjectContext的数据库连接字符串
  8. unity3d软阴影和硬阴影的原理_使用随机采样创建软阴影
  9. AtCoder Regular Contest 071
  10. html引用ttf字体文件
  11. 计算机课堂热身游戏,电脑课我们常玩的13个小游戏
  12. c#编程实战宝典 付强_C#编程实战宝典(光盘内容另行下载,地址见书封底)
  13. 企业权限管理系统如何配置?深度解析永洪BI权限管理系统
  14. 宇枫资本工薪族理财启发
  15. Linux (deepin)网络管理详解
  16. 怎么训练神经网络模型,神经网络模型训练过程
  17. Prometheus监控系统
  18. 【搜索】【Meet in the middle】世界冰球锦标赛Ice Hockey World Championship
  19. python日志模块 超量处理_Python logging日志处理模块
  20. 数据挖掘中的指标--分类器中的ROC曲线及相关指标(ROC、AUC、ACC)

热门文章

  1. 下拉刷新?我看好MaterialRefreshLayout!
  2. 达梦数据库一些基础的SQI语句
  3. java将字符串变小写变大写_Java 实例 – 字符串小写转大写
  4. PHP内裤,用sqlmap来扒下她的内裤吧~
  5. HPU算法协会公开课第一期:【基础算法1】(STL 自定义sort 前缀和差分)
  6. Docker【1】 | 带你快速了解Docker,So easy
  7. 【Windows Server 2019】DHCP服务器配置与管理——验证DHCP服务 备份与恢复DHCP数据 Ⅲ
  8. access横向求和sum_access 2007使用查询对数据求和
  9. [慈溪2011]电子警察
  10. Python使用pyecharts库画简单的中国地图