git 常用命令

1. git的几个概念:

在这里插入图片描述

1.1 工作区:

写代码的目录

1.2 缓存区,暂存区stage:

第一次 git add 命令后会在 .git/ 目录下创建一个index 文件,这个就叫暂存区,每次git add 都是提交到这里面,SVN 集中式版本管理系统没有这个概念

1.3 本地库:

使用 git init 命令后这个目录就是一个本地库了,本地库包括工作区和缓存区stage

1.4 远程库:

在gitee 网站上创建的库,需要注册gitee 账户

1.5 数据结构:

git 采用对象数据库方法进行版本管理,类似单向链表

1.6 head:

当前修改的节点头指针 1 <- 2 <- 3 <- 4 <- head

1.7 master:

主干,仓库的主干,可以拉很多分支出来,类似大树有一根主干,可以长出来很多分支一样

1.8 origin:

master 的起源节点,第一个节点,类似大树的根部,然后从上开始生长,开枝散叶

1.9 分布式版本管理

每台电脑都是服务器,而集中式的版本管理,例如SVN,只有一台服务区,代码都是放在服务器上的,电脑上只有一些版本信息,一旦服务器的代码丢失就全了,你想rm -rf / 删库跑路吗,

2. 环境下安装git

$ sudo apt-get install git
$ sudo apt-get search git (如果上面的命令安装失败)

3. 配置用户名

$ git config --global user.name alfred

4. 配置邮箱

$ git config --global user.name 123456789@qq.com

5. 将该目录初始化为一个本地仓库

$ git init

6. 将文件添加到缓存区 .git/index

$ git add test.c

7. 将修改提交到本地库,-m后面的是备注信息

$ git commit -m “test for git cmd”

8. 修改最后一次commit 的备注信息

$ git commit --amend

9. 查看提交记录

$ git log

10. 回退版本

10. 1 撤回git commit 之前的修改,修改了文件,但是还没有git commit,使用该命令会把修改的东西全部撤回成原来的样子

$ git reset --hard

10.2 撤回到指定版本,已经git add 的修改也会被删掉,需要先使用git log 查看commit ID,然后通过commit ID 来返回到指定版本

这个命令比较常用,团队开发一个项目的时候,如果主干被人改坏了,崩溃了,就要一个版本一个版本的往回退,回退一个版本测试一下,就知道是谁的提交引入的问题,大型开发团队每天都有很多人往主干里面提交代码,所以回退版本查问题是很耗时的操作,如果查到是你的提交引入的问题,要被叼死,所以入库的时候要自测充分,然后也有测试团队进行CI门禁测试,小包测试,冒烟测试等等,还有commit review。

$ git reset --hard 621391f5022982256e39547243486113fe08d9f1

在这里插入图片描述

10.3 只将头指针恢复,已经git add 的修改不会被删掉, 暂存区和工作区都不会删掉

$ git reset --soft

10.4 只将头指针恢复,已经git add 的修改会被删掉, 修改的内容不会删掉,相当于只撤回了git add

$ git reset --mixed

10.5 回滚到当前仓库指向的版本

就是我现在的代码对应的是仓库里面的哪个版本,就给我回退到这个版本, ^代表上一个版本的意思,HEAD代表当前仓库的指向,一般是指向master

$ git reset --hard HEAD^

10.6 回滚N 次

往回退N个版本,回退3 个版本

$ git reset --hard HEAD~3

11. 查看提交记录

11.1 查看提交记录的详细信息

这个命令经常用

$ git log

11.2 查看提交记录的简略信息

$ git log --pretty=oneline

12. 查看git 的状态,修改了哪些文件,有没有git add, 有没有git commit

这个命令经常用,修改了文件但是还没git add 就是红色字体,git add 了但是还没有git commit 就是绿色字体

$ git status

在这里插入图片描述

13. 查看分支

13.1 查看当前分支

查看当前是在哪个分支上面,有的公司会拉很多分支,主干master,产线分支factory,商业分支commercial,开发人员基本都是用master主干来开发,产线分支factory 是专门用来给工厂出版本的,产线上烧的就是这个版本

$ git branch

13.2 创建分支

$ git branch factory

14. 切换分支

这个也比较常用,有时需要同时处理很多件事情,可以每件事情拉一个分支,这样不会乱。一个bug一个分支

$ git switch factory

在这里插入图片描述

15. 合并分支

把分支合并到主干master,先切换到主干分支,然后执行命令

$ git merge factory

16. 删除分支

-D 后面是要删除的分支的名称

$ git branch -D factory

17. git 的几个专业术语

Workspace:工作区,写代码的地方
Index / Stage:暂存区(缓存区),在.git/ 目录下,git add 就是add 到这里面缓存起来
Repository:本地仓库,git commit 就是commit 到这里面,也就是你写代码的地方,只不过里面还包括了暂存区
Remote:远程库,服务器端,比如gitee,github,或者也可以把另外一台电脑当做服务器

18. 删除已经 git add 的文件夹

$ git rm -r --cached <文件夹路径>

例如,我一不小心把OBJ 目录git add 添加到暂存区了,这样的话,每次我没修改代码,但是只要我一编译,然后用 git diff 查看修改的时候,就会报一堆的修改,全家OBJ 下面的修改,烦死了,就可以用这个命令把 OBJ 目录从git add 的缓存区删掉,这样我如果不改代码的话,编译后再git diff 就不会报一堆乱七八糟的修改了

$ git rm -r --cached OBJ 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值