Git基本知识和常用命令(IDEA)
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 文件状态的转变
- 新建文件—>Untracked
- 使用add命令将新建的文件加入到暂存区—>Staged
- 使用commit命令将暂存区的文件提交到本地仓库—>Unmodified
- 如果对Unmodified状态的文件进行修改—> modified
- 如果对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)相关推荐
- Git基础知识与常用命令
一:相关概念: 1:工作区(Working Directory): 就是你在电脑里能看到的目录 2:版本库(Repository): 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库. ...
- Git—基础知识及常用命令(系列一)
1.集中式和分布式区别 1.1 集中式 集中式版本控制系统,版本库是集中存放在中央服务器的.用户都是用自己的电脑,要先从中央服务器取得最新的版本,然后coding,最后把代码推送到中央服务器. ...
- Git的基本概念/常用命令及实例
Git的基本概念/常用命令及实例 什么是仓库 在 Git 的概念中,仓库,就是你存在.git目录的那个文件夹内的所有文件,包括隐藏的文件,Git程序会再当前目录以及上级目录查找是否存在.git文件,如 ...
- git日常使用的常用命令总结
git日常使用的常用命令总结 git 是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常 ...
- 【Java从0到架构师】Linux 基础知识、常用命令
Linux 基础知识.常用命令 Linux 基础知识 内核和发行版 常见的 Linux 发行版 Linux 的应用领域 Linux 与 Windows 的区别 Linux 常用命令 *系统目录结构 s ...
- 软件测试知识——MySQL常用命令
软件测试知识--MySQL常用命令 数据库连接 创建数据库 显示数据库 删除数据库 选择数据库 创建表 显示数据表 查看表结构 删除表 插入表数据 修改表数据 查询单表数据 查询多表关联数据 删除表数 ...
- 图解 Git 工作原理和常用命令使用教程
你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 marklodato.github.io/visual-git-guide/in ...
- Git的基础知识和常用命令
源代码的管理从最原始的手工备份到后来的CVS, SVN和GIT的应用,经历了一个漫长的过程.GIT大概是除了linux内核以外, Linus Torvalds对信息技术发展的另一重要贡献啦. GITH ...
- 收藏!工作中Git使用实践和常用命令流程合集
来自:匠心Java 工作中git是一项必不可少的技能,在项目的开发进程中起着至关重要的作用 下面介绍一些git在工作中的一些使用实践.常用流程.常用命令,供大家参考! 一:前言 Git的定义是:分布式 ...
- lvm基本知识与常用命令
lvm基础知识: lvm是Logical Volume Manager(逻辑卷管理)的缩写,可以理解为一种硬盘分区管理工具,有以下几个重要的基础术语: 物理卷(Pyhsical Volume,PV): ...
最新文章
- 英特尔推深度学习加速工具包OpenVINO,布局边缘计算,发力物联网业务
- 使用soundcard在Python中操作声卡
- Win7安装golang开发环境--备忘录
- python中文读音ndarray-NumPy与ndarray简介(转)
- Access 的top和order by 的问题
- python matplotlib plt 画图 将刻度 替换为文字/字符以及画断断续续的分段函数
- 在EF4.0中获取ObjectContext的数据库连接字符串
- unity3d软阴影和硬阴影的原理_使用随机采样创建软阴影
- AtCoder Regular Contest 071
- html引用ttf字体文件
- 计算机课堂热身游戏,电脑课我们常玩的13个小游戏
- c#编程实战宝典 付强_C#编程实战宝典(光盘内容另行下载,地址见书封底)
- 企业权限管理系统如何配置?深度解析永洪BI权限管理系统
- 宇枫资本工薪族理财启发
- Linux (deepin)网络管理详解
- 怎么训练神经网络模型,神经网络模型训练过程
- Prometheus监控系统
- 【搜索】【Meet in the middle】世界冰球锦标赛Ice Hockey World Championship
- python日志模块 超量处理_Python logging日志处理模块
- 数据挖掘中的指标--分类器中的ROC曲线及相关指标(ROC、AUC、ACC)
热门文章
- 下拉刷新?我看好MaterialRefreshLayout!
- 达梦数据库一些基础的SQI语句
- java将字符串变小写变大写_Java 实例 – 字符串小写转大写
- PHP内裤,用sqlmap来扒下她的内裤吧~
- HPU算法协会公开课第一期:【基础算法1】(STL 自定义sort 前缀和差分)
- Docker【1】 | 带你快速了解Docker,So easy
- 【Windows Server 2019】DHCP服务器配置与管理——验证DHCP服务 备份与恢复DHCP数据 Ⅲ
- access横向求和sum_access 2007使用查询对数据求和
- [慈溪2011]电子警察
- Python使用pyecharts库画简单的中国地图