2011年2月21日 星期一

Git 使用教學

架設好之後,接下來就是測試看看,順便利用 Git 建立 Local Repository,剛開始的目錄 /path/git/prj1 裡面是沒有任何一個 Repository,我們可以利用下面指令建立:
1
2
3
mkdir /path/git/prj1
cd /path/git/prj1
git init
第一次 Commit to Remote Repository,需要底下步驟完成,才可以 clone,你在本機或者是其他機器使用下面步驟都是可以的
1
2
3
4
5
6
7
8
mkdir prj2
cd prj2
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin git@REMOTE_SERVER:/path/git/prj2
git push origin master
建立好之後,測試看看,Git clone 資料, 資料修改後上傳.(分兩個目錄測試)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 建立兩個測試目錄
mkdir /tmp/a /tmp/b
# 切換到 a 目錄
cd /tmp/a
# 先把遠端 repo 抓下來
git clone http://example.com/path/git/prj2
cd /tmp/b
git clone http://example.com/path/git/prj2
cd php
# 增加 test.php 檔案
echo "test" > test.php
# 新增到 server
git add test.php
# 送出 commit 
git commit -m "add test.php"
# push 到伺服器
git push
#切換 a 目錄
cd /tmp/a/php
# 抓取伺服器上面新檔案 test.php
git pull


首先,開啟一個專案只要輸入


git init


再來,每次修改好了以後,可以先將修改存入stage


git add <modified files>


若一次修改大量檔案,可以將所有檔案修改都add進去stage


git add .


之後commit提交一次的修改


git commit -m "註解"


另外也可以把git add與git commit用一個指令完成


git commit -a -m "註解"


git特別的一點是,他可以在本地端開啟並使用。上面這些用法完全不用伺服器,本機就可以執行。

本地端會有自己的repo,可以在飛機上,各種沒有網路的地方都可以順利使用並提交任何變更。

等您覺得修改好了,可以放上伺服器的時候,確保網路連線並輸入


git push


就可以將這邊的檔案與變更提交到github上面。
如果您在github上的版本較新,也可以輸入


git pull


更新本地端的repo。

如果今天tom的test repo有了新的變更,告訴billy,billy要將變更merge到自己的repo中,可以在本地端輸入


git pull git://github.com/tom/test.git


pull這個指令其實涵蓋了fetch(將變更複製回來)以及merge。
因此經過merge後,tom的變更就加入到billy的repo囉!

另外版本控制系統的branch功能也很有意思,若您的程式碼同時要修改bug,又要加入新功能,可以fork出一個branch,一個專門修bug,一個專門加入新功能,等到穩定後再來merge


git branch bug_fix #建立branch,名為bug_fix
git checkout bug_fix #切換到bug_fix這個branch
git checkout master #換為主要的repo
git merge bug_fix #把bug_fix這個branch和現在的branch合併
git push origin bug_fix:refs/heads/bug_fix #把bug_fix這個branch推至遠端repo上面


若有branch在remote,想要查看並checkout出來


git branch -r #查看遠端branch
git checkout -b bug_fix_local bug_fix_remote #把本機端切換為遠端的bug_fix_remote branch,並命名為bug_fix_local


還有其他可以觀看repo狀態的工具


git log #可以查看每次commit的改變
git diff #可以查看最近一次改變的內容,加上參數可以看其他的改變,並互相比較
git show #可以看某次的變更


若想知道目前repo的狀態,可以輸入


git status



這邊只是一些簡單的功能,還有更多的功能,等大家去摸
想要深入了解git,可以看
http://excess.org/article/2008/07/ogre-git-tutorial/
這個教學影片說明的很詳細。

也有很多小工具,比如這個
http://gugod.org/2008/11/github-badge.html
可以把您目前的github repos顯示在blog上面

希望大家也能在git上面使用github開心的開發!

參考資料
http://github.com/guides/home
http://kylecordes.com/2008/04/30/git-windows-go/
http://nathanj.github.com/gitguide/creating.html
http://www.qweruiop.org/nchcrails/posts/49





http://slobozincur.appspot.com/777bar.blogspot.com/2011/01/git.html

沒有留言:

張貼留言