標籤:blog c code tar http a
Git 屬於分布式版本控制系統( Distributed Version Control System,簡稱 DVCS )用戶端並不只提取最新版本的檔案快照,而是把原始的代碼倉庫完整地鏡像下來。這麼一來,任何一處協同工作用的伺服器發生故障,事後都可以用任何一個鏡像出來的本地倉庫恢複。因為每一次的提取操作,實際上都是一次對代碼倉庫的完整備份。更進一步,許多這類系統都可以指定和若干不同的遠端代碼倉庫進行互動。籍此,你就可以在同一個項目中,分別和不同工作小組的人相互協作。你可以根據需要設定不同的協作流程。
Git 的基本工作流程:
1. 在工作目錄中修改某些檔案。
2. 對這些修改了的檔案作快照,並儲存到暫存地區。
3. 提交更新,將儲存在暫存地區的檔案快照轉儲到 git 目錄中。
Git簡單使用
// 建立伺服器代碼倉庫
sudo useradd git
sudo passwd git
sudo mkdir -p /var/git.server/project1
cd /var/git.server
sudo chown git project1
sudo chgrp git project1
// 建立忽略
cd project1
$ cat > .gitignore << end
> *.[oa]
> *.so
> *~
> !a.so
> test
> tmp/
> end
sudo su git
sudo git --bare init
// 用戶端使用
// 從伺服器複製程式碼程式庫
git clone [email protected]:/var/git.server/project1 project1
git add a.txt // 添加新增檔案
git add . // 添加新增檔案
git commit -am "New Commit" // 提交版本
git commit --amend -am "Rename New Commit" // 重新提交,更改注釋
git checkout -b abeen // 建立abeen分支
git branch // 查看所有分支
git checkout master // 切回master分支
git merge abeen // 合并abeen分支到master
git pull origin master// 從伺服器重新整理最新代碼
git push origin master// 將代碼重新整理到伺服器
git reset HEAD^ // 恢複到上次提交狀態(HEAD^、HEAD~4、commit-id、tag)
git status // 查看當前track狀態
git log // 查看提交日誌
git log -3 // 查看最後三條提交日誌
git log -3 --stat // 顯示簡單的統計資訊
git log -l -p // 顯示修改的詳細資料
// 階段性版本
git tag v0.9 // 建立標籤
git tag // 顯示所有標籤
git log v0.9 // 用標籤顯示提交狀態
git show --stat v0.9 // 用標籤顯示提交基本資料
git rm filename // 刪除程式碼程式庫裡的檔案
git checkout HEAD^ -- filename // 恢複檔案
git rm --cache filename // 只從程式碼程式庫刪除檔案,工作目錄檔案成未跟蹤狀態
git checkout HEAD^ -- filename // 簽出以前的某個版本
git mv filename dirname // 移動檔案
git show filename // 查看某個提交版本的具體資訊
git diff HEAd^ filename // 比較版本差異
git reset -hard commit_id //恢複之前版本
遠程倉庫
git remote // 查看當前遠程庫
git remote -v (verbose簡寫)// 顯示對應的複製地址
git remote add [shortname] [ulr] // 添加遠程倉庫
git fetch [remote-name] // 擷取遠程倉庫資訊
git push origin master // 推送資料到遠程倉庫
git remote show [remote-name] // 顯示遠程倉庫資訊
git remote rename pb paul // 修改遠程倉庫對應名稱
git remote rm paul // 刪除遠程倉庫
---------------------------------------------
更多內容請參考《Pro Git》