Git文件常用操作總結及拓展
1、Git本地版本庫結構
如下圖所示:

- 工作區(qū)(
Working Directory)
添加、編輯、修改、刪除文件等操作。 - 暫存區(qū)(
Stage)
打算提交,但還沒提交的內容。最后可以統(tǒng)一提交到Git倉庫中。也可以不提交,撤銷回來。 - Git倉庫(
Git Repository)
實實在在的項目存儲的每個一歷史的版本。
2、Git常用操作方法
Git的專屬命令都是以git開始的,然后是索要執(zhí)行的操作,最后還可以加上一些參數(shù)。
以下命令都需在倉庫中執(zhí)行。
(1)狀態(tài)查看。
命令: git status
命令作用:查看工作區(qū)、暫存區(qū)狀態(tài)。
(2)添加文件到暫存區(qū)。
命令:git add [file name]
命令作用:
- 該命令的作用是告訴Git系統(tǒng),將指定文件的當前快照寫入到版本庫暫存區(qū)。即,將文件交給Git進行版本管理。
- 提交到暫存區(qū),并且轉換文件中的換行符。
- 被Git追蹤的暫存區(qū)中的文件可以被提交到本地版本庫。
(3)文件從暫存區(qū)撤回到工作區(qū)。
命令:git rm --cached [file name]
命令作用:把文件從暫存區(qū)撤回到工作區(qū)。
(4)提交文件。
命令:git commit -m '本次提交的說明'
命令作用:提交操作就通過命令將Git暫存區(qū)中的文件快照永久性地寫入到本地版本庫中。
3、補充:添加多個文件到暫存區(qū)
有兩種方式:
git add命令后添加多個文件,文件之間使用空格分隔。
git add命令后使用通配符*指定多個文件。
示例:
# 1.查看工作區(qū)、暫存區(qū)狀態(tài)
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
hello.java # 文件名為紅色
test.java # 文件名為紅色
xyj-sha_hs.py # 文件名為紅色
xyj-sun_wk.py # 文件名為紅色
xyj-zhu_bj.py # 文件名為紅色
nothing added to commit but untracked files present (use "git add" to track)
# 2.添加多個文件到暫存區(qū)
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git add hello.java test.java
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: hello.java # 文件名為綠色
new file: test.java # 文件名為綠色
Untracked files:
(use "git add <file>..." to include in what will be committed)
xyj-sha_hs.py # 文件名為紅色
xyj-sun_wk.py # 文件名為紅色
xyj-zhu_bj.py # 文件名為紅色
# 3.使用通配符添加多個文件到暫存區(qū)
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git add xyj*.py
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: hello.java # 文件名為綠色
new file: test.java # 文件名為綠色
new file: xyj-sha_hs.py # 文件名為綠色
new file: xyj-sun_wk.py # 文件名為綠色
new file: xyj-zhu_bj.py # 文件名為綠色4、補充:提交操作未寫備注
如果你在執(zhí)行git conmit提交命令的時候,并沒有寫-m信息,這時會啟動文本編輯器,以便輸入本次提交的說明。
默認的提交消息包含最后一次運行git status的輸出,放在注釋行里,如下圖:
另外開頭還有一空行,供你輸入提交說明。你完全可以去掉這些注釋行,不過留著也沒關系,多少能幫你回想起這次更新的內容有哪些。
如下:
會彈出一個窗口,一個vim編輯器窗口:

說明:
# Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # # On branch master # Changes to be committed: # modified: readme.txt #
Please enter the commit message for your changes. Lines startingwith '#' will be ignored, and an empty message aborts the commit.
對于你這次提交中修改的內容要進行說明,
以'#'開頭的行將被忽略,并且在第一行填寫說明信息。
Changes to be committed: modified: readme.txt
readme.txt的修改已被Git追蹤到。
進行提交說明的補充:

保存并退出后,提交成功,如下圖:

總結:當提交操作的說明內容比較多,或者需要寫的比較詳細的時候,可以使用這種方式提交。
5、補充:從工作區(qū)直接提交到版本庫
盡管使用暫存區(qū)域的方式,可以準備好要提交的細節(jié),但有時候這么做略顯繁瑣。
Git提供了一個跳過使用暫存區(qū)域的方式,只要在提交的時候,給git commit命令加上-a選項,Git就會自動把所有已經跟蹤過的文件,暫存起來一并提交,從而跳過git add步驟。
命令:git commit -a
示例:
(1)先查看當前工作目錄中的文件狀態(tài)。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ git status On branch master nothing to commit, working tree clean
可以看到非常的干凈。
(2)我們創(chuàng)建兩個文件。
一個文件是新增文件test.txt,此前沒有被Git追蹤過。
兩個文件是readme.txt,已被Git追蹤,我們將該文件變成已修改狀態(tài)。
# 1.新建test.txt
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ echo "hello test" > test.txt
# 2.修改readme.txt文件
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ echo "hello git v666" >> readme.txt
# 3.查看工作目錄中的文件狀態(tài)
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: readme.txt # 已修改狀態(tài),未在暫存區(qū)
Untracked files:
(use "git add <file>..." to include in what will be committed)
test.txt # 未追蹤狀態(tài)
no changes added to commit (use "git add" and/or "git commit -a")(3)提交到Git版本庫中。
我們直接使用git commit -a -m命令直接執(zhí)行提交操作,看看會發(fā)生什么情況。
# 提交
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git commit -a -m 'test -a'
[master 1b0de31] test -a
1 file changed, 1 insertion(+)
# 查看工作目錄文件狀態(tài)
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
test.txt # 未追蹤狀態(tài)
nothing added to commit but untracked files present (use "git add" to track)我們可以看到,未被追蹤狀態(tài)的文件,不能直接從工作區(qū)直接提交到版本庫,使用-a選擇也不可以。
以上就是Git文件常用操作總結及拓展的詳細內容,更多關于Git文件操作拓展的資料請關注腳本之家其它相關文章!
相關文章
利用ChatGPT與MindShow制作一個PPT的方法詳解
PPT制作是商務、教育和各種場合演講的重要組成部分,然而,很多人會花費大量時間和精力在內容生成和視覺設計方面,為了解決這個問題,我們可以利用兩個強大的工具——ChatGPT和MindShow,來提高制作PPT的效率,感興趣的同學可以參考閱讀2023-06-06
前端靜態(tài)資源福利:百度靜態(tài)JS資源公共庫(CDN)
如果你在使用jQuery、Bootstrap、backbone、dojo、zepto等各種流行庫,一定不要錯過百度靜態(tài)資源公共庫。遍布全國各地100+個CDN節(jié)點提供加速服務。2023-03-03
Win10環(huán)境借助DockerDesktop部署大數(shù)據(jù)時序數(shù)據(jù)庫Apache Druid的操作方法
文章介紹了如何在Windows 10環(huán)境下使用Docker Desktop部署最新版的大數(shù)據(jù)時序數(shù)據(jù)庫Apache Druid 32.0.0,通過官方提供的docker-compose.yml文件和環(huán)境配置,成功啟動了Zookeeper、PostgreSQL和6個Druid容器,感興趣的朋友一起看看吧2025-02-02

