一、建立版本庫
git init 新建倉庫
git add file 新增
git commit -m "description" 提交至倉庫
git status 狀態
git diff sta 顯示修改
二、時光機穿梭
git log 檢視提交歷史,以便確定要回退到哪個版本
git log --pretty=oneline 簡化檢視提交歷史
git reset --hard head^ 返回上乙個版本
git reset --hard commit_id 返回指定版本
git reflog 檢視命令歷史,以便確定要回到未來的哪個版本。
三、緩衝區概念
git checkout -- file (其實是用版本庫里的版本替換工作區的版本,無論工作區是修改還是刪除,都可以「一鍵還原」)
場景1:當你改亂了工作區某個檔案的內容,想直接丟棄工作區的修改時,用命令git checkout -- file
git reset head file 場景2:當你不但改亂了工作區某個檔案的內容,還新增到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset head file,就回到了場景1,第二步按場景1操作。
git rm file 用於刪除乙個檔案
四、遠端倉庫 github:
要關聯乙個遠端庫,使用命令git remote add origin git@server-name:path/repo-name.git;
關聯後,使用命令「git push -u origin master」第一次推送master分支的所有內容;
此後,每次本地提交後,只要有必要,就可以使用命令git push origin master推送最新修改;
從遠端庫轉殖:
git clone [email protected]:michaelliao/gitskills.git
要轉殖乙個倉庫,首先必須知道倉庫的位址,然後使用git clone命令轉殖。
git支援多種協議,包括https,但通過ssh支援的原生git協議速度最快。
五、分支管理:
git checkout -b dev 首先,我們建立dev分支,然後切換到dev分支;
git checkout命令加上-b引數表示建立並切換,相當於以下兩條命令:
$ git branch dev
$ git checkout dev
git branch 檢視當前分支
git checkout master 切換回master分支
git merge dev 把dev分支的工作成果合併到master分支上
git merge命令用於合併指定分支到當前分支。
git branch -d dev
解決衝突:master 和 dev 版本有衝突
git log --graph 命令可以看到分支合併圖
分支管理策略:
git merge --no-ff -m "merge with no-ff" dev 強制禁用fast forward模式,從分支歷史上就可以看出分支資訊
git merge --ff -m "merge with --ff" dev 用fast forward模式,但這種模式下,刪除分支後,會丟掉分支資訊
bug分支
git stash 儲存當前工作現場
git stash list 檢視儲存的工作現場
git stash drop 刪除現場
git stash pop 恢復現場,並刪除現場
feature 分支
開發乙個新feature,最好新建乙個分支;
git branch -d 如果要丟棄乙個沒有被合併過的分支,可以通過git branch -d 強行刪除
多人協作
git remote
git remote -v 檢視遠端庫資訊
git push origin dev 推送其他分支
git checkout -b dev origin/dev 建立遠端origin的dev分支到本地
git branch --set-upstream-to=origin/dev建立本地分支和遠端分支的關聯
git pull 處理衝突
標籤git tag 檢視所有標籤
git tag 對當前分支,新建乙個標籤
git tag id 對歷史版本,新建標籤
git tag -a -m "***xx" 指定標籤資訊
git tag -s -m "***xx" 用pgp簽名標籤
git show 顯示標籤具體資訊
自定義git
git config -l 顯示配置資訊
git config --global color.ui true git顯示顏色
忽略特殊檔案
編寫 .gitignore 檔案,儲存要忽略的檔名
配置別名
git config --global allas.st status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.unstage 'reset head'
配置git的時候,加上--global是針對當前使用者起作用的,如果不加,那只針對當前的倉庫起作用。
每個倉庫的git配置檔案都放在.git/config檔案中.
cat .git/config 檢視配置檔案[allas]後面
當前使用者的git配置檔案放在使用者主目錄下的乙個隱藏檔案.gitconfig中
.搭建git伺服器
at指令 meid AT指令大全詳解完整版
file f 學習資料 at指令大全 at指令大全詳解完整版.txt 2012 03 12 09 50 51 一 一般命令 1 at cgmi 給出模組廠商的標識。2 at cgmm 獲得模組標識。這個命令用來得到支援的頻帶 gsm 900,dcs 1800 或pcs 1900 當模組有多頻帶時,回...
mysql完整版 MYSQL安裝(完整版)
一 完全解除安裝mysql yum remove mysql mysql server mysql libs compat mysql51 rm rf var lib mysql rm etc my.cnf 檢視是否還有mysql軟體 rpm qa grep mysql 如果存在的話,繼續刪除即可。...
php完整版,ThinkPHP5 0完整版
thinkphp5.0版本是乙個顛覆和重構版本,官方團隊歷時十月,傾注了大量的時間和精力,採用全新的架構思想,引入了更多的php新特性,優化了核心,減少了依賴,實現了真正的惰性載入,支援composer,並針對api開發做了大量的優化,包括路由 日誌 異常 模型 資料庫 模板引擎和驗證等模組都已經重...