【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
相關文章
相關標籤/搜索