【ZZ】TryGit 教程

无心间在网上看到了TryGit的Git教程,一直想学Git,但又一直没有开这个头,开饭前的花了15分钟的时间,把TryGit里的教程过了一下,大体流程以下(注意,这个教程中会涉及向github push 版本信息,因此最好能先去准备好一个Code School Account或者是GitHub Account):
1. 初始化一个版本仓库
git init


该条命令会在当前目录下生成一个.git目录,该目录中存放着git须要的版本控制信息 python

git status

能够看到 git仓库当前的状态 ”# Initial commit“


2. 增长一些文件 git

在当前目录下新增一些文件(try git 自动帮你新建完毕)和目录(也是自动的),经过git status命令查看当前版本库的状态 github

git add octocat.txt
将octocat.txt文件加入版本系统(注意,这只是 通知git去关注该文件,在提交以前,此次的改动尚未造成一个版本)也能够 经过通配符来批量添加文件

git add '*.txt'
注意 通配符 *.txt 外面引号,若是没有引号,则命令会被shell先解析,即*.txt的内容变成了当前目录下的全部txt文件,而忽略子目录中的全部txt文件,而‘*.txt’则会将通配符交给git来处理,在git内部完成 全部文件夹中txt文件搜索。

git commit -m "add some txt file"
向版本库中提交一个改动版本。

3. 增长一个github上的远端仓库(remote repository) shell

git remote add origin git@g.com:/try_git.git
这里ngloom须要变成你本身github用户名,这条命令会在 本地的配置文件中加入一条名字叫origin的github远端仓库配置。

4. 将本地版本 push 到 github windows

git push -u origin master
地仓库里在用的版本是master,而 远端github里的版本是origin,该命令将本地master里的版本信息push到github仓库里去(若是你github上的仓库名称不叫try_git, 要事先保证该仓库存在,try_git教程会帮你自动建好,因此push的时候不会出错,而 向一个github中不存在的仓库push的话,就要Repository Not Found错误了)

5. 从github 拉最新版本[假设别人在其它地方更新了github上的版本,须要将这些更新拉到本地来] app

git pull origin master

从origin[github远端] 拉版本到本地的master 分支 eclipse

git diff HEAD
查看新版本里有哪些变化

6. 查看Stage中的变化

以前提到过,git add 加进来的文件,并无最终造成新的版本,而是被提交到一个叫作‘stage’的状态,因此在git add 以后,在commit以前,能够经过diff工具来查看stage中有哪些更新。 svn

git diff --statged

(注:这时候若是对文件进行了修改,而没有从新git add,则stage中仍然保持着上次add的内容,这时CI也只会CI上次git add时候文件里的内容)

若是git add某个更新以后又忽然不想提交了, 工具

git reset filename
就会将stage中文件更新删除,但放心 ,并不会删除你本地文件内容的更新, 文件只是回到了modified状态

7. 恢复文件

git reset只是将文件从staged状态从新置成modified状态,但若是想该文件上次提交后的全部更新,须要用到 学习

git checkout --filename

注意,– 千万不能少,–表示单个文件,若是没有–,则表示分支名称,分支的概念后面再详细讲。

注意, git checkout 只能将处于modifed状态的文件revert到以前的末修改前的状态,而若是一个文件的已经git add进入了staged状态,则checkout对其没有效果。那么如何将一个处理staged状态的文件直接恢复到未修改的状态我还没找到,姑且先把问题留在这里吧是,菜鸟刚入门,你们见笑了。

8. 建立一个分支

git branch clean_up

建立一个叫作clean_up的分支(这里这个教程有些坑爹了,起个名字叫clean_up,加之英文没有注意,使得我一开始觉得这是要对前的分支作一些清理工做,汗啊汗)

git branch
能够查看当前系统里有哪些分支,并且能够看出正在使用的是哪个分支。

切换到clean_up分支

git checkout clean_up
以前用 git checkout 回滚文件修改时讲到过,– 是表示文件回滚,若没有”–“,则表示是一个分支的切换。


在clean_up分支中作一些改动,

git rm '*.txt'
提交

git commit -m 'remove all txt'
将clean_up版本push到github

git push origin clean_up
github就有两个版本,一个是master,一个是clean_up

切换回master分支,merge clean_up分支中的更新

git checkout master && git merge clean_up
clean_up已经完成了本身的使命,能够清除掉了

git branch -d clean_up

git push
将master中的最新版本push到github


至此,TryGit基本教程就结束了。学习事后,对repository,branch,modied 状态,Staged状态有简单的认识,对于一些基本命令的有必定的掌握。估计到熟练及精通还有很长的路要走,加油。

——————————————————-
TryGit地址:http://try.github.com

再补一个学习git的好地方,http://gitbook.liuhui998.com 这里比较偏重git的实现。

SVN大哥感受有的时候仍是不太给力,本想着换hg了,不过此次小强回来极力推荐git,加上搜了一下git windows下也有像totoise svn的工GUI工具了,Eclipse下的EGit支持也不错,那后面就转投git之下吧。下面是相关的开发工具和文档的连接:

Github for Windows: http://code.google.com/p/msysgit/downloads/list?can=3

TortoiseGit : http://code.google.com/p/tortoisegit/downloads/list

EGit: http://www.eclipse.org/egit/download/

tortoiseGit 是依赖github的,注意两个app的版本对应关系。
中文教程: http://www.bitsun.com/documents/gittutorcn.htm

http://progit.org/book/zh/

下面是大牛leemars推荐的一些书和网站:

Gitready: http://gitready.com/

Git from the bottom up

Pro Git

Git Immersion
相关文章
相关标签/搜索