git 是當前最流行的版本控制程式之一,文字包含了 git 的一些基本用法
建立 git 倉庫
初始化 git 倉庫
mkdir project # 建立專案目錄
cd project # 進入到專案目錄
git init # 初始化 git 倉庫。此命令會在當前目錄新建乙個 .git 目錄,用於儲存 git 倉庫的相關資訊
初始化提交
touch readme
git add . # 將當前目錄新增到 git 倉庫中, 使用 git add -a 則是新增所有改動的文件
git commit -m "initial commit"
git remote add origin [email protected]:lugir/repo.git # 設定倉庫
修補提交(修補最近一次的提交而不建立新的提交)
git commit --amend -m "commit message."
提交衝突時可以合併後再推送
git pull # 獲取遠端版本庫提交與本地提交進行合併
git push # 提交
使用別人的倉庫
git clone http://path/to/git.git # clone 的內容會放在當前目錄下的新目錄
將**從本地回傳到倉庫
git push -u origin master
使用 git status 檢視檔案狀態
git status
檢視提交日誌
git log # 檢視提交資訊
git log --pretty=oneline # 以整潔的單行形式顯示提交資訊
git log --stat # 檢視提交資訊及更新的檔案
git 分支
git branch # 檢視分支
git branch 6.x-1.x # 新增分支 6.x-1.x
git branch checkout master # 切換到主分支
git branch -d 6.x-1.x # 刪除分支 6.x-1.x
git push origin :branchname # 刪除遠端分支
git 標籤
git tag # 檢視分支
git tag 6.x-1.0 # 新增標籤 6.x-1.0
git show 6.x-1.0 # 檢視標籤 6.x-1.0 的資訊
git tag -a 6.x-1.0 965e066 # 為之前提交的資訊記錄 965e066 加上標籤
git push --tags # 提交時帶上標籤資訊
git push origin :/refs/tags/tagname # 刪除遠端標籤
從 git 倉庫中匯出專案
git archive --format tar --output /path/to/file.tar master # 將 master 以 tar 格式打包到指定檔案
使用 git 的一些基本守則:
當要commit/提交patch時:
用 git 儲存空目錄
git 和 svn 不同,僅僅跟蹤檔案的變動,不跟蹤目錄。perforce 也是如此。所以,乙個空目錄,如果裡面沒有檔案,即便 git add 這個目錄,另外在別處 check out 的時候,是沒有這個空目錄的。
只跟蹤檔案變化,不跟蹤目錄,這麼設計是有原因的。但這會帶來一些小麻煩。有時候,確實需要在**倉庫中保留某個空目錄。比如測試時需要用到的空目錄。
變通的解決辦法是在空目錄下存乙個 .gitignore 檔案。然後 git add 此目錄後,相當於跟蹤了 .gitignore 檔案,產生的「***」就是這個「空」目錄也納入「跟蹤」,最終的效果是可以 check out 出乙個看起來空空的目錄。如果有許多這樣的空目錄,可以用下面的命令自動補充 .gitignore 檔案:
find . \( -type d -empty \) -and \( -not -regex ./\.git.* \) -exec touch {}/.gitignore \;
遞迴找尋當前目錄下,型別為目錄,且為空,也沒有 .git 開頭的檔案,在其中用 touch 新建乙個空的 .gitignore 檔案。然後 git add . 之後即可。
如果這些特殊檔案會對測試帶來干擾,那就只好在測試程式執行具體測試專案之前,先跑一段初始化目錄結構的**。另外可能還需要編寫負責清理的**。
git add -a 處理所有:新增、修改、刪除
git add . 處理新增和修改,不處理刪除
git add -u 處理修改和刪除,不處理新新增檔案
說"git add -a"等於"git add ."加上git add -u"其實不準確,只能說功能上前面乙個等於後面兩個,但它們使用的場景不同都有自己的作用。
$ git config --global core.editor gedit
git
差異分析工具
還有乙個比較常用的是,在解決合併衝突時使用哪種差異分析工具。比如要改用 vimdiff 的話:
$ git config --global merge.tool vimdiff
git 可以理解 kdiff3,tkdiff,meld,xxdiff,emerge,vimdiff,gvimdiff,ecmerge,和 opendiff 等合併工具的輸出資訊。當然,你也可以指定使用自己開發的工具。 git 基本用法
git相對於其他的版本控制,優勢在於分支管理。幾個常見情況及分支使用方法。1 對於自己的 修改後,卻已經不知道伺服器上的 是否已經發生改變。此時想上傳自己的 1 在master上建立分支mysrc 2 switch到mysrc分支,進行修改 3 修改好 後,進行git commit操作 4 swit...
GIT基本用法
下面是乙個在本地建立乙個git庫的步驟 1 初始化倉庫,並配置一些必要的變數 git init git config global user.name wensf git config global user.email wensf manridy.com 2 新增檔案過濾規則檔案 可選 檔名為 g...
Git基本用法
首次設定 git config global user.name 名字 git config global user.email email 複製 初始化git倉庫 目錄下沒有.git資料夾 git init 複製 git remote add origin 專案位址 複製 git clone 專案...