推薦學習:《》
Git 是一個開源的分散式版本控制系統,用於敏捷高效地處理任何或小或大的專案,是目前最流行的一個版本管理工具。
SVN是集中式版本控制系統,版本庫是集中放在中央伺服器的,而幹活的時候,用的都是自己的電腦,所以首先要從中央伺服器哪裡得到最新的版本,然後幹活,幹完後,需要把自己做完的活推播到中央伺服器。集中式版本控制系統是必須聯網才能工作,如果在區域網還可以,頻寬夠大,速度夠快,如果在網際網路下,如果網速慢的話,就納悶了。
Git是分散式版本控制系統,那麼它就沒有中央伺服器的,每個人的電腦就是一個完整的版本庫,這樣,工作的時候就不需要聯網了,因為版本都是在自己的電腦上。既然每個人的電腦都有一個完整的版本庫,那多個人如何共同作業呢?比如說自己在電腦上改了檔案A,其他人也在電腦上改了檔案A,這時,你們兩之間只需把各自的修改推播給對方,就可以互相看到對方的修改了。
最早Git是在Linux上開發的,很長一段時間內,Git也只能在Linux和Unix系統上跑。不過,慢慢地有人把它移植到了Windows上。現在,Git可以在Linux、Unix、Mac和Windows這幾大平臺上正常執行了。
要使用Git
,第一步當然是安裝Git
了。從 https://git-for-windows.github.io下載(網速慢的請移步國內映象),然後按預設選項安裝即可。
下載完成後,開啟進行安裝(按照下圖進行設定)。
接下來就只需要靜靜的等待安裝完成了,完成以後在桌面或者任意資料夾的空白位置右鍵,出現下圖所示的兩個選單欄即表示安裝成功。
安裝完之後會彈出一個命令框,我們還需要做最後一步操作,設定識別符號。由於 git 是分散式管理工具,所以需要設定使用者名稱和郵箱作為標識。在彈出框中輸入下面程式碼即可。
git config --global user.name "Your Name"git config --global user.email "[email protected]"
注意:git config --global 引數,有了這個引數,表示你這臺機器上所有的Git倉庫都會使用這個設定,當然你也可以對某個倉庫指定的不同的使用者名稱和郵箱。
主要是為了檢視操作的效果
連結:https://pan.baidu.com/s/19lIBz4IFwurxNvzXGgTqRg
提取碼:fmte
對 Git 進行操作之前你得先建立一個 Git 倉庫,在你需要的位置建立一個空資料夾即可。然後進入該資料夾,然後右擊空白處,點選 Git Bash Here 對當前資料夾進行 Git 的操作。
git init
cd:進入某個目錄 mkdir:建立一個檔案 pwd:顯示當前的目錄路徑 滑鼠選中就是複製,貼上可以右鍵貼上,也可以用使用快捷鍵:Shift+INS
git add a.txt
git add .
git commit -m "雙引號裡面是註釋——你的提交說明"
原因:commit
可以一次提交很多檔案,所以你可以多次add
不同的檔案
例如:
git add file1.txt #單個新增檔案到暫存區git add file2.txt file3.txt #多個新增檔案到暫存區git add . #新增當前資料夾下所有檔案到暫存區git commit -m "add 3 files." #提交所有暫存區的檔案
使用下面命令檢查當前檔案狀態
git status
結果:沒有需要提交的檔案了;
建立一個新的檔案 b.txt,內容為 bbb,再來檢查檔案狀態
結果:存在未跟蹤檔案沒有新增到暫存區和提交到版本庫;
新增 b.txt 到暫存區之後,再來檢查檔案狀態
結果:暫存區中有一個新的 b.txt 檔案沒有新增到版本庫中;
提交 b.txt 到版本庫之後,然後把 b.txt 內容從 bbb 修改為 bbba,再來檢查檔案狀態
結果:被改變的檔案 b.txt 沒有新增到暫存區且沒有提交
git add b.txtgit commit -m "提交修改的 b.txt 檔案"
git log
注意:使用上面命令資訊多的話會進入 log 模式,想要退出,在英文輸入法的前提下按 q 就可以退出了
git log --pretty=oneline
git log -1
git log #檢視全部歷史提交記錄git log --pretty=oneline #精簡顯示所有歷史提交記錄git reflog #可以檢視所有分支的所有操作記錄(包括已經被刪除的 commit 記錄和 reset 的操作)git log -p #檢視全部提交歷史並展示每次修改的內容git log -2 #檢視最近2次提交歷史(注意:後面的數位是可以自定義的,也就是說,這種寫法是 git log -n 的體現)git log -p -2 #檢視最近2次提交歷史並展示修改的內容git log --stat #檢視提交歷史,並展示摘要內容(摘要會列出修改的檔案以及每個檔案中修改了多少行)
Git
必須知道當前版本是哪個版本,在Git
中,用HEAD
表示當前版本,上一個版本就是HEAD^
,上上一個版本就是HEAD^^
,當然往上100個版本寫100個^比較容易數不過來,所以寫成HEAD~100
。git reset --hard HEAD^
git reset --hard <想要回退的版本號>
git reset --hard 6ec9373d22d1a869b67681a39dc04df34292133b
結果:從檢視的歷史版本結果可以看出我們回退到了 「提交 a.txt」 版本
git reflog
結果:reflog 可以檢視所有分支的所有操作記錄(包括已經被刪除的 commit 記錄和 reset 的操作)
git reset --hard 7a42e7b
結果:歷史版本資訊可以看出我們已經回退到了我們想要的版本
例如:我們把 b.txt 檔案內容修改為為 bbbaaa,然後用下面程式碼檢視,可以看出我們修改了什麼
git diff # 檢視不同版本之間的檔案差異
推薦使用:第一次修改 -> git add -> 第二次修改 -> git add -> git commit
注意:建議每次 commit 之前先檢查是否有檔案沒有被 add
git checkout -- filename
git checkout -- filename
可以丟棄工作區的修改:– 後面是一個空格
命令 git checkout -- readme.txt
意思就是,把 readme.txt
檔案在工作區的修改全部復原,這裡有兩種情況:
一:readme.txt
自修改後還沒有被放到暫存區(git add
),現在,復原修改就回到和版本庫一模一樣的狀態;
二:readme.txt
已經新增到暫存區後,又作了修改,現在,復原修改就回到新增到暫存區後的狀態。
總之,就是讓這個檔案回到最近一次 git commit
或 git add
時的狀態。
注意:git checkout -- file
命令中的 --
很重要,沒有 --
,就變成了**「切換到另一個分支」**的命令,我們在後面的分支管理中會再次遇到 git checkout
命令
通常直接在檔案管理器中把沒用的檔案刪了,或者用rm
命令刪除,例如:刪除 b.txt
git rm b.txt
刪除步驟
git rm b.txt --cached
b.txt 處於未跟蹤狀態,也就是從暫存區刪除。
特別說明:處於未跟蹤狀態只是沒有存在於暫存區,歷史提交記錄中的記錄依然存在。
所謂的暫存區僅僅是.git目錄下的一個index檔案罷了,這也是為了什麼被稱為index(索引),當刪除暫存區內容的時候,其實就是刪除index檔案中的內容,.git/objects目錄中的內容不會被刪除。
rm .git/index
git branch #檢視分支 git branch <name> #建立分支git checkout <name> #切換分支git checkout -b <name> #建立 + 切換分支git merge <name> #將某分支合併到當前分支git branch -d <name> #刪除分支
命令 | 作用 |
---|---|
git config --global user.name 「Your Name」 | 設定使用者名稱 |
git config --global user.email 「[email protected]」 | 設定郵箱 |
命令 | 作用 |
---|---|
git init | 初始化 git,建立 .git 檔案 |
命令 | 作用 |
---|---|
cd | 進入某個目錄 |
mkdir | 建立一個檔案 |
pwd | 顯示當前的目錄路徑 |
滑鼠選中就是複製 | 複製 |
直接滑鼠右鍵貼上 / 快捷鍵:Shift+INS | 貼上 |
命令 | 作用 |
---|---|
git add a.txt | 新增 a.txt 到暫存區 |
git add . | 新增當前根目錄下的所有檔案到暫存區 |
git commit -m 「雙引號裡面是註釋——你的提交說明」 | 把暫存區的檔案提交到版本庫(一次全部提交) |
命令 | 作用 |
---|---|
git status | 檢視檔案狀態(檢查是否有未提交檔案) |
命令 | 作用 |
---|---|
git log | 檢視全部歷史提交記錄 |
git log --pretty=oneline | 精簡顯示所有歷史提交記錄 |
git reflog | 可以檢視所有分支的所有操作記錄(包括已經被刪除的 commit 記錄和 reset 的操作) |
git log -p | 檢視全部提交歷史並展示每次修改的內容 |
git log -2 | 檢視最近2次提交歷史(注意:後面的數位是可以自定義的,也就是說,這種寫法是 git log -n 的體現) |
git log -p -2 | 檢視最近2次提交歷史並展示修改的內容 |
git log --stat | 檢視提交歷史,並展示摘要內容(摘要會列出修改的檔案以及每個檔案中修改了多少行) |
命令 | 作用 |
---|---|
git reset --hard HEAD^ | 回退到上一個版本 |
git reset --hard HEAD~N(不是-,是波浪線) | 回退到上N個版本 |
git reset --hard <想要回退的版本號> | 回退到指定版本 |
git reflog 和 git reset --hard <想要回退的版本號>合併使用 | 恢復回退的版本 |
命令 | 作用 |
---|---|
git diff | 檢視不同版本之間的檔案差異 |
命令 | 作用 |
---|---|
git checkout – b.txt | 一:readme.txt 自修改後還沒有被放到暫存區(git add ),現在,復原修改就回到和版本庫一模一樣的狀態;二: readme.txt 已經新增到暫存區後,又作了修改,現在,復原修改就回到新增到暫存區後的狀態。 |
命令 | 作用 |
---|---|
git rm b.txt | rm 刪除檔案 rm 刪除後會自動新增到暫存區,省略了手動 add 命令 最後進行 commit 提交,檔案被刪除 |
git rm b.txt --cached | 刪除快取區單個檔案,b.txt 處於未跟蹤狀態,也就是從暫存區刪除 |
rm .git/index | 清空所有快取 |
命令 | 作用 |
---|---|
git branch | 檢視分支 |
git branch | 建立分支 |
git checkout | 切換分支 |
git checkout -b | 建立 + 切換到新分支 |
git merge | 將某分支合併到當前分支 |
git branch -d | 刪除分支 |
推薦學習:《》
以上就是案例詳解Git常用操作命令的詳細內容,更多請關注TW511.COM其它相關文章!