写点什么

Git 数据传输模型及常用命令整理

用户头像
王坤祥
关注
发布于: 2020 年 05 月 27 日
Git数据传输模型及常用命令整理

工作区和版本库

Workspace vs Version-Repository

Git 数据传输模型


Git Data Transfer Commands


Git 生态中包含了很多的概念。只有理解了这些概念,才能对版本控制的操作了然于心,避免犯错。本人从转行做码农开始就使用 Git,到现在已经有快三年的时间了。虽然一直在使用,基本算是处于勉强存活状态,不敢说对 Git 有足够了解。


废话不多说,直接来干货了:

重要概念

我们平时提到的 Git 的几个概念如上图所示,官方定义就不在此解释了,重点给大家摘录出来,注意对比上图来看:


  1. stash:临时存储

  2. Workspace::工作区

  3. Index 或者 Stage::暂存区

  4. Local Repository:本地仓库

  5. objects:Git 对象库

【1】git diff

git diff           比较【工作区】跟【暂存区】git diff --staged  比较【暂存区】跟【HEAD】git diff HEAD      比较【工作区】跟【HEAD】
复制代码


【2】git reset & git checkout

git reset HEAD              【HEAD】覆盖【暂存区】git checkout -- <file>      【暂存区】覆盖【工作区】git checkout HEAD <file>    【HEAD】覆盖【暂存区+工作区】
复制代码


git reset 有三个参数


  1. --soft 这个只是把 【HEAD】指向的 commit 恢复到你指定的 commit,【暂存区】【工作区】不变。

  2. --hard 这个是 把 【HEAD】, 【暂存区】, 【工作区】都修改为指定的 commit 的文件状态。

  3. --mixed 这个是不加时候的【默认参数】,把【HEAD】,【暂存区】修改为指定的 commit 的时候的文件状态,工作区保持不变。


【3】git rm

 git rm           删除【工作区】跟【暂存区】 git rm --cached  只删除【暂存区】 rm file          只删除【工作区】
复制代码

使用场景:删除 Git 上的远程文件夹

# Case 1. 以删除.idea文件夹为案例git rm -r --cached .idea //--cached不会把本地的test删除git commit -m 'delete .idea dir'git push -u origin master# --------------------------------------------------
# Case 2. 如果误提交的文件夹比较多,方法一也较繁琐# 直接修改.gitignore文件,将不需要的文件过滤掉,然后执行命令:git rm -r --cached .git add .git commitgit push -u origin master
复制代码

To be Continued.

推荐阅读

Git 分支管理策略及简单操作


发布于: 2020 年 05 月 27 日阅读数: 58
用户头像

王坤祥

关注

日拱一卒,功不唐捐。 2017.10.17 加入

不懂热能的低温工程师不是好程序猿

评论

发布
暂无评论
Git数据传输模型及常用命令整理