0.準備工做
0.1 git安裝
圖形客戶端建議使用source tree,
中文界面
http://www.sourcetreeapp.com/git
0.3 git幫助信息
git help
git help 指令名稱
0.4 git配置
顯示配置信息
git config -l --
global
修改基本配置
git config --global user.name 「姓名」
git config --global user.email 「郵箱」
git config --global color.ui auto
git config --global core.autocrlf input
git config --global push.default simple
0.5 git日誌
顯示全部或某個文件的
修改記錄
git log <可選的文件名>
顯示全部或某個文件的
修改記錄的概要(修改文件列別行數等)
git log --stat
顯示某次提交中
全部或某個文件
的具體修改內容
git show <提交ID>
<可選的文件名>
0.6 git操做記錄(用於無限悔棋)
git reflog show
1ab8fe7 HEAD@{0}: reset: moving to HEAD^
f902b09 HEAD@{1}: reset: moving to HEAD@{3}
1ab8fe7 HEAD@{2}: reset: moving to HEAD^
f902b09 HEAD@{3}: reset: moving to HEAD@{1}
1ab8fe7 HEAD@{4}: reset: moving to HEAD^
f902b09 HEAD@{5}: commit: test
1ab8fe7 HEAD@{6}: reset: moving to HEAD^
815cee5 HEAD@{7}: commit: test
1ab8fe7 HEAD@{8}: commit: added missed cacheLib.h
a724beb HEAD@{9}: pull: Merge made by the 'recursive' strategy.
git reset HEAD@{序號}
注意:沒有提交到倉庫中的代碼沒法恢復。
0.7 git倉庫構成
查看本地倉庫狀態
git status
On branch dev =》 本地倉庫當前branch名稱
Your branch is up-to-date with 'origin/dev'. =》 本地倉庫當前branch與遠程倉庫對應branch之間的差別
Changes to be committed: =》暫存區內容
(use "git reset HEAD <file>..." to unstage)
Changes not staged for commit: =》工做區內容 (對倉庫中文件的修改)
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
Untracked files: =》工做區內容 (對私有文件的修改)
(use "git add <file>..." to include in what will be committed)
顯示臨時緩衝區內容
git stash list
stash@{0}: On dev: clean 2
1.從遠程倉庫到本地倉庫
建立新的本地倉庫
git clone git@192.168.0.190:os.git <可選的本地倉庫目錄名稱>
從遠程倉庫獲取最新內容併合併到當前分支
git pull
從遠程倉庫獲取最新內容可是不合並
git fetch
2.從本地倉庫到遠程倉庫
本地倉庫更新到遠程倉庫
git push
3.從本地倉庫已有分支到私有分支
切換到已有分支
git checkout <分支名稱>
從當前分支建立一個新分支並切換到新分支
git checkout -b <新分支名稱>
從某個提交建立一個新分支並切換到新分支(用於查看內容或者查找問題)
git checkout <提交ID> -b <新分支名稱>
查看branch信息
git branch -v
刪除某個branch
git branch -D <分支名稱
>
3.從私有分支到本地倉庫已有分支
合併其餘分支到當前分支
git merge <其餘分支名稱>
解決衝突後,根據merge命令的提示將文件放入暫存區(stage區),而後提交blog
終止當前合併操做get
git merge --abortinput
合併某個提交到當前分支
git cherry-pick <提交ID>
5.從工做區到暫存區
將工做區中的全部或某個文件放到暫存區(stage區)
git add <可選的文件或者目錄名>
將工做區全部對倉庫中代碼的修改(tracked文件)放到暫存區(stage區)
git add -u
查看暫存區中對倉庫中全部或某個文件的修改
git diff --cached <可選的文件或者目錄名>
查看工做區中對倉庫中全部或某個文件的修改
git diff <可選的文件或者目錄名>
6.從暫存區到工做區
將暫存區中對倉庫中全部或某個文件的修改恢復到工做區
git reset HEAD <文件或者目錄名>
7.從暫存區到本地倉庫
將暫存區中的內容提交到本地倉庫(簡單註釋)
git commit -m "註釋信息"
將暫存區中的內容提交到本地倉庫(複雜註釋,將會進入文本編輯界面)
git commit
修改上次提交的註釋信息
git commit --amend -m "註釋信息"
8.從本地倉庫到暫存區
恢復到某次提交前的狀態(修改內容仍然在工做區)
git reset <提交ID^>
注意:本操做實質上是
復位到某次提交的前一次提交,並用其內容覆蓋暫存區的內容,但當前修改內容仍然在工做區
9.從本地倉庫到工做區
取消對某個文件或者文件夾的修改
git checkout <文件或者目錄名>
注意:本操做實質上是用本地倉庫中的數據覆蓋工做區中的內容
恢復到某次提交前的狀態(工做區修改內容被丟棄
)
git reset <提交ID^>
注意:
1.本操做實質上是
復位到某次提交的前一次提交,並用其內容覆蓋暫存區和工做區的內容
2.若是工做區無修改內容,或者修改內容已保存到臨時緩衝區,能夠使用該命令
查看某次提交的內容或者查找問題,查看完畢後經過reflog恢復。
10.從工做區到本地倉庫
直接將文件提交到本地倉庫(!!不通過暫存區,慎用)
git commit -a -m
"註釋信息"
11.從工做區到臨時緩衝區
將工做區中全部對倉庫中代碼的修改(tracked文件)放到臨時緩衝區(stash區)
git stash save "緩衝區描述"
12.從臨時緩衝區到工做區
將臨時緩衝區(stash區)
中全部對倉庫中代碼的修改(tracked文件)彈出到工做區
git stash pop stash@{序號}
顯示臨時緩衝區某個緩存的內容
git stash show
stash@{序號}
顯示臨時緩衝區某個緩存的內容
git stash show
stash@{序號}