獲取與建立
快照基礎
git rm
git mv
git clean
分支與合併
專案分享與更新
檢查與比較
將git官網的《pro git》裡附錄 git 命令,整理出來方便檢視。可以根據描述很好理解。以下引用段,均引用自《pro git》一書。
後續更新加入自己使用上的理解,以及遇到的一些問題。
git 做的很多任務作都有一種預設方式。 對於絕大多數工作而言,你可以改變 git 的預設方式,或者根據你的偏好來設定。 這些設定涵蓋了所有的事,從告訴 git 你的名字,到指定偏好的終端顏色,以及你使用的編輯器。 此命令會從幾個特定的配置檔案中讀取和寫入配置值,以便你可以從全域性或者針對特定的倉庫來進行設定。
git help 命令用來顯示任何命令的 git 自帶文件。 但是我們僅會在此附錄中提到大部分最常用的命令,對於每乙個命令的完整的可選項及標誌列表,你可以隨時執行 git help 命令來了解。
你只需要簡單地執行 git init 就可以將乙個目錄轉變成乙個 git 倉庫,這樣你就可以開始對它進行版本管理了。
git clone 實際上是乙個封裝了其他幾個命令的命令。 它建立了乙個新目錄,切換到新的目錄,然後 git init 來初始化乙個空的 git 倉庫, 然後為你指定的 url 新增乙個(預設名稱為 origin 的)遠端倉庫(git remote add),再針對遠端倉庫執行 git fetch,最後通過 git checkout 將遠端倉庫的最新提交檢出到本地的工作目錄。
git add 命令將內容從工作目錄新增到暫存區(或稱為索引(index)區),以備下次提交。 當 git commit命令執行時,預設情況下它只會檢查暫存區域,因此 git add 是用來確定下一次提交時快照的樣子的。
git status 命令會顯示工作區及暫存區域中不同狀態的檔案。 其中包含了已修改但未暫存,或已經暫存但沒有提交的檔案。 在一般的顯示形式中,它會給你一些如何在這些暫存區之間移動檔案的提示。
當需要檢視任意兩棵樹的差異時,可以使用 git diff 命令。 此命令可以檢視你工作環境與你的暫存區的差異(git diff 預設的做法),你暫存區域與你最後提交之間的差異(git diff --staged),或者比較兩個提交記錄的差異(git diff master branchb)。
當你不想使用內建的 git diff 命令時。git difftool 可以用來簡單地啟動乙個外部工具來為你展示兩棵樹之間的差異。
git commit 命令將所有通過 git add 暫存的檔案內容在資料庫中建立乙個持久的快照,然後將當前分支上的分支指標移到其之上。
git reset 命令主要用來根據你傳遞給動作的引數來執行撤銷操作。 它可以移動 head 指標並且可選的改變index 或者暫存區,如果你使用 --hard 引數的話你甚至可以改變工作區。 如果錯誤地為這個命令附加後面的引數,你可能會丟失你的工作,所以在使用前你要確定你已經完全理解了它。
git reset --hard head^
: 版本完全回退到上一次提交版本。 工作區、暫存區都會回退到上乙個版本,head指向上一次的快照提交。
reset 命令會以特定的順序重寫這三棵樹,在你指定以下選項時停止:
移動 head 分支的指向。 (若指定了--soft
,則到此停止)
使索引(暫存區)和 head 指向相同。(若未指定--hard
,則到此停止)
使工作區和暫存區相同。
故新增 --hard 選項可以一次完成以上三步。但在工作區未儲存的修改也會因此而丟失。
git rm 是 git 用來從工作區,或者暫存區移除檔案的命令。 在為下一次提交暫存乙個移除操作上,它與 git add 有一點類似。
git mv 命令是乙個便利命令,用於移到乙個檔案並且在新檔案上執行git add
命令及在老檔案上執行git rm
命令。
git clean
是乙個用來從工作區中移除不想要的檔案的命令。 可以是編譯的臨時檔案或者合併衝突的檔案。
git branch 命令實際上是某種程度上的分支管理工具。 它可以列出你所有的分支、建立新分支、刪除分支及重新命名分支。
git checkout 命令用來切換分支,或者檢出內容到工作目錄。
git merge 工具用來合併乙個或者多個分支到你已經檢出的分支中。 然後它將當前分支指標移動到合併結果上。
當你在 git 的合併中遇到問題時,可以使用git mergetool
來啟動乙個外部的合併幫助工具。
git log 命令用來展示乙個專案的可達歷史記錄,從最近的提交快照起。 預設情況下,它只顯示你當前所在分支的歷史記錄,但是可以顯示不同的甚至多個頭記錄或分支以供遍歷。 此命令通常也用來在提交記錄級別顯示兩個或多個分支之間的差異。
git stash 命令用來臨時地儲存一些還沒有提交的工作,以便在分支上不需要提交未完成工作就可以清理工作目錄。
git tag 命令用來為**歷史記錄中的某乙個點指定乙個永久的書籤。 一般來說它用於發布相關事項。
git fetch
命令與乙個遠端的倉庫互動,並且將遠端倉庫中有但是在當前倉庫的沒有的所有資訊拉取下來然後儲存在你本地資料庫中。
git pull
命令基本上就是git fetch
和git merge
命令的組合體,git 從你指定的遠端倉庫中抓取內容,然後馬上嘗試將其合併進你所在的分支中。
git push
命令用來與另乙個倉庫通訊,計算你本地資料庫與遠端倉庫的差異,然後將差異推送到另乙個倉庫中。 它需要有另乙個倉庫的寫許可權,因此這通常是需要驗證的。
git remote
命令是乙個是你遠端倉庫記錄的管理工具。 它允許你將乙個長的 url 儲存成乙個簡寫的控制代碼,例如 origin ,這樣你就可以不用每次都輸入他們了。 你可以有多個這樣的控制代碼,git remote 可以用來新增,修改,及刪除它們。
git archive
命令用來建立專案乙個指定快照的歸檔檔案。
git show
命令可以以一種簡單的人類可讀的方式來顯示乙個 git 物件。 你一般使用此命令來顯示乙個標籤或乙個提交的資訊。
git shortlog
是乙個用來歸納 git log 的輸出的命令。 它可以接受很多與 git log 相同的選項,但是此命令並不會列出所有的提交,而是展示乙個根據作者分組的提交記錄的概括性資訊
git describe
命令用來接受任何可以解析成乙個提交的東西,然後生成乙個人類可讀的字串且不可變。 這是一種獲得乙個提交的描述的方式,它跟乙個提交的 sha-1 值一樣是無歧義,但是更具可讀性
git常用指令整理及說明 詳細
標籤 git toc 本文是git系列部落格的第二篇。本文對指令按照使用場景 建庫,檢視,修改,分支 進行分類歸納,介紹指令基本含義和用法,方便查閱。參考我前面的部落格 git在各作業系統平台下的安裝和配置 我們把檔案往git版本庫里新增的時候,是分兩步執行的 第一步是用git add把檔案新增進去...
記錄Git常用指令用法說明
6.提交流程 1 建立分支dev test,在分支上開發。2 git stash 將本地 回滾值至上一次提交的時候,就是沒有你新改的 3 git pull origin 建立的分支名dev test,將遠端 拉下來 4 git stash pop 將第一步回滾的 釋放出來,等於將你修改的 與下拉的 ...
Git版本控制原理和常用指令說明
平時在android studio開發android專案,習慣了點選右鍵或圖示直接拉新fetch,pull,commit和push。但是必要的時候還得在終端輸入命令列。比如正在開發新版本v3.0,老闆說上個版本的某個地方操作容易誤導客戶,需要及時改回來發版。這時就需要建立新的分支2.1,回退到上個穩...