您好,登錄后才能下訂單哦!
本篇內容介紹了“Git常用操作命令有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
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@example.com"
注意:git config --global 參數,有了這個參數,表示你這臺機器上所有的Git倉庫都會使用這個配置,當然你也可以對某個倉庫指定的不同的用戶名和郵箱。
對 Git 進行操作之前你得先創建一個 Git 倉庫,在你需要的位置創建一個空文件夾即可。然后進入該文件夾,然后右擊空白處,點擊 Git Bash Here 對當前文件夾進行 Git 的操作。
初始化命令
git init
常用命令
cd:進入某個目錄 mkdir:創建一個文件 pwd:顯示當前的目錄路徑 鼠標選中就是復制,粘貼可以右鍵粘貼,也可以用使用快捷鍵:Shift+INS
在根目錄新建了一個 a.txt 文件,內容為 aaa;
使用下面命令把 a.txt 文件添加到暫存區
添加到暫存區命令
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 文件"
到目前為止我們一共進行了3次操作,提交 a 和 b,以及修改 b,查看歷史命令如下
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^
查看回退后的歷史版本信息
結果:從歷史版本信息我們可以看出,我們已經從 “修改 b.txt” 回退到了 “提交 b.txt”,回退之后的當前版本為 “提交 b.txt”
我們直接復制想要回退位置的版本號,使用下面代碼就可以回退到復制的版本號的位置了
git reset --hard <想要回退的版本號>
例如:我復制 “提交 a.txt 文件” 的版本號
git reset --hard 6ec9373d22d1a869b67681a39dc04df34292133b
結果:從查看的歷史版本結果可以看出我們回退到了 “提交 a.txt” 版本
有時候我們回退了版本后反悔了,想要返回到回退版本之前,這時我們就需要找到之前的 commit id,但是從上面的查看歷史版本命令可以看出,我們找不到之前的 commit id 了,于是我們可以使用下面命令
git reflog
結果:reflog 可以查看所有分支的所有操作記錄(包括已經被刪除的 commit 記錄和 reset 的操作)
假設我們想回退到 “提交修改的 b.txt 文件” 的位置上,也就是歷史版本信息的倒數第三行,我們只需要復制 HEAD 前面的 7a42e7b,然后使用下面命令就可以了
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
刪除步驟
rm 刪除文件
rm 刪除后會自動添加到暫存區,省略了手動 add 命令
最后進行 commit 提交,文件被刪除
注意:刪除步驟可以通過 reset 撤銷操作撤回
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@example.com” | 設置郵箱 |
2. 初始化命令
命令 | 作用 |
---|---|
git init | 初始化 git,創建 .git 文件 |
3. 常用命令
命令 | 作用 |
---|---|
cd | 進入某個目錄 |
mkdir | 創建一個文件 |
pwd | 顯示當前的目錄路徑 |
鼠標選中就是復制 | 復制 |
直接鼠標右鍵粘貼 / 快捷鍵:Shift+INS | 粘貼 |
4. 添加到暫存區
命令 | 作用 |
---|---|
git add a.txt | 添加 a.txt 到暫存區 |
git add . | 添加當前根目錄下的所有文件到暫存區 |
git commit -m “雙引號里面是注釋——你的提交說明” | 把暫存區的文件提交到版本庫(一次全部提交) |
5. 查看文件狀態
命令 | 作用 |
---|---|
git status | 查看文件狀態(檢查是否有未提交文件) |
6. 查看提交歷史
命令 | 作用 |
---|---|
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 | 查看提交歷史,并展示摘要內容(摘要會列出修改的文件以及每個文件中修改了多少行) |
7. 版本回退與恢復
命令 | 作用 |
---|---|
git reset --hard HEAD^ | 回退到上一個版本 |
git reset --hard HEAD~N(不是-,是波浪線) | 回退到上N個版本 |
git reset --hard <想要回退的版本號> | 回退到指定版本 |
git reflog 和 git reset --hard <想要回退的版本號>合并使用 | 恢復回退的版本 |
8. 查看不同版本的差異
命令 | 作用 |
---|---|
git diff | 查看不同版本之間的文件差異 |
9. 撤銷修改
命令 | 作用 |
---|---|
git checkout – b.txt | 一:readme.txt 自修改后還沒有被放到暫存區(git add ),現在,撤銷修改就回到和版本庫一模一樣的狀態;二: readme.txt 已經添加到暫存區后,又作了修改,現在,撤銷修改就回到添加到暫存區后的狀態。 |
10. 刪除
命令 | 作用 |
---|---|
git rm b.txt | rm 刪除文件 rm 刪除后會自動添加到暫存區,省略了手動 add 命令 最后進行 commit 提交,文件被刪除 |
git rm b.txt --cached | 刪除緩存區單個文件,b.txt 處于未跟蹤狀態,也就是從暫存區刪除 |
rm .git/index | 清空所有緩存 |
11. 分支管理
命令 | 作用 |
---|---|
git branch | 查看分支 |
git branch | 創建分支 |
git checkout | 切換分支 |
git checkout -b | 創建 + 切換到新分支 |
git merge | 將某分支合并到當前分支 |
git branch -d | 刪除分支 |
“Git常用操作命令有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。