感觉用github管理自己平时的一些代码挺方便的,尤其还有各种统计,作为一个码农,就有一种每日签到、累计签到统计的感觉。用github,学习git自然是不可避免的,原先只是用几个 git clone 、 git add 、 git commit 、 git pull 、 git push 、 git log 等命令,一般的使用凑合能应付吧,主要使用github在线看历史修改。不过有时确实想本地看下历史代码,或者有些类似撤销( git reset )操作不学会真实失去了用代码版本控制的意义了,就打算好好学下git吧,以前都逃避了。以前在公司用过hg,不过当时就是一知半解,很多操作还得让同事来帮一下,这种东西了解一下内部工作原理还是有必要的。有时事情就是这样,一个软件应该是做到足够的友好,让用户不用花太多心思去了解软件的内部机理,不过不了解还真用不好,像其他语言、库也是一样。

看到很多都推荐《Git权威指南》,看了20章感觉看不下去了,后来又有人说《Pro Git》不错,看了一下确实比前面一本讲的浅显一点,图比较多,看着舒服一点,当然也不排除已经看第一本感觉后者容易了的可能。

Pro Git中Chapter 9 Git 内部原理(9.1~9.3)非常值得一看,个人感觉看过后就能更好的理解那些常用操作的原理了(所以可以在基本的几个操作会后马上试一下),也就不用去硬记一些流程了。

本来还想自己写点Git操作的,不过Pro Git真正非常不错,直接去那里看吧。

推荐:

Pro Git(有中文版翻译) http://git-scm.com/book/

Git图解:http://marklodato.github.io/visual-git-guide/index-en.html

还是要平常记录一下,用用一些常用的稍稍有点复杂的功能否则一会儿就忘了。

Git 命令别名

git status这个命令肯定是使用频率最高的一个,完完整整打个status挺累得,好在可以给git后面的这些子命令取一些别名:

git config --global alias.st status

config子命令用来修改配置文件,--global由于指出修改的时全局配置文件而不是用户的或者是这个项目的,alias.st status表示用st这个别名来代表status这个命令。所以现在可以这样使用了:

git st

当然不能走极端把什么commit改成ci之类的,commit这么有成就感的命令,越长越好。

Git log 查看commit-id,日志

每次commit,git都有一个唯一的id,可以通过git log命令获取

Git reset 恢复文件

1. 准备commit时,发现把还没改完的文件用git add 放到暂存区了,想把它移出来等到下一次在commit

$ git reset HEAD path/to/file

这也是git add后会给出的提示

2. 如果想让当前工作目录回到某个commit时的样子,可以如下(所有目前未commit的更改都会没有):

$ git reset --hard commit-id 

commit-id可以通过git log来获取

Git 小记的更多相关文章

  1. Git小记

    Git简~介 Git是一个分布式版本控制系统,其他的版本控制系统我只用过SVN,但用的时间不长.大家都知道,分布式的好处多多,而且分布式已经包含了集中式的几乎所有功能.Linus创造Git的传奇经历就 ...

  2. git --help出来的命令 + eclipse里用git小记

    用法:git [--version] [--help] [-C <path>] [-c name=value]           [--exec-path[=<path>]] ...

  3. Git 的 WindowsXP安装

    文章1: http://blog.sina.com.cn/s/blog_5063e4c80100sqzq.html 一.安装必要客户端 1. TortoiseGit http://tortoisegi ...

  4. git stash错误小记

    git出错小记 想要push代码,我们经常这样做. 1.查看状态 git status 2.隐藏本地编辑的新内容 git stash 3.拉远程的代码 git pull 这一步操作有的时候会报错,没有 ...

  5. Git使用小记

    刚刚简答的完成了pureblog,想着先上传导Github上去,等着以后有时间了在完善其功能,所以使用Git上传导Github代码仓库上去,这里简答的记录以下使用小计. 我们首先下载Git,我们使用用 ...

  6. Mac git提交步骤小记

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 19.0px; font: 13.0px "PingFang SC"; c ...

  7. git基础使用小记

    一.安装步骤省略二.运行“Git Bash“在打开的窗口中输入:ssh-keygen -t rsa -C "my@gmail.com" 会提示SSH Public Keys存放的位 ...

  8. git仓库构建小记

    1.新建 .git 文件夹 约定的文件目录下,新建 .git 文件夹 mkdir test.git 2.初始化服务端仓库 git init --bare test.git 此时进入 test.git ...

  9. git学习笔记 看廖大神视频小记

    1.创建一个空目录 $ mkdir gittemp $cd gittemp $pwd //x显示当前目录 2.$ git init 把这个目录变成git可以管理的仓库 多的一个隐藏的.git 目录 可 ...

随机推荐

  1. jzoj5996

    我們可以枚舉每一個串的最短回文後綴,這樣一定不會算重. 雖然一個字符串可能會有多個回文後綴,但是答案只會在最短的後綴被計算 記f[i]表示長度為i回文串中,沒有長度>1的回文後綴的個數,將總個數 ...

  2. php 删除二维数组中某个key值

    /** * 根据key删除数组中指定元素 * @param array $arr 数组 * @param string/int $key 键(key) * @return array */ priva ...

  3. Vue环境搭建及node安装过程整理

    一.nodejs的安装 Node.js安装包及源码下载地址为:https://nodejs.org/en/download/. 我们可以根据不同平台系统选择你需要的Node.js安装包.Node.js ...

  4. VmWare扩展硬盘分区

    扩展硬盘 对硬盘进行分区 () 查看现有的硬盘分区情况 [mysql@china ~]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/m ...

  5. Mime、base64编码

    第一部分 在阮一峰老师的博客中,是这样介绍Mime的: MIME的全称是"Multipurpose Internet Mail Extensions",中译为"多用途互联 ...

  6. vue-devtools必备工具

    1.github下载地址:https://github.com/vuejs/vue-devtools 2.下载安成之后打开cmd进入vue-devtools文件夹把依赖装好npm install 之后 ...

  7. 【C#小知识】C#中一些易混淆概念总结(四)---------解析Console.WriteLine() 分类: C# 2014-02-05 17:18 1060人阅读 评论(0) 收藏

    目录: [C#小知识]C#中一些易混淆概念总结 [C#小知识]C#中一些易混淆概念总结(二) [C#小知识]C#中一些易混淆概念总结(三) ------------------------------ ...

  8. #pragma的一些用法

    1.#pragma message message 参数:Message参数能够在编译信息输出窗口输出相应的信息,这对于源代码的信息控制特别重要,其使用方法为: #pragma message(&qu ...

  9. Nginx配置访问权限

    基于IP配置Nginx的访问权限 Nginx配置通过两种途径支持基本访问权限的控制,其中一种是由HTTP标准模块ngx_http_access_module支持的,通过IP来判断客户端是否拥有对Ngi ...

  10. PHP-note

    func_get_arg - Return an item from the argument list func_get_args - Returns an array comprising a f ...