初始化一個空git:
git init
從已有倉庫clone一個:
git clone git://10.85.21.71/vm/test.git kris_test //指定clone到本地kris_test目錄
檢視檔案狀态:
git status
Note: 當隻修改檔案權限時,git隻關注執行bit,其他bit改變之後git status不會受影響。
跟蹤或者添加檔案:
git add test //隻添加test檔案
git add . //添加已修改檔案和新檔案
git add –A //添加所有檔案,包括被删除的檔案
git add –u //添加已修改和被删除檔案
添加忽略檔案: //自己生成檔案等
建立.gitignore, 往此檔案添加内容即可,可以是相對路徑,可是比對格式,格式規範如下:
1. 空行和#開頭的行被git忽略。
2. glob模式比對(正規表達式簡化版本),有*,[abc],?,[0-9]。
3. 以/結尾的表明要忽略整個目錄。
4. 忽略指定模式以外的檔案或目錄,可以在模式前加上!取反。
Note: 想要忽略檔案,此檔案必須不能在git倉庫中。
檢視檔案差異:
git diff //檢視已修改檔案的差異, 比較已修改和暫存區檔案
git diff –cached //檢視暫存區和git目錄的差異,也可以用git diff –staged
git diff test.file //檢視某個檔案的差異
送出檔案: //git add/rm之後才會被送出
git commit
git commit –a //相當于git add + git commit
删除檔案:
git rm file //git rm沒有 git rm .
git rm –f file //删除之前修改并且已放到暫存區域需要加-f
git rm –cached file //隻删除git倉庫檔案,本地儲存,例如日志檔案。
git rm dir/\*.log //遞歸删除dir下的*.log檔案,\是git自己的文法,表示要遞歸,
有\則隻删除目前目錄。
檢視送出曆史:
git log
git log –p -2 //-p顯示每次送出内容差異,-2顯示最近兩次更新。
git log –stat //僅顯示簡要的增該行數統計
git log –pretty=oneline //隻在一行顯示commit資訊,pretty後面可以跟online,format, short, full等。
git log –pretty=format:”%h - %an:%s” //送出簡短哈希串,作者,送出說明。
git log –since=2.weeks //顯示最近兩周送出
git log –author=Kris //隻顯示作者Kris的送出
git log file //隻顯示某個檔案或者目錄的送出資訊
修改最後一次送出:
Note: 在操作次指令前先運作git add/rm将檔案加到暫存區域才有意義。
取消已修改的檔案:
git checkout file //file會被還原成未修改狀态
取消已暫存的檔案:
git reset –hard //本地目錄,暫存區域都會被reset
git reset –soft //最後一筆改動會到暫存區, 本地和暫存區域原有部分不變化
git reset –mixed //預設模式,暫存區域會被改變,本地目錄不做變化
git reset –hard HEAD^ //上一次送出,也可以寫成HEAD~1。
git reset –hard HEAD^^ //上上一次送出,可以寫成HEAD~2.
檢視遠端倉庫:
git remote –v
添加遠端倉庫:
git remote add qcs_mirror git://10.85.21.71/x6_vm/non_hlos.git //将遠端non_hlos git倉庫添加到本地,名字為qcs_mirror, 後面操作qcs_mirror就等同于操作遠端non_hlos git。
從遠端倉庫抓資料:
git fetch qcs_mirror //會将遠端倉庫資料抓到本地,但是并不做merge
抓取資料并合并:
git pull //相當于git fetch + git merge, 抓取的是目前分支對應遠端倉庫資料并和本地的代碼合并。
推送資料到遠端倉庫:
git push origin master //本地master分支的code推送到遠端origin倉庫中。Git clone時預設使用master作為遠端倉庫對應本地的名字。
檢視遠端倉庫資訊:
git remote show origin
重命名遠端倉庫名字:
git remote rename qcs_mirror qth_mirror //将遠端倉庫對應本地的名字從qcs_mirror改成qth_mirror。
删除遠端倉庫:
git remote rm qcs_mirror //隻是删除遠端倉庫和本地的連接配接,并不是真删除了遠端倉庫的東西了。
列出所有标簽:
git tag
列出某部分标簽:
git tag –l ‘v1.0.*’
建立标簽:
git tag v1.0 //标簽名字是v1.0
git tag –a v1.1 –m “version 1.1” //其實是多加了一個commit,一般沒必要用這個。
檢視标簽:
git show v1.0 //标簽是就commit打的,是以看到的commit是基于當時打tag的時間點。
後期添加标簽:
git add –a v1.1 commit_id //在送出時忘記打标簽,也可以後期基于某個commit id補上。
推送标簽:
git push origin v1.1 //推送v1.1這個标簽到origin 倉庫
git push origin –tags //推送所有本地新增标簽到origin倉庫
删除标簽:
git tag –d v1.1 //删除本地标簽
git push origin :refs/tags/v1.1 //删除遠端倉庫标簽