【ZZ】TryGit 教程

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


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

git status

可以看到 git仓库当前的状态 ”# Initial commit“


2. 增加一些文件

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

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)

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

4. 将本地版本 push 到 github

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上的版本,需要将这些更新拉到本地来]

git pull origin master

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

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

6. 查看Stage中的变化

之前提到过,git add 加进来的文件,并没有最终形成新的版本,而是被提交到一个叫做‘stage’的状态,所以在git add 之后,在commit之前,可以通过diff工具来查看stage中有哪些更新。

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

展开阅读全文
打赏
1
6 收藏
分享
加载中
更多评论
打赏
0 评论
6 收藏
1
分享
返回顶部
顶部