標籤:http 使用 檔案 資料 for io
花了一點時間來熟悉和整理git常用命令。
推薦的git學習資料:
1、搜“Git Community Book 中文版.pdf”,git社區書,內容全面且簡明扼要,第一推薦
2、搜“Git權威指南.pdf”,國內一高人寫的,非常細緻深入,各種解釋說明。不過,也太厚了點,可以作為文檔查詢
3、ProGit,在這裡讀“http://git-scm.com/book/zh”,寫得非常好,可選前面幾章作為初學。但內容不足夠
我先掃了3的某幾章,然後看1,基本足夠。偶爾查詢一下2.
感覺圖形化的版本變遷圖非常重要,所以推薦留意一下。
以下是整理的內容:
操作步驟和命令整理
安裝
yum install git-core //redhat或其他使用yum的系統
apt-get install git-core //ubuntu或其他使用apt-get的系統
配置
git config --global //配置 user name and email
本地命令
git init //初始化目前的目錄
git add //追蹤檔案,或添加檔案到暫存區。注意add是一個多用途命令,根據狀態不同而有不同含義
提交
git commit //提交暫存區檔案到倉庫
git commit -a //提交工作區已經修改的檔案和暫存區的檔案到倉庫
git commit --amend //修改最後一次提交,或說疊加到上一次提交
網路命令
git clone //擷取倉庫,並歸入本地origin名下
查看狀態
git status
查看提交曆史
git log
檔案比較
git diff //工作檔案比對暫存檔案
git diff --cached //暫存檔案和已經提交檔案
git diff --staged //暫存檔案和已經提交檔案
移除檔案
git rm
git rm --cached readme.txt //從暫存區及倉庫移除,以後不再跟蹤這個檔案
移動或改名
git mv
取消暫存
git reset HEAD filename
重設
git reset --hard HEAD //重設工作目錄(不包括未跟蹤的檔案)
---------要恢複單個檔案,可以checkout那個檔案:git checkout -- filename
回退
git revert HEAD //回退到上一次提交
git revert HEAD^ //回退到上上一次提交,可以增加“^”來回到更前一次提交
---------注意revert回退工作目錄後,可以立即做一個最新的commit,相當於拷貝一箇舊版本到最新的位置
合并
git merge hotfix //合并hotfix分支到當前分支。注意,只是合并,合并之後的結果並未提交commit
git merge upstream/master //合并一個遠程取回的分支
查看區別
git diff hotfix //查看當前分支與hotfix分支的差異
git diff //比較工作目錄和臨時目錄(索引或暫存)
git diff --cached //比較臨時目錄(索引或暫存)和上次提交
儲藏
git stash "why stash or other" //暫存一個狀態
git stash apply //恢複
git stash list //顯示以前各次stash資訊
git stach [email protected]{number?} //恢複某次stash
git stash clear //清除隊列
搜尋
git grep 字串 //搜尋一個字串
查看分支
git branch //查看本地分支
git branch -r //查看遠程分支
建立和跳入分支
git branch mybranch //建立一個分支,但並不設定為當前分支
git checkout mybranch //抽取某個分支為當前分支
-----上面兩步合一: get checkout -b mybranch
刪除分支
git branch -d 分支名
查看有哪些遠程倉庫
git remote
git remote show
git remote show 倉庫名 //查看某個遠程倉庫細節
添加遠程倉庫到本地列表
git remote add [在本地的簡稱] [遠方url] //給遠程倉庫增加一個本地簡稱
git remote rename 舊名 新名 //修改遠程倉庫在本地的簡稱
git remote rm 分支名 //刪除遠程倉庫在本地的串連
抓取遠程倉庫中更新的資料
git fetch 遠程倉庫名
------- fetch之後得到的分支命名為 “倉庫名/分支名”,但並沒有跳入這個分支,要另外checkout來跳入該分支
抓取遠程倉庫內容到本地並且合并
git pull
抓取遠程倉庫的分支
git checkout -b 本地分支名 遠程倉庫名/遠程分支名
------注意,“-b”表示在checkout之前branch,也即先將遠程分支擷取到本地,再checkout跳入
推到遠程倉庫
git push 遠程倉庫名 本地分支名:遠程分支名
----------如果分支同名,可以唯寫一個
----------如果不是“fast forward”則會失敗,因為遠程倉庫可能有比本地更新的內容
----------可以在分支名前面增加“+”來強制推送,但這樣會衝掉遠程倉庫中的新內容
刪除遠程分支
git push origin :serverfix //冒號前面是空白,相當於推了一個空白到遠程分支
顯示標籤
git tag
git tag -l ‘v1.4.2.*‘
git tag -a v1.4 -m ‘my version 1.4‘ //添加附註型標籤
啟動圖形介面
git gui //一個圖形操作介面,提供基本的操作
gitk //倉庫瀏覽器。感覺很好很重要