git 查看提交記錄使用 git log 命令
HEAD 指針表示的是當前版本,上一個版本爲 HEAD^,再往上就是 HEAD^^,往上一百個版本能夠寫做 HEAD~100
git 回退至上個版本使用 git reset --hard HEAD^,若回退至指定版本,先使用 git log 查看版本的 hash,而後使用 git reset --hard <hash_version>
若是回退版本後又想回到最新的版本,在不知道最新版本 hash 的狀況下,使用 git reflog 查看全部 commit 的 hash,而後使用 git reset --hard <hash_version> 進行回退或者前進
git VCS 分爲工做區和版本庫(暫存區與分支),git add 命令將改動添加進入暫存區,git commit 將改動添加到分支
工做區的文件發生了改動,想要撤銷修改,可使用 git checkout -- <file_name> 來撤銷掉修改,注意必需要加 -- 符號(-- 與文件名之間有空格),不然 git 會認爲是要切換分支
若是文件發生了改動而且已經添加到暫存區,想撤銷掉暫存區的改動,使用 git reset HEAD <file_name> 命令,這樣就把修改了的文件又放回工做區了,暫存區是乾淨的,放置到工做區後,再使用 git checkout -- <file_name> 將放置在工做區的文件改動撤銷掉,這樣兩步操做就將文件的改動完全還原了
查看工做區與版本庫文件的差別可使用 git diff HEAD -- <file_name>(一樣,-- 與文件名之間有空格)
若是工做區的文件被誤刪除,想要恢復可使用 git checkout -- <file_name>,git checkout 實際上是用版本庫裏的版本替換工做區的版本操做,不管是工做區的修改仍是刪除,均可以用該命令一鍵還原
本地分支首次推向遠程分支的時候可使用 git push -u origin <branch_name>,其中 -u 參數是 --set-upstream 的簡寫
切換分支使用 git checkout <branch_name>,建立並切換新分支時須要加上 -b 參數,建立新分支使用 git branch <branch_name>,查看分支 git branch
合併分支使用 git merge <branch_name>,刪除使用 git branch -d <branch_name>
git merge 合併分支產生衝突時,先解決衝突,再添加至暫存區,而後提交。解決衝突時,<<<<< HEAD 到 ===== 部分是當前分支的內容,>>>>> 到 ===== 部分是須要併入的分支的內容,肯定好要保留好的內容後保存並退出,而後提交。提交成功後,使用 git log --graph 可查看分支合併圖
若是合併分支時產生衝突,想要還原回原來的狀態,能夠適用 git merge --abort 命令
git 能夠將工做區暫時的改動「存儲」起來,當你不想將改動提交至暫存區時。使用 git stash 命令便可。當你想將「存儲」的內容釋放出來時,先使用 git stash list 查看,而後進行恢復。恢復命令有兩條,使用 git stash apply <shash@{index}> (這個括號裏面的內容是可選的,能夠指定恢復第幾個 stash 的內容,在屢次 stash 時使用),能夠將存儲的內容恢復至工做區,可是存儲的內容並不會刪除,須要刪除可使用 git stash drop <shash@{index}> 命令;另外一種方式是使用 git stash pop <shash@{index}> 命令,該條命令會在恢復以後同時刪除 stash 區域的內容
查看遠程倉庫的信息使用 git remote -v
本地分支與遠程分支進行關聯使用 git branch -u <branch_name> origin/<branch_name>
建立標籤使用 git tag -a <tag_name> -m <tag_description> <commit_hash>,查看一個標籤的內容可使用 git show <tag_name>
推送標籤可使用 git push origin <tag_name>,一次性推送可使用 git push origun --tags 命令,刪除本地標籤可使用 git tag -d <tag_name>,刪除遠程標籤使用 git push origin :refs/tags/<tag_name>git