Git是一個很好用的版本控制系統,本文對於經常使用的一些命令進行了彙總。git
https://github.com/右上角點擊"+"號,New repository,建立一個倉庫,以後輸入倉庫的名字,描述和選擇pubic/private。github
爲了能從遠程倉庫拉取文件到本地或將本地文件push到遠程倉庫,須要配置ssh key,不然會出現全選不容許的錯誤(permission denied)。點擊右上角頭像-->settings-->SSH and GPG keys,點擊New SSH key。ssh
而後cd ~/.ssh,進入本機ssh目錄,找到xxx.pub的文件,將文件內容複製到Key文本框中,點擊Add SSH key。fetch
當倉庫建立後,會建立一個默認的分支master,代碼,文件保存在遠程存儲倉庫中,若是咱們要把遠程代碼拿到本地來。進入咱們新建立的參考中,在右側能夠看到一個綠色的按鈕「Clone or download」,點擊以後能夠看到一個git url,或者能夠用ZIP的格式把文件下載下來,若是用git url的話須要用到命令:url
git clone https://github.com/XXX/$repository_name.git
這樣在當前路徑下就出現了$repository_name的文件夾,裏面就是遠程倉庫中的文件。spa
從遠程考本到本地後,咱們是在master分支上,想要查看當前代碼在哪一個分支上可使用命令,會列出本地的分支都有哪些,以及當前是在哪一個分支上。3d
git branch
要查看本地倉庫的狀態可使用命令,能夠看到哪些文件進行了修改等信息。版本控制
git status
若是要再當前分支上再建立出一個新的分支,使用命令,這樣就會建立出一個名字爲branch_name的新分支,而且會自動換到這個分支上。指針
git branch branch_name // 建立branch_name分支 git checkout -b branch_name // 建立branch_name分支並從當前分支切換到新的分支
若是已經建立了branch_name分支,那麼我能夠在master分支和新建立的分支上進行切換,使用命令,這樣又回到了master分支上。blog
git checkout master
但新建立出來的分支只是在本地倉庫中,若是要同步到遠程倉庫中,須要使用命令,這樣在遠程倉庫中就會增長一個名字爲branch_name的分支。
git push origin branch_name
當對文件進行修改後,若是想查看具體某一個文件哪裏進行了修改與以前有什麼不一樣,可使用命令。
git diff file_name
須要提交這些修改時,首先要使用命令,將帶提交的文件加入臨界存儲區。
git add file1 file2
而後提交併加上提交說明,使用命令。
git commit -m "commit message"
而後同步到遠程分支上。
git push
在每次提交修改的時候都會帶一些commit message,若是想看當前分支的提交歷史,可使用命令:
git log
還能夠看一下某個文件某行內容被誰修改過,可使用命令:
git blame file_name
經過git log咱們能夠看到,每次提交都對應了一個編號(commit_id),若是我但願將多個commit合併爲一個commit時,須要使用命令,可是這個合併是有限制的,必須是從最近的一次提交開始的連續幾個提交。
git rebase -i commit_id
以後會進入一個配置文件,裏面列出了每次commit的id和list,前面還有一個字符,表示要進行rebase的動做,將最上面那條記錄的首字符修改成「r」,剩下修改成「f」。f表示後面的這條commit合併前面的這條commit,r表示使用這個commit,而且能夠從新編輯commit message。修改後繼續,就能夠重新編輯commit message。
這時能夠看到多條commit記錄被合併到一條了,而後將新的修改push上去,須要使用命令,這裏須要使用force-push才能將rebase後的修改推到遠程倉庫。
git push -f branch_name
當有多人同時對項目進行開發時,可能有其餘人已經向branch提交了新的commit,這是咱們本地的文件就不是最新的或者說與遠程倉庫不一樣步,若是想獲取遠程分支都有哪些修改,可使用命令。
git fetch // 只獲取遠程branch修改的信息,並不把本地分支與遠程分支同步
假設如今在master分支上,若是要把本地文件與遠程文件同步,須要使用命令。
git fetch // 獲取遠程branch修改的信息 git reset --hard origin/master // 將本地branch的指針指向遠程master的位置
在開發過程當中可能會遇到這樣的狀況,在開發一個模塊的過程當中,來了一個更緊急的任務,而以前的開發過程進行了一半,咱們須要保留勞動成果,等待一會繼續開發,這時候就須要使用命令。
git stash // 將沒有提交的修改保存
git stash list // 查看stash中都有哪些記錄
從git stash list中咱們能夠看到,每個stash中的存儲都是有編號的,stash{0},stash{1}等。若是這時候緊急的任務已經完成了,咱們須要繼續以前的開發,可使用命令,將以前存儲在stash中的修改恢復回來。
git stash pop stash{0} // 將編號爲{0}的這個修改恢復回來
若是要清空stash,可使用命令。
git stash drop