網站首頁 編程語言 正文
1、Git本地版本庫結構
如下圖所示:
- 工作區(
Working Directory
)
添加、編輯、修改、刪除文件等操作。 - 暫存區(
Stage
)
打算提交,但還沒提交的內容。最后可以統一提交到Git倉庫中。也可以不提交,撤銷回來。 - Git倉庫(
Git Repository
)
實實在在的項目存儲的每個一歷史的版本。
2、Git常用操作方法
Git的專屬命令都是以git
開始的,然后是索要執行的操作,最后還可以加上一些參數。
以下命令都需在倉庫中執行。
(1)狀態查看。
命令:?git status
命令作用:查看工作區、暫存區狀態。
(2)添加文件到暫存區。
命令:git add [file name]
命令作用:
- 該命令的作用是告訴Git系統,將指定文件的當前快照寫入到版本庫暫存區。即,將文件交給Git進行版本管理。
- 提交到暫存區,并且轉換文件中的換行符。
- 被Git追蹤的暫存區中的文件可以被提交到本地版本庫。
(3)文件從暫存區撤回到工作區。
命令:git rm --cached [file name]
命令作用:把文件從暫存區撤回到工作區。
(4)提交文件。
命令:git commit -m '本次提交的說明'
命令作用:提交操作就通過命令將Git暫存區中的文件快照永久性地寫入到本地版本庫中。
3、補充:添加多個文件到暫存區
有兩種方式:
git add
命令后添加多個文件,文件之間使用空格分隔。
git add
命令后使用通配符*
指定多個文件。
示例:
# 1.查看工作區、暫存區狀態 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.添加多個文件到暫存區 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.使用通配符添加多個文件到暫存區 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、補充:提交操作未寫備注
如果你在執行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、補充:從工作區直接提交到版本庫
盡管使用暫存區域的方式,可以準備好要提交的細節,但有時候這么做略顯繁瑣。
Git提供了一個跳過使用暫存區域的方式,只要在提交的時候,給git commit
命令加上-a
選項,Git就會自動把所有已經跟蹤過的文件,暫存起來一并提交,從而跳過git add
步驟。
命令:git commit -a
示例:
(1)先查看當前工作目錄中的文件狀態。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ git status On branch master nothing to commit, working tree clean
可以看到非常的干凈。
(2)我們創建兩個文件。
一個文件是新增文件test.txt
,此前沒有被Git追蹤過。
兩個文件是readme.txt
,已被Git追蹤,我們將該文件變成已修改狀態。
# 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.查看工作目錄中的文件狀態 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 # 已修改狀態,未在暫存區 Untracked files: (use "git add <file>..." to include in what will be committed) test.txt # 未追蹤狀態 no changes added to commit (use "git add" and/or "git commit -a")
(3)提交到Git版本庫中。
我們直接使用git commit -a -m
命令直接執行提交操作,看看會發生什么情況。
# 提交 L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ git commit -a -m 'test -a' [master 1b0de31] test -a 1 file changed, 1 insertion(+) # 查看工作目錄文件狀態 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 # 未追蹤狀態 nothing added to commit but untracked files present (use "git add" to track)
我們可以看到,未被追蹤狀態的文件,不能直接從工作區直接提交到版本庫,使用-a
選擇也不可以。
原文鏈接:https://www.cnblogs.com/liuyuelinfighting/p/16178013.html
相關推薦
- 2024-03-18 JedisDataException: READONLY You can‘t write again
- 2022-07-14 Django項目配置連接多個數據庫的方法記錄_python
- 2022-06-07 Pytorch上下采樣函數之F.interpolate數組采樣操作詳解_python
- 2022-02-10 easy LESS只針對特定工程啟用
- 2022-06-21 C#實現XML文件與DataTable、Dataset互轉_C#教程
- 2022-07-21 react中的redux
- 2022-08-10 詳細聊一聊algorithm中的排序算法_C 語言
- 2022-04-03 django8.5?項目部署Nginx的操作步驟_nginx
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支