githug通过游戏快速理解并使用git

**每天有空会过几关,当是学习git。坚持就是胜利。
过到46关之后毫无斗志,期间因为不懂的比较多,所以翻看了答案。惭愧惭愧,希望大家当是反面教材,坚持到底。
顺便推荐这个awesome(有关git和github的整理) **

2016-07-28 15-57-59 最终倒在这里

最近(现在可以说是之前了)在学习git,看的书是官方的(发现书和游戏好像是配套的。。。)
pro git 中文版
但是单单看书,手不动一动感觉完全无法理解。
正当我苦恼的时候看到了这个游戏
githug
由于这个游戏是Ruby写的。所以需要先安装Ruby
下载地址
windows基本上点下一步就完成了。
安装Ruby后就可以安装游戏了
懒得写了。。。以下摘自https://github.com/Gazler/githug
To install Githug, run
gem install githug
If you get a complaint about permissions, you can rerun the command with sudo
:
sudo gem install githug
ok,然后就可以开始游戏了。
以下是第一关内容:

Name: init
Level: 1
Difficulty: *
A new directory, git_hug, has been created; initialize an empty repository in it.
C:\Sites>cd git_hug
C:\Sites\git_hug>git init
Initialized empty Git repository in C:/Sites/git_hug/.git/
C:\Sites\git_hug>githug


  •                                Githug                                    *
    

Congratulations, you have solved the level!

下面时玩游戏时做的一些笔记,希望对大家有帮助

help

git help <命令>

查看相应命令的说明

ignore:

通过编写gitignore来忽略其他文件。
.gitignore 的格式规范如下:

所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
可以使用标准的 glob 模式匹配。
匹配模式最后跟反斜杠(/)说明要忽略的是目录 。
要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
所谓的 glob 模式是指 shell所使用的简化了的正则表达式。
星号(*)匹配零个或多个任意字符;
[abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);
问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。

我们再看一个 .gitignore 文件的例子:

#. 此为注释 – 将被 Git 忽略
#. 忽略所有 .a 结尾的文件
*.a
#. 但 lib.a 除外
!lib.a
#. 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
#. 忽略 build/ 目录下的所有文件
build/
#. 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/
.txt

rm:

rm表示删除文件
git rm 表示从git仓库中删除

reset:

表示从staged中移除。

stash:

暂存。再不提交的状况下将文件保存

mv:

mv并不改变仓库中的文件名。应使用git mv

log:

git log 命令可以用来查看提交历史

$ git log
    commit ca82a6dff817ec66f44342007202690a93763949
    Author: Scott Chacon <schacon@gee-mail.com>
    Date: Mon Mar 17 21:52:11 2008 -0700

    changed the version number

    commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7
    Author: Scott Chacon <schacon@gee-mail.com>
    Date: Sat Mar 15 16:40:33 2008 -0700

    removed unnecessary test code

    commit a11bef06a3f659402fe7563abf99ad00de2209e6
    Author: Scott Chacon <schacon@gee-mail.com>
    Date: Sat Mar 15 10:31:28 2008 -0700

    first commit

默认不用任何参数的话,git log会按提交时间列出所有的更新,最近的更新排在最上面。看到了吗,每次更新都有一个 SHA-1 校验和、作者的名字和电子邮件地址、提交时间,最后缩进一个段落显示提交说明。

tag:

git tag 查看标签。

git tag 内容 轻量级标签

git tag -a v1.4 -m 'my version 1.4'

创建一个含附注类型的标签,用 -a (译注:取annotated的首字母)指定标签名字即可。而 -m 选项则指定了对应的标签说明。

git tag -s v1.5 -m 'my signed 1.5 tag'

如果你有自己的私钥,还可以用 GPG 来签署标签,只需要把之前的 -a 改为 -s (译注: 取 signed 的首字母)

commit:

git commit --amend

修改上一次提交。

git commit --date=03.14.2016

在未来的某一天提交

fetch

git fetch origin

取回更新,但不和并

pull

git pull origin master

拉取更新到本地并合并

push:

git push --tags origin master

将标签推送到远程仓库

git push origin test_branch:test_branch

将分支推送到远程仓库

remote

查看远程仓库

git remote

查看远程仓库名称

git remote -v

查看远程仓库地址

git remote add

添加远程仓库

diff

git diff

查看与上一版本之间的区别

blame

git blame <文件名>

查看某文件的修改记录

branch

git branch

创建新的分支

checkout

git checkout

切换到另一个分支

git checkout -b

创建一个新的分支,并切换到这个分支上

git checkout tags/v1.2

切换到tags为1.2的分支上

git checkout test_branch HEAD^1

创建一个分支,基于上一个commit的版本

git checkout -d old_branch

删除分支

merge

git merge feature

合并分支

rebase

git rebase master

合并分支,使合并记录更加简洁

git rebase -i <某次提交的哈希值>

重命名提交。当涉及提交修改时,应该想到 git rebase -i 命令,它接受可以一个参数(提交的哈希值),它将罗列出此提交之后的所有提交,然后可以对个个提交做对应的操作。也可以重命名图标和合并多次提交。

repack

git repack

将版本库未打包的松散对象打包

git repack -d

删除打包之后产生的新包

cherry pick

git cherry-pick ca32a6dac7b6f97975edbe19a4296c2ee7682f68

应用某一个提交修改,hashcode使用git log --all获取

grep

搜索

git grep <正则表达式>

git grep支持各种条件搜索及正则表达式,平时用的不多,但感觉功能强大。

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

推荐阅读更多精彩内容

  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 5,656评论 1 17
  • 1·关于小胖的行为 记得对小胖懒与散的观察与担忧,我曾在微信上发表了说说,相信他及他父母能见到能重视。尽管...
    宁静遇夏雨阅读 156评论 0 3
  • 1.媒体查询:@media screen and (min-width:A) and (max-width:B) ...
    qzuser_1d64阅读 123评论 0 0
  • 在我十几岁的时候,经常担心,活不到二十几岁我就死了。连喜欢的女孩子都没表白和追求过,还有很多远方的风景,没有去看过...
    喂叁师兄阅读 452评论 0 0