Git命令

git命令
常用git命令

1.git clone <http> //克隆仓库
2.git add -A
3.git commit -s -m “注释”
4.git pull
5.git push
6.git status -s
7.git log —oneline

8.git branch
9.git branch <dev> //创建新分支
10.git checkout <dev> //切换分支
11.git rebase <master> //基于父分支最新节点
12.git merge <dev> //在当前分支 合并指定分支
13.git branch -d <dev>//删除指定分支(必须在父分支上进行)

14.git reset --hard <ccbc996>//回滚到指定节点

15.git stash //保存快照(移除当前未提交并保存)
16git stash pop//使用最上层快照

git初始化
$ cd /path/to/my/workspace
$ mkdir demo
$ cd demo
$ git init (初始化git版本库)

$ echo "Hello." > welcome.txt (新建txt文件,并在里面加“hello”)
$ echo "Bye-Bye." >> welcome.txt (在txt文件后面加上“bye-bye”)
提交,添加
$ git add 文件 (工作区加入到暂缓区)
$ git commit -m "注释" (暂缓区提交到版本库)
日志查询
$ git log
$ git log —stat(附加的--stat参数看到每次提交的文件变更统计)
$ git log --pretty=oneline(只有提交ID和提交注释)
 * ea66f2ba8e76b86b57d932502266c3b672826e4b who does commit?
 * 124307a9e3186a12c41831f27f15112422af68d0 intialized
$ git log --pretty=raw --graph e695606 (可以查询到任意一次提交之前的提交跟踪链)
$ git log --graph --oneline 
 * a0c641e who does commit?
 * 9e8a761 initialized.
状态查询
$ git status -s (显示精简格式的状态输出) 
  M welcome.txt (版本库中的文件和处于中间状态——提交任务(提交暂存区,即stage)中的文件相比有改动。)
M  welcome.txt (工作区当前的文件和处于中间状态——提交任务(提交暂存区,即stage)中的文件相比也有改动。)
MM welcome.txt (不但版本库中最新提交的文件和处于中间状态 —— 提交任务(提交暂存区, stage)中的文件相比有改动,而且工作区当前的文件和处于中间状态 —— 提交任务(提交暂存区, stage)中的文件相比也有改动。)
$ git status -s -b (-s精简输出 -b显示当前工作分支的名称)
## master
版本库和缓存区、工作区的文件差异
$ git diff (工作区和缓存区)
$ git diff HEAD 或者 $ git diff master(工作区和HEAD)
$ git diff --cached 或者是 $ git diff --staged 或者是$ git diff --cached HEAD (缓存区和工作区)
查看HEAD(版本库中当前提交)指向的目录树
$ git ls-tree -l HEAD
100644 blob fd3c069c1de4f4bc9b15940f490aeb48852f3c42      25    welcome.txt
* 使用-l参数,可以显示文件的大小。上面welcome.txt大小为25字节。
* 输出的welcome.txt文件条目从左至右,第一个字段是文件的属性(rw-r–r–),第二个字段说明是Git对象库中的一个blob对象(文件),第三个字段则是该文件在对象库中对应的ID——一个40位的SHA1哈希值格式的ID(这个会在后面介绍),第四个字段是文件大小,第五个字段是文件名。
显示暂存区的目录树
$ git ls-files -s
100644 18832d35117ef2f013c4009f5b2128dfaeff354f 0       a/b/c/hello.txt
100644 51dbfd25a804c30e9d8dc441740452534de8264b 0       welcome.txt
后退修改
 $ git clean -fd (清除当前工作区中没有加入版本库的文件和目录(非跟踪文件和目录))
 $ git checkout . (用暂存区内容刷新工作区)
 $ git stash (用版本库刷新暂存区和工作区)
重置reset
 $ git reset --hard HEAD^ (将master重置到前一次提交)
 $ git reset --hard 9e8a761 (重置到任意一次提交)
挽救错误的重置reflog
 $ git reflog show master | head -5
   124307a master@{0}: reset: moving to 124307a
   343f2f8 master@{1}: reset: moving to HEAD^
   921f323 master@{2}: commit: doed master follow this new commit?
   343f2f8 master@{3}: commit: which version checked in?
   ea66f2b master@{4}: commit: who does commit?

 $ git reset --hard master@{2}
 HEAD is now at 921f323 doed master follow this new commit?
cat
 $ git cat-file -t e695606 (查看ID的类型)
 commit
 $ git cat-file -p 343f2f8 (查看对象的内容)
 tree f58da9a820e3fd9d84ab2ca2f1b467ac265038f9
 parent ea66f2ba8e76b86b57d932502266c3b672826e4b
 author Huang Shuni <15889638723@163.com> 1474440963 +0800
 committer Huang Shuni <15889638723@163.com> 1474440963 +0800
 which version checked in?
显示当前分支
 $ git branch
 * master
master/HEAD
 $ git log -1 HEAD
 $ git log -1 master
 $ git log -1 refs/heads/master
 commit 343f2f81a6ce607242f0b9d051576937935d4adf
 Author: Huang Shuni <15889638723@163.com>
 Date:   Wed Sep 21 14:56:03 2016 +0800
 which version checked in?
 
 * 上述三者都是一样的指向,指向最近的一次提交
 
 
 $ git rev-parse master
 $ git rev-parse refs/heads/master
 $ git rev-parse HEAD
 343f2f81a6ce607242f0b9d051576937935d4adf
 
 * 和上面的三个差不多

#######SHA1哈希值
* 40个十六进制的数字组成
* Git的提交通过SHA1哈希值作为提交ID,做到了“全球唯一”。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270

推荐阅读更多精彩内容

  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,384评论 1 26
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,413评论 9 163
  • Add & Commit git init 初始化一个 Git 仓库(repository),即把当前所在目录变成...
    冬絮阅读 4,674评论 0 8
  • 第一部分是文档,为了日后查看方便放到了前边[可能敲错了,详见阮一峰老师的文章]http://www.ruanyif...
    白璞1024阅读 989评论 0 49
  • 现在的天气预报准的简直不要不要的,昨天说今天气温骤降,昨晚立马小雨加雪,今天气温零下一度到五度。树上的叶子有的还...
    风烟俱尽阅读 507评论 0 1