美文网首页移动互联网技术分享Android Dev
githug通过游戏快速理解并使用git

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

作者: 黑泥卡 | 来源:发表于2016-03-10 23:04 被阅读601次

    **每天有空会过几关,当是学习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支持各种条件搜索及正则表达式,平时用的不多,但感觉功能强大。

    相关文章

      网友评论

        本文标题:githug通过游戏快速理解并使用git

        本文链接:https://www.haomeiwen.com/subject/gzwtlttx.html