Git--- download網址:https://git-scm.com/downloadshtml
網上有不少Git安裝教程,若是須要圖形界面,windows下建議使用TortoiseGit,linux建議使用Git GUI或者GITK。linux
git config能夠配置git的參數,能夠使用git config --list
查看已經配置的git參數。其中有三個級別的保存位置,--system
、--global
、--local
,分別表示全部用戶(本系統)、當前用戶(全局)、本地配置(當前目錄),默認使用--local
。git
在使用Git提交前,必須配置用戶名和郵箱,這些信息會永久保存到歷史記錄中。sql
git config --global user.name "Tocy" git config --global user.email zyvj@qq.com
若是在windows下建議仍是配置下默認文本編輯器core.editor
和差別分析工具merge.tool
。docker
能夠直接調用git init
初始化當前目錄,即建立Git倉庫。shell
若是須要克隆遠程倉庫,能夠使用git clone
,好比:windows
git clone https://git.oschina.net/Tocy/SampleCode.git
在windows下的Git GUI中,提交很簡單,右鍵-TortoiseGit-Commit。那麼命令行下須要怎麼處理?
Git中每一個文件都有三種狀態:committed、staged、modified。它們之間關係以下:緩存
commit <-- stage <-- modify
commit --> --- --modifybash
咱們獲取的Git倉庫中的全部文件都是committed狀態,若是你在本地修改了文件a,a的狀態就變成modified的;若是使用git add a
,a的狀態變成staged;若是使用git commit
,a的狀態就變成commited。這種狀態變化也說明覆制代碼是很方便的,可是提交更新請慎重。
固然還有一種文件狀態,未跟蹤狀態(unversioned/untracked),經過使用git add
能夠把未跟蹤狀態變動爲staged;經過git rm
能夠將staged或者committed狀態變爲未跟蹤狀態。編輯器
一般提交前先檢查下修改了什麼內容,當前Git目錄下各文件的狀態。
$ git status
On branch master
Initial commit Untracked files: (use "git add <file>..." to include in what will be committed) Readme.md nothing added to commit but untracked files present (use "git add" to track)
git add能夠添加文件或者目錄,也能夠使用通配符。好比:
git add Readme.md # add file only git add *.cpp # add all cpp files git add /home/code/ # add all files in /home/code
git diff能夠查看當前目錄的全部修改。
提交以前,仍是單獨確認下處於staged狀態的文件有哪些,並保證修改正確。在實際應用中,可能還須要使用git diff
導出PATCH作代碼走讀。
能夠使用git diff --staged
或git diff --cached
查看staged與上次提交快照之間的區別。
提交前需慎重。直接調用git commit
會彈出編輯器,輸入提交日誌(若是是多行日誌,建議使用)。
針對單行日誌提交的狀況,能夠使用以下命令:git commit -m "add readme"
。
還有一種快捷的提交方式,直接跳過stage緩存區,直接提交當前目錄下的全部修改git commit -a
(使用這個命令前建議確認下當前目錄的修改是否正確、必須)。
git rm會把文件從當前目錄刪除(不會保存刪除的文件)。若是須要從Git倉庫中刪除,但保留在當前工做目錄中,亦即從跟蹤清單中刪除,能夠使用git rm --cached readme.md
。
能夠使用git log
查看當前工程的全部提交的日誌。
git log --stat # 僅顯示摘要選項 git log --pretty=oneline # 定製記錄格式 git log --graph # 圖像化分支和版本更新
能夠使用git remote
查看當前的遠程庫。git remote -v
能夠顯示對應的克隆地址。(對於多個遠程倉庫頗有用)
git remote add [short_name] [url]
能夠添加新的遠程倉庫。
git fetch [remote-name]
能夠從遠程倉庫抓取數據到本地。
也能夠使用git pull
git push [remote_name] [branch_name]
默認使用origin和master。
git remote show origin
git remote rename [old_name] [new_name]
git remote rm [remote_name]
可以使用git tag
顯示當前庫中的標籤。
git tag -a v0.1 -m "my version 0.1"
使用以下命令查看Tag日誌信息(指定對應標籤的名字)git show v0.1
也可以使用SHA-1的提交表示建立tag:git tag -a v0.2 [SHA-1] -m "my version 0.2"
默認的,git push不會推送標籤信息到遠程倉庫,須要經過命令顯式推送。git push origin v0.1
若是須要推送全部標籤,使用git push origin --tags
git分支是輕量級的,速度很快,僅記錄索引信息。
使用git branch
可顯示當前全部分支。
能夠使用--merged和--no-merged查看已經合併、未合併的分支。
能夠使用下面命令直接切換並建立分支git checkout -b testing
等價於
$ git branch testing # 建立testing 分支 $ git checkout testing # 切換到testing分支
注意切換分支時請保持工做目錄沒有未提交的修改。Git鼓勵使用分支,處理完問題以後合併分支便可。
將hotfix分支合併到master(主分支)上,須要經過下面命令:
$ git checkout master $ git merge hotfix
合併以後能夠使用git branch -d hotfix
刪除分支。
若是合併時存在衝突,須要手工修改。
轉載自:https://www.cnblogs.com/tocy/p/git-command-line-manual.html