Git-常用命令

356 阅读3分钟

Git相关概念

在例举常用命令之前,先简单复习一下 git对象类型

git对象类型

块(blob)

文件的每个一个版本表示一个块(blob - binary large object)。一个blob保存一个文件的数据,但不包括文件的元数据,比如文件名

目录树(tree)

一个目录树对象代表一层目录信息。它记录blob标识符、路径名和在一个目录里所有文件的一些元数据。

提交(commit)

一个提交对象保存版本中每一次提交的元数据,包括作者、提交者、提交日期。每一个提交对象指向一个目录树对象。

标签(tag)

一个标签对象分配一个任意的且人类可读的名字给一个特定对象。通常是一个提交对象。

常用命令

git init

初始化一个版本库. find .git/objects/ 存放所有git对象的目录,最开始是空的

git init

git cat-file 查询对象数据

  1. git cat-file -h 查看帮助
  2. git cat-file -t [对象名] 查看对象类型
  3. git cat-file -p [对象名] 查看内容

git log 查看历史

  1. git log [-p | --patch] [-number] 每次提交所引入的差异 [number 最近几次提交]
  2. git log --stat [-number] 总结性查询提交记录
  3. git log --graph [-number] 以图形显示分支与合并历史

git stash 贮藏变更

stash 可以将未完成的修改保存到一个栈上, 然后可以在任何时候重新应用这些改动

  1. git stash list 查看所有储藏栈上的记录
  2. git stash push -m 'your desc' 添加记录到栈上
  3. git stash [ pop | apply ] [栈名- stash@{0}]

pop 是取出栈里数据

apply 只是使用,栈中的记录还在

git-reset

当你想要撤销一个commit 你可以这样使用

  1. git reset commithash 撤销到当前 commithash 的提交
  2. git reset HEAD^ 撤销当前提交 以上操作是只是撤销 commit 操作,并未撤销 add 操作,所以当前更新代码还在,如果你想彻底撤销 可以加 --hard 将连 add 操作也撤销。
    如果你只是想修改 commit 内容 可以使用 git commit --amend 命令。

git cherry-pick

不知在开发过程中,老铁们有没有遇到这种情况,错把 A 分支的代码提交到 B 分支,那这时你想把代码重新提交到A 分支时,你可以在A分支上执行git cherry-pick 刚提交的hash或者B(分支名-代表B分支最新一次提交) 命令, 就可以把刚才提交的代码转移到A分支上。当然如果你想撤销B分支的提交,可以先 git checkout B 切换到B分支,然后执行 git reset --hard HEAD^

git ls-files -s 显示文件信息

显示有关索引和工作树中文件的信息

git tag

创建,列出,删除或验证使用GPG签名的标记对象

git rev-parse

  1. git rev-parse [对象名] 根据对象名前缀查找散列值

使用场景

把代码修改到错误分支上

在多分支编程的情况下,经常把代码添加到错误分支,这时在想切回正确的分支时会报错。这时你可以这样操作

先存到贮藏区: 【stash 处理跟踪文件或暂存文件】
git add.
git stash 
切回分支后在从贮藏区取出
git stash pop

感谢

欢迎留言指正! 内容持续更新!