唔,git有本地版本管理功能,所以,這個完全是可以拿來自己做版本管理的。所以有必要學習一下,另外,在oschina上開了個賬戶,用來管理自己一些代碼,也是增加自己學習git的動力。
1. 使用clone下載整個倉庫。在當前文件夾建立了一個新的目錄,並將所有文件下載過來,存入新目錄。
git clone your.address.git
2. 使用git最常用的工作流程。包括從遠端倉庫下載文件到本地,修改,然后提交。
1)從遠程倉庫更新代碼下來。這需要你自己手動新建一個目錄,並且在目錄下面執行git init。該指令會把遠程倉的代碼下載到當前目錄下來。
git pull your.address.git
由於pull會自動merge代碼,所以,也可以選擇相對安全一點的fetch來下載遠端的代碼。
git fetch your.address.git
2)修改完代碼,將修改的信息添加到索引。這是我們在commit前必須要進行的一步,“-A”目的是將所有的修改都添加到索引中。
git add -A(git add -i,交互式添加)
或者是刪除,把已經add的修改信息從索引中刪除
git rm file.name
3)按照索引,向本地的倉庫提交修改。注意,只是提交修改到本地倉庫,並沒有發送到遠端倉庫。-m是提交時的備注消息,這里的提交消息為“test”。
git commit -m "test"
由於commit是將修改信息提交到當前branch,所以,如果你不確定是當前在哪個branch的話,可以用如下一句查看:
git branch
4)由於如果沒有執行過add,修改就不會被提交,所以,強烈建議在commit之前,使用status來查看文件狀況。
git status
5)將本地當前branch的全部文件push到遠端倉庫,如有沖突,強行覆蓋。這里的origin時指pull時的遠程倉庫,即上面的your.address.git。master是指提交到遠程倉庫的哪個branch。
git push origin master
3. branch的相關操作
1)branch就是不同的版本,我們或者可以用trunk來表示,相當於一個子倉庫。我們可以為基本款,豪華款或者精英款之類的各建一個倉庫。查看當前有哪些“子倉庫”:
git branch
2)創建一個新的branch,並把這個branch設置為當前branch:
git checkout -b new_branch_name
還有下面這條也是
git branch new_branch_name
上面創建的新分支默認是空的,或者是把創建前的no branch狀態掛載上來。我們也可以用已有的branch來初始化新的branch:
git checkout –b new_branch_name local_old_branch_name
3)或者,我們可以切換到已經有的branch上:
git checkout local_branch_name
4)刪除branch
git branch –D local_branch_name
4. 還原剛剛提交的某個文件
git checkout app/model/user.rb
5. 查看提交的歷史記錄
git log
6. rebase,reverse,revert
留白。
7. merge
留白。
8. diff
留白。
9. git show
查看所有branch,git show-branch --all
10. git config
設置開發者名稱,git config --global user.name "biiigfish"
設置開發者名稱(全局),sudo git config --system user.name biiigfish
設置開發者郵箱,git config --global user.email "piedgogo@gmail.com"
設置git輸出是彩色的,git config color.ui true
自動diff的顏色,git config --global color.diff auto
status要顯示顏色,git config --global color.status auto
git config --global color.branch auto
git config --global color.log auto #git log --grap 據說很漂亮
11. 代碼提交的管理
每次push或者pull都要手動的指定url,真是要煩透了。。。所以,能記住提交url才是硬道理。其中的關鍵,就在“ .git/config”中。先說指令:
# 其實主要就是git remote,實在不懂,可以看help信息git help remote. git remote add name url #添加一個名叫name的url,push的時候可以直接使用push name git remote set-url --add name url #給name再添加一個url。現在,push的時候就可以同時push到兩個url了。
上面添加的url,或者是remote也都是可以修改或者刪除的。具體看help。
