淺顯易懂完整的git學習教程在這裡
廖雪峰的官方**-git教程
簡單來說,git的工作流程很簡單,我們把整個過程中檔案的轉移分為3個區域:工作區,暫存區,分支。
工作區就是我們對檔案進行操作的地方,比如你在本地git倉庫修改檔案,編寫**的檔案儲存空間。現在你的檔案改好了,想把它提交到git倉庫中,先要把它提交到暫存區,最後再提交到分支。預設的分支為master,也可以自己建立分支。這樣檔案就被儲存到git倉庫裡了。
進入乙個資料夾,git init
新建乙個git倉庫a
git add
將檔案新增到到暫存區
git commit -m '***'
將檔案提交到分支,引數-m後面寫上對本次提交的說明,最好寫上
git status
顯示倉庫當前狀態
git diff
檢視各版本檔案的不同,顯示的格式為unix通用的diff格式
git log
顯示時間最近到最遠的提交版本的詳細資訊,加上引數--pretty-- oneline
顯示簡要資訊,其中有版本號
在git中,head
表示當前版本,上一版本為head^
,上上一版本為head^
或head~2
,以此類推。
git reset --hard head
將檔案重置為上乙個版本,也可通過版本好重置:git reset --hard 版本號
版本號只需打出足夠辨識的前幾位
git reflog
顯示出每一歷史命令
git diff head --
檢視最新版本庫與工作區檔案的區別
git checkout --
撤銷檔案在工作區的修改(尚未提交到分支)回到最近一次add
或commit
是的狀態
git reset head
撤銷暫存區修改,放回工作區
git rm
從版本中刪除檔案,要commit
我這裡以github為例
建立ssh key(本地庫與遠端庫關聯的金鑰)
在shell中輸入ssh-keygen -t rsa -c 'youremail@example.com'
,再在github使用者功能下,新增進去金鑰,建議新增id+rsa.pub的內容
關聯github上的git倉庫,先建立乙個倉庫,然後在本地倉庫執行命令:
git remote add origin git@github.com:git push -u origin master
把本地庫的master推送到github的遠端庫上,第一次推送加上引數-u,還會把本地的maste分支和遠端的master分支關聯起來,以後就可以只用git push origin master
推送就行了
git clone git@github.com:分支讓我們跟方便的管理專案,比如乙個專案正式的發布版本在master分支上,那我們不可能在master上直接改,出差錯了怎麼辦。一般都會建立乙個新分支,比如分支branch1,作為專案發布前的主分支。專案組的工作人員在沒人建立乙個分支mybranch,以branch1為模板,各自寫自己負責的**,在合併到branch1上,測試通過後,再把branch1合併到master上。
git checkout -b 《分支名》
建立並切換分支,相當於兩條命令:git branch xx
;git checkout ***
git branch
檢視當前所有分支 ,*會出現在當前所在分支前
git merge xx
將xx分支合併到當前分支上(這樣會採用fast forward 模式,這種模式刪除分支後會丟掉分支資訊)
git merge --no-ff -m '***' 分支名
用–no-ff 引數禁用fast froward
git branch -d xx
刪除xx分支 若加上引數-d
表示強行刪除
如果master和別的分支都分別有新的提交,git無法快速合併,只能試圖將各自的修改合併起來,但可能會引起衝突,必須手動解決衝突再提交。
git log --graph
顯示分支合併圖
git stash
儲存當前未提交的改動。如果你得為你的專案新加乙個功能,在你的分支上**寫了一半了,結果專案中發現了乙個bug,你必須馬上解決。可你又無法提交你現在改動的專案(因為還未完成),這個時候你可已選擇儲存它,回到未改動前的版本,解決了bug再回來繼續寫完它。
git satsh list
顯示儲存的工作現場
git satsh pop
恢復工作現場的同時把stash的內容也刪除了
git remote -v
檢視遠端庫資訊,引數-v
顯示更詳細的資訊
git checkout -b dev origin/dev
建立遠端的dev分支到本地
git pull
得到當前分支的最新提交
如果git pull
提示「no tracking information」,則說明本地分支和遠端分支的鏈結關係沒有建立,用命令git branch --set-upstream branch-name origin/branch-name
git的標籤雖然是版本庫的快照,但其實它就是指向某個commit
的指標,方便人們查詢
切換到需要打標籤的分支上,git tag
打上標籤,like:git tag v1m
預設標籤打在最新提交的commit
上,若想打在之前的commit
上,就要找到那個commit
的id,然後
git tag
git tag
檢視所有標籤 標籤按字母順序排序,而非創立的時間順序
git show
檢視某一標籤的具體資訊
git tag -a -m 'xx'
建立帶說明的標籤
git tag -d
刪除(本地)標籤
git push origin
推送某個標籤到遠端
git push origin --tags
推送全部尚未推送到遠端的本地標籤
若要刪除已推送到遠端的標籤,先刪除本地標籤,再刪除遠端標籤,刪除遠端庫上的標籤:
git push origin :refs/tags/
git rm --cache submodule_name
刪除子模組
git branch --set-upstream-to=origin/dev dev
關聯遠端分支
Git學習 git常用命令
我們常用 p 選項展開顯示每次提交的內容差異,用 2 則僅顯示最近的兩次更新 還有許多摘要選項可以用,比如 stat,僅顯示簡要的增改行數統計 p 按補丁格式顯示每個更新之間的差異。stat 顯示每次更新的檔案修改統計資訊。shortstat 只顯示 stat 中最後的行數修改新增移除統計。name...
git常用命令學習
1.提交專案 1.遠端建立專案 git clone 鏈結 拷貝下來 git add 增加的檔案 新增本地新增內容 git commit m 注釋 或者 a進入圖形介面寫入注釋 git push original master 將本地檔案提交遠端倉庫 當我們後續改變公升級專案後,再次提交如下 git ...
Git 常用命令學習
學習了網上一些git的資料 包括廖雪峰的教程 總結一下 1 git和svn命令的對比 git clone svn checkout git checkout svn switch git push svn commit 2 git add readme.txt 是把readme.txt從worksp...