常用linux命令以及git

git最基本的流程

1.创建工作目录,对工作目录进行修改 (写代码开发)

2.git add ./

  里面包括

  git hash-object -w 文件名(修改了多少个目录中的文件,此命令就要被执行多少次)

  git update-index  .....

3. git commit -m "这里写注释"

  里面包括

  git werite-tree

  git commit-tree

执行顺序:工作目录 ->  版本库 -> 暂存区

一个文件对应一个git对象(git是增量的,不是覆盖的,有一句话:git是绝对安全的)

一.基础命令

 

返回哈希值

1.查看文件列表以及属性:ll

2.创建文件:echo '我是内容' > test.txt

3.查看文件类型:file fileName

4.输出所有文本内容:cat fileName、cat -n fileName (文本加上行号)、cat -b fileName(文本内容非空行加上行号)

5.查看目录文件:find url (例如: find ./) 

6.平铺当前目录下所有文件:find ./ -type f

7.进入文本编辑模式:vim fileName

  linux提供了常用快捷键

  I:进入插入模式 ,可以编辑当前文本

  ESC:推出插入模式

  X:删除当前光标所在的字符

  D:删除当前光标所在的行

  U:撤销上一步操作

  Ctrl + R:取消上一次的撤销

  o:从光标所在行的下面创建新的一行并进入插入模式输入

  O:从光标所在行的上面创建新的一行并开始输入

  yy:复制一行,前面加上数字代码复制多少行,如复制3行:3yy

  dd:剪切一行,前面加上数字代码剪切多少行,如复制3行:3dd

  p:粘贴一行,粘贴再光标的下一行

  :(冒号) + 命令:底部命令

  :wq:保存退出编辑模式

  :w:保存但不退出  (:w! 为强制保存)

  :w: fileName 另存为

  :q:不保存退出

  :q!:强制保存

  :e!:放弃所有修改,从上次保存文本开始在编辑

二.常用命令

1.gti init             初始化仓库

2.git add ./           将修改添加到暂存区(已跟踪:(已提交、已修改、已暂存))

3.git commit -m “这里是注释”   将暂存区提交到版本库

4.git commit -a -m 跳过暂存区

三.其他

1.git version            查看git安装版本

1.git status              检查当前文件状态 (确定当前文件属于什么状态(已跟踪、未跟踪))

2.git ls-files -s            查看暂存区内容

3.git hash-object -w 文件名       文件生成git对象(blob文件)

4.git cat-file -p xxxxx(哈希)             查看git内容

5.git diff              查看哪些修改还没暂存

6.git diff --cached 或 git diff -staged  查看哪些修改已经暂存但还未提交

7.git log              查看历史记录

8.git branch   分支名               创建分支

9.git branch              显示当前分支列表

10.git branch -d name        删除分支

11.git checkout 分支名       切换分支

12.git branch -D name       强制删除分支

13.git config -- global alias.别名 "源命令"   别名

14.git 回退 (带着分支一起移动)

  a)git reset --softHEAD~      回退版本库

  b)git reset [mixed] HEAD~  回退版本库、暂存区

  c)git reset --hard HEAD~    回退版本库、暂存区、工作区(比较危险的用法,不可以撤销)

15.git checkout 分支名       回退(切换)版本(与git reset --hard HEAD~ 区别:checkout 只动HEAD,后者会带着分支一起)

四.git目录说明

hooks

  目录下存储了许多钩子文件(一些脚本),这些文件是各种 Git 命令使用的自定义脚本,可以在Git 特定阶段自动执行,例如:提交 (commit)、变基 (rebase)、拉取 ( pull ) 操作的前后执行。运行 git init 时会安装一些示例钩子,但是默认情况下它们都被禁用。如果要启用,需要删除文件.sample后缀。

info

  存储库的其他信息将记录在此目录中。

  info/exclude :  忽略指定模式的文件,和 .gitignore 类似,但是 .gitignore 是针对每个目录的。

object

  Git 是一个内容寻址文件系统,Git 的核心部分是一个简单的键(哈希)值对数据库(key-value data store)。 你可以向 Git 仓库中插入任意类型的内容,它会返回一个唯一的键,通过该键可以在任意时刻再次取回该内容。

  简单理解就是:objects 目录是 Git 的数据库(键值对数据库,可以想象为 map[key] = value 的形式),根据 key 来存取内容,key 即为 SHA1计算后的值。该目录下存储有三种对象(最多):数据对象(blob object)、树对象(tree object)、提交对象(commit object)。

refs

  里面包含每个分支的head,以及所有的tag。同时可以看到main分支的文件里面,仅仅记录了一个提交对象的hash值。

config

  存储当前仓库的配置信息。git 的配置文件分为三层,分别是:

  /etc/gitconfig 文件:系统上每一个用户及他们仓库的通用配置;
  ~/.gitconfig 或 ~/.config/git/config 文件:当前用户的仓库配置;
  .git/config 文件(当前仓库下):当前用户当前仓库的配置;

description

  用于在 GitWeb 中展示项目的描述信息。默认内容如下:

  Unnamed repository; edit this file 'description' to name the repository.

HEAD

  存储 HEAD 指针,指向当前分支,即:记录当前活动分支。

index

  暂存区(stage),二进制文件。

logs

  保存所有更新的引用记录。其目录结构如下:

  ├── HEAD
  └── refs
   ├── heads
    │   ├── dev-branch
    │   └── master
    └── remotes
      └── origin
      ├── dev-branch
      └── master
  其中,HEAD 记录所有更改记录,包括切换分支,logs/refs 下存储本地和远程分支的更改记录。

 

posted @   芒果5s  阅读(77)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示