本篇文章對git使用過程中的一些常用的命令進行總結以及記錄,方便以後使用。
本節介紹git中相對重要的幾個概念,幫助更加透徹理解git的工作模式和實現流程。(以下概念部分只是我對這些概念比較直觀的理解,不是官方的直接定義)
工作區,即實際操作中我們能夠編輯操作的最為直觀的部分,一般我們在工作區進行內容或者專案的編輯,然後將工作區的內容add到暫存區(這個下面會講到),最後將暫存區的修改commit到版本庫中;恢復過程中,也可將版本庫或者暫存區的內容恢復到工作區。
版本控制軟體必須存在的部分,用來儲存提交的各個版本內容。版本庫中最為重要的概念就是暫存區;在git中,在版本庫和工作區之間有存在一層「暫存區」,暫存區顧名思義就是暫時存放的位置,可以更加靈活的操作儲存的版本,暫存區可以多次add,一次commit;commit之後的修改內容就到了版本庫中,即本地最終的存放位置,此位置在git本地目錄的.git資料夾中,預設為隱藏目錄,具體資訊可以檢視該目錄。
git中操作或者管理的是修改而不是檔案,什麼是修改,在git軟體中怎麼體現,這句話又該怎麼理解?我們可以通過乙個實驗進行驗證,將本地工作區的內容進行更改,add到暫存區中,此時再將工作區的內容進行第二次更改,這時執行commit命令,會發現在git的版本庫中只有第一次的修改被提交了,這個時候就是體現了暫存區的重要性,最終修改檔案沒有生效提交,就是因為最終內容沒有被add到暫存區中;這裡的修改指的是檔案的新建、修改、刪除統一稱為git中的「修改」。
首先強調一點,在實際開發工作過程中,應該禁用這種模式;為什麼要禁用這種模式,下面進行解釋:在進行多分支管理融合的時候,如果不顯示的指定,那麼預設情況下,git會以這種模式執行多分支的融合,但這種模式下,刪除分支後,會丟掉分支資訊,不能檢視到分支融合時的歷史資訊了,彷彿沒有融合過一樣,這樣就比較危險了,因此要避免這樣的操作。
這一部分主要包括git使用過程中的新增、提交、回退、恢復、分支建立、合併、刪除等一些操作的命令以及具體的引數;
提交工作區修改到暫存區,最為常用的命令為git add .
,會將當前目錄的所有修改全部新增到暫存區;如果要新增某個具體的檔案可以加具體的檔案名字。
提交暫存區的內容到版本庫中,通過-m
引數來指定提交版本庫中的注釋內容,建議這個必須要有,方便別人檢視修改,同時在版本回退的時候,這個東西也是乙個重要的參考。
將本地版本庫推送至遠端庫,在執行時要指定遠端庫和本地分支;一般情況下遠端庫預設為origin
,推送的命令為git push origin master
master這裡為本地的分支。
這個命令為回退操作,當發現誤操作並且已經把誤操作提交到版本庫中後,通過該命令將版本庫中的版本回退到前乙個或者某乙個版本,具體操作命令為git reset --hard head^
,該命令為回退到前乙個版本,在git中,當前版本的標識為head,上乙個版本就是head^;也可以將版本回退到中間的某個版本,這個時候就需要知道中間的版本的id,可以通過git log
(也可以指定引數--pretty=oneline
只顯示比較簡略的資訊)來檢視提交的歷史版本git內部的編號,通過指定編號的前幾位來恢復到中間版本。
通過reset將版本回退到了中間版本,這是你發現退錯了,你想要回退的這個中間版本的後面的版本,怎麼辦呢?使用這個命令,就可以檢視到你提交的所有的版本的資訊,包括你會退後的後面的版本資訊,知道版本資訊後,再通過git reset
就可以到達未來的版本了(強大)!
比較工作區和版本庫中的不同,前提是沒有指定具體的引數,並且修改的內容沒有add到暫存區,如果進行了add操作,那麼就會發現該命令的輸出內容為空,如果add之後,又對檔案進行修改,它直接比較的就是暫存區和工作區的內容;除非如下直接指定,git diff head -- (file)
通過這種指定,則直接進行版本庫和工作區的比較,而不考慮暫存區的內容;(中間的--
引數十分重要)。
檢視狀態,會比較詳細的列出暫存區和工作區的修改,方便我們進行狀態的監控和知道哪些檔案進行了修改。
檢視提交的狀態,通過--pretty=oneline
引數來簡化輸出;在分支管理中,通過--graph
可以檢視到分支合併的圖結構(相關更多的操作還需要探索)。
進行檔案的刪除操作,當在本地工作區把檔案刪除後,面臨兩種操作:1、刪除版本庫中的檔案;2、恢復工作區中的檔案。如果要進行第一中操作時,使用該命令。
修改的刪除和分支的(建立)切換;這裡指的修改的刪除是指將內容從暫存區恢復到工作區,可以使用如下命令git checkout -- file
;同時也可以進行分支的切換如git checkout 分支
,新增-b
引數後就會建立該分支並且進行切換動作。
所有有關分支的操作都可以使用這個命令,檢視分支、建立分支、刪除分支,還有強行刪除分支;這裡強調一下刪除為-d
,強行刪除為-d
。
對不同分支的內容進行合併,合併時,先切換到低版本的分支,然後在該命令後加你要融合的分支,git merge 分支
,就會進行分支的融合了。當融合發生衝突時,就必須解決衝突後進行再進行融合,可以直接開啟檔案進行衝突的解決,檔案中會標記出衝突的位置(具體可以實際操作一下)。
可以對提交的修改進行顯示,同時可以根據版本號檢視具體的內容
進行標籤的指定,git內部生成想序列號比較不容易理解,可以指定tag來對比較重要的提交進行版本的繫結。
可以檢視和設定git中的各種設定,例如在公司區域網中要設定**上網,可以通過如下配置;
git config --global http.proxy
來檢視**配置;後面加上位址和埠就可以進行配置(注意要用引號引起來)
git的功能相比svn還是強大了很多的,相關的細節還需要仔細地研究,本篇部落格只是給出最為基本的操作。
各種常用的git命令
首先是拉取遠端 git clone 遠端倉庫位址 如若不小心進入vim命令操作模式可以使用 q enter 退出重新進入git 1.設定使用者資訊 git config global user.name xx 設定使用者名稱 git config global user.email xx xx.co...
git各種命令的使用
1.轉殖 git clone 2.切換到已有分支 git checkout 分支名 3.更新遠端分支列表 git remote update origin p 4.新增本地所有更新檔案 git add 5.新增本地指定檔案 git add src pages x 6.檢視本地檔案狀態 git sta...
git 各種命令
linux yum install git 或 apt get install git cd ssh keygen t rsa c yy.com 郵箱位址 一路回車 cd ssh vi id rsa.pub windows 用記事本開啟gitee 或github 把裡面的公鑰新增上 配置賬戶 git...