yum install -y git
安裝完成後配置以下用戶名和郵箱:git
git config --global user.name "Your Name" git config --global user.email "email@example.com"
經過 git init
命令把當前目錄變成Git能夠管理的倉庫(先cd到要變成倉庫的目錄下執行命令git init
,執行完命令後就能在當前目錄下看到.git文件,此文件爲隱藏文件,不能刪除,用於跟蹤目錄變化)github
經過 git add <filename>
把文件添加到暫存區(重複操做添加多個文件到暫存區)app
經過 git commit -m "版本修改註釋"
將文件提交到倉庫ssh
經過 git status
查看倉庫當前的狀態(能查看到是否有修改,是否已提交)url
經過 git diff <filename>
查看當前內容和分支中最新版本的內容的修改狀況(查看清楚修改了什麼內容後就放心提交了git add <filename>
)日誌
經過 git log
查看從最近到最遠的提交日誌(能夠加上參數簡單查看git log --pretty=oneline
)(而後根據顯示的版本號回退版本)code
經過 git reset --hard HEAD^
回退到上一個版本(HEAD
表示當前版本,HEAD^
表示上一版本,HEAD^^
表示上上一版本)(回退方法一)rem
經過 git reset --hard <commit id>
回退到指定id的版本(<commit id>用命令git log
查看)it
經過 git reflog
命令查看命令歷史就能夠查看到將來的版本號了(當你回退到某個版本後,再像恢復到最新版本時,用git log
命令已經查看不到最新版本的commit id 了,這時經過git reflog
命令查看命令歷史)ast
經過 git checkout -- <filename>
能夠撤銷文件在工做區的所有修改。 (有兩種狀況: 一種是 <filename> 自修改後尚未被放到暫存區,如今,撤銷修改就回到和版本庫如出一轍的狀態; 另外一種是 <filename> 已經添加到暫存區後,又做了修改,如今,撤銷修改就回到添加到暫存區後的狀態。)
經過 git reset HEAD <filename>
能夠把暫存區的修改撤銷掉(unstage),從新放回工做區(git reset
命令既能夠回退版本,也能夠把暫存區的修改回退到工做區。)
經過 git rm <filename>
而且 git commit
刪除文件(通常狀況下,你一般直接在文件管理器中把 沒用的文件刪了,或者用 rm
命令刪了;如今你有兩個選擇,一是確實要從版本庫中刪除該文件,那就用命令git rm
刪掉,而且git commit
;二是刪錯了,由於版本庫裏還有呢,因此能夠很輕鬆地把誤刪的文件恢復到最新版本 git checkout -- <filename>
)
經過 ssh-keygen -t rsa -C "youremail@example.com"
來建立SSH Key(執行命令後一路按回車)(執行完成後會在用戶主目錄下多出一個.ssh 的文件夾,文件夾裏面有id_rsa私鑰和id_rsa.pub公鑰)
登錄GitHub 設置SSH Keys(填寫上一步生成的id_rsa.pub公鑰)
經過 git remote add origin git@github.com:kangvcar/learngit.git
把本地倉庫和遠程GitHub倉庫關聯(url從github的repo項目裏能夠找到)
經過 git push -u origin master
把本地倉庫的全部內容推送到遠程庫上(第一次使用加上了-u
,是推送內容並關聯master分支。以後推送直接git push origin master
)
遠程倉庫:(從遠程倉庫克隆到本地倉庫) 18. 經過 git clone git@github.com:kangvcar/xx.git
把遠程倉庫克隆到本地倉庫(url從github的repo項目裏能夠找到)
分支管理: 19. 經過 git checkout -b dev
來建立並切換到dev分支(-b
參數表示建立並切換分支,至關於git branch dev
和 git checkout dev
兩個命令的效果)
經過 git branch
來查看當前分支(當前分支前會有*號)
切換分支後 git add <filename>
和git commit -m "修改註釋"
這些操做都將在新分支dev上完成,與master分支沒有影響。
經過 git checkout master
切換回master分支。(若是dev分支沒有合併到master分支上,那麼在master分支上是看不到dev分支所作的修改)
經過 git merge dev
來把dev分支的工做成果合併到當前分支上(master分支)
經過 git branch -d dev
來刪除dev分支(上一步將dev分支合併到master分支後就能夠放心的刪除dev分支了)
經過 git merge --no-ff -m "合併註釋" dev
來合併分支的話,git會生成一個新的commit,這樣就不會刪除所合併分支的歷史了。(--on-ff
參數表示用普通模式合併,而不是快速模式;快速模式合併後會刪除合併前的分支,而普通模式不會刪除)(用此命令代替git mergo dev
)
經過 git log --graph
來查看分支合併圖(具體命令 gti log --graph --pretty=oneline --abrev-commit
)
經過 git stash
來存儲並隱藏現場(隱藏現場後能夠建立新分支去完成其餘工做,而不影響已經隱藏起來的現場;通常臨時須要修改bug,而手頭上又有未完成的工做是使用)
經過 git stash list
來查看隱藏現場的列表
經過 git stash pop
或 git stash apply
來恢復現場(git stash pop
恢復後刪除stash的內容;而git stash apply
恢復後不會刪除stash的內容,如需刪除用git stash drop
)(命令後面能夠接參數來恢復指定stash,如 git stash apply stash@{0}
,stash@{0} 經過git stash list
查看)
工做區就是咱們電腦裏能看到的目錄。 stage就是暫存區,經過git add <filename>
就是將文件提交到暫存區。 master就是master分支,經過git commit
就是將暫存區的文件更改提交到master分支上。