Git的基礎(chǔ)文件操作初始化查看添加提交示例教程
1、Git最基礎(chǔ)的使用方式
(1)初始化本地版本庫(kù)
要對(duì)現(xiàn)有的某個(gè)項(xiàng)目開(kāi)始使用Git管理,只需到此項(xiàng)目所在的根目錄,執(zhí)行git init
命令即可。
準(zhǔn)備一個(gè)新的Git本地版本庫(kù):
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit $ git init Initialized empty Git repository in J:/git-repository/learngit/.git/
說(shuō)明:初始化Git倉(cāng)庫(kù)后,在當(dāng)前目錄下會(huì)出現(xiàn)一個(gè)名為.git
的目錄,所有Git需要的數(shù)據(jù)和資源都存放在這個(gè)目錄中。
不過(guò)目前,僅僅是按照既有的結(jié)構(gòu)框架,初始化好了Git倉(cāng)庫(kù)中所有的文件和目錄,但我們還沒(méi)有開(kāi)始跟蹤管理項(xiàng)目中的任何一個(gè)文件。
(2)查看文件的狀態(tài)
使用git status
命令進(jìn)行查看。
進(jìn)入本地版本庫(kù)查看工作區(qū)、暫存區(qū)中文件的狀態(tài)。
# 執(zhí)行`git status`命令 L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ git status # 在主分支上工作 On branch master # 尚無(wú)提交文件,指的是本地庫(kù)中沒(méi)有提交過(guò)任何文件。 No commits yet # 無(wú)需提交(可創(chuàng)建/復(fù)制文件并使用“git add”進(jìn)行跟蹤) # 無(wú)需提交指的是,暫存區(qū)中沒(méi)有任何可提交的文件 # 追蹤文件,就是讓Git管理該文件。 nothing to commit (create/copy files and use "git add" to track)
(3)把文件添加到暫存區(qū)
1)創(chuàng)建文件后查看工作區(qū)、暫存區(qū)中文件的狀態(tài)。
我們?cè)趥}(cāng)庫(kù)目錄中創(chuàng)建一個(gè)readme.txt
文件后,在執(zhí)行git status
命令。
# 創(chuàng)建readme.txt文件 L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ touch readme.txt L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ ll total 0 -rw-r--r-- 1 L 197121 0 4月 4 00:38 readme.txt # 查看工作區(qū)、暫存區(qū)狀態(tài) L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ git status On branch master # 尚無(wú)提交文件,指的是本地庫(kù)中沒(méi)有提交過(guò)任何文件。 No commits yet Untracked files: (use "git add <file>..." to include in what will be committed) readme.txt # 文件名為紅色 nothing added to commit but untracked files present (use "git add" to track)
說(shuō)明:
Untracked files:readme.txt
表示發(fā)現(xiàn)未追蹤的文件readme.txt
use "git add <file>..." to include in what will be committed
表示對(duì)readme.txt
文件,你可以使用git add
命令,將新建文件添加到暫存區(qū)。
nothing added to commit but untracked files present (use "git add" to track)
表示你沒(méi)有添加任何內(nèi)容到暫存區(qū),但是存在未追蹤的文件,可使用“git add”命令進(jìn)行追蹤。
2)將工作區(qū)的文件添加到暫存區(qū)。
執(zhí)行git add
命令,將readme.txt
文件添加到暫存區(qū)。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ git add readme.txt warning: LF will be replaced by CRLF in readme.txt. The file will have its original line endings in your working directory
說(shuō)明:
warning: LF will be replaced by CRLF in readme.txt.
The file will have its original line endings in your working directory
- 警告:
readme.txt
文件中的換行符格式會(huì)被替換,CRLF替換LF。
在我們安裝Git的第8步時(shí),所選擇的選項(xiàng)。這是Git底層的東西,不用我們控制的。 - 但是該文件在你的工作目錄中,還是保存原始文件的換行符格式。
- LF是Linux系統(tǒng)下的換行符,而CRLF是Windows系統(tǒng)下的換行符。由于我們的文件創(chuàng)建于Linux系統(tǒng)下(Git Bash中創(chuàng)建),而保存中Windows系統(tǒng)中,所以文件中的行結(jié)束符要使用Windows下的CRLF格式換行。
- 以上兩行就是一個(gè)提示作用,對(duì)我們的操作沒(méi)有實(shí)際影響。
3)再次查看工作區(qū)、暫存區(qū)狀態(tài)。
執(zhí)行git status
命令查看工作區(qū)、暫存區(qū)狀態(tài)。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ git status On branch master No commits yet Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: readme.txt # 文件名為綠色
說(shuō)明:
Changes to be committed: new file: readme.tx
所做更改:新建了readme.txt文件
use "git rm --cached <file>..." to unstage
提示你可以適用使“git rm --cached <file> ...”
命令,
把文件從暫存區(qū)中撤回到工作區(qū)。
總結(jié):
只要在"Changes to be committed"
這行下面顯示的文件,就說(shuō)明是已暫存狀態(tài)。
如果此時(shí)提交,那么該文件此時(shí)此刻的版本,將被留存在歷史記錄中。
在git add
命令后面可以指明要跟蹤的文件或目錄路徑。
如果是目錄的話,就說(shuō)明要遞歸跟蹤該目錄下的所有文件。(其實(shí)git add
命令的潛臺(tái)詞就是把目標(biāo)文件快照放入暫存區(qū)域,同時(shí)未曾跟蹤過(guò)的文件標(biāo)記為已跟蹤。)
4)將文件從暫存區(qū)撤回到工作區(qū)。
執(zhí)行git rm --cached
命令,將readme.txt
文件從暫存區(qū)撤回到工作區(qū)。
并執(zhí)行git status
命令查看工作區(qū)、暫存區(qū)狀態(tài)。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ git rm --cached readme.txt rm 'readme.txt' L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ git status On branch master No commits yet Untracked files: (use "git add <file>..." to include in what will be committed) readme.txt # 文件名為紅色 nothing added to commit but untracked files present (use "git add" to track)
可以看到結(jié)果,readme.txt
文件又成為了一個(gè)未被Git追蹤的文件。
(4)把暫存區(qū)的內(nèi)容提交到本地版本庫(kù)
當(dāng)暫存區(qū)域已經(jīng)準(zhǔn)備妥當(dāng)可以提交時(shí),在此之前,請(qǐng)一定要確認(rèn)還有什么修改過(guò)的,或新建的文件還沒(méi)有git add
到暫存區(qū),否則提交的時(shí)候不會(huì)記錄這些還沒(méi)暫存起來(lái)的變化。
所以,每次準(zhǔn)備提交前,先用git status
查看下,需要提交的文件是不是都已暫存起來(lái)了,然后再運(yùn)行提交命令git commit -m '備注信息'。
1)將文件添加到緩存區(qū)并提交到本地版本庫(kù)。
將readme.txt
文件加入到暫存區(qū),并執(zhí)行g(shù)it commit -m '本次提交的說(shuō)明',將readme.txt
文件提交到本地版本庫(kù)。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ git add readme.txt warning: LF will be replaced by CRLF in readme.txt. The file will have its original line endings in your working directory L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ git commit readme.txt -m 'My first commit.new file readme.txt' warning: LF will be replaced by CRLF in readme.txt. The file will have its original line endings in your working directory [master (root-commit) e84b93b] My first commit.new file readme.txt 1 file changed, 1 insertion(+) create mode 100644 readme.txt
重點(diǎn)說(shuō)明最下面三行內(nèi)容:
master
:表示master
(主干)分支。
root-commit
:root
表示根,意思是該版本庫(kù)的第一次提交。
e84b93b
:提交操作的版本號(hào)概要。
My first commit.new file readme.txt
:本次提交的說(shuō)明信息。
1 file changed
:一個(gè)文件被修改。
1 insertions(+)
:增加了1行內(nèi)容,+
號(hào)表示增加,-
號(hào)表示減少。
create mode 100644 readme.txt
:readme.txt
文件創(chuàng)建模式為100644,
100代表regular file
(普通文件),644代表文件權(quán)限。
提示:提交時(shí)記錄的是放在暫存區(qū)域的快照。
即:每一次執(zhí)行提交操作時(shí),都是對(duì)項(xiàng)目作一次快照,以后可以回到這個(gè)狀態(tài),或者與這個(gè)狀態(tài)進(jìn)行比較。
2)將文件提交到本地版本庫(kù)后工作區(qū)、暫存區(qū)狀態(tài)。
執(zhí)行git status
命令查看工作區(qū)、暫存區(qū)狀態(tài)。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ git status On branch master # 暫存區(qū)中沒(méi)有可提交的內(nèi)容 # 工作目錄和本地版本庫(kù)是一樣的,沒(méi)有修改、新建等操作。 nothing to commit, working tree clean
3)修改文件內(nèi)容后查看工作區(qū)、暫存區(qū)狀態(tài)。
修改readme.txt
文件內(nèi)容后,再執(zhí)行git status
命令查看工作區(qū)、暫存區(qū)狀態(tài)。
# 修改文件內(nèi)容 L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ echo "git world" >> readme.txt L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ cat readme.txt hello git world git world # 查看工作區(qū)、暫存區(qū)狀態(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 # 文件名為紅色 no changes added to commit (use "git add" and/or "git commit -a")
說(shuō)明:
Changes not staged for commit:modified: readme.txt
readme.txt文件被修改,但是沒(méi)有添加到暫存區(qū)
use "git add <file>..." to update what will be committed
表示對(duì)readme.txt
文件,你可以使用git add <file>
命令,將文件更新添加到暫存區(qū)。
和第(2)步的
use "git add <file>..." to include in what will be committed
是有一點(diǎn)差別的。
use "git restore <file>..." to discard changes in working directory
表示可以通過(guò)git restore <file>...
命令,放棄工作目錄中文件的更改。
就是還原文件。
Git早期版本該命令為git checkout --<file>...
。
no changes added to commit (use "git add" and/or "git commit -a")
表示你沒(méi)有添加要提交的更改,and/or
表示你可使用“git add”把變更文件添加到暫存區(qū),在通過(guò)"git commit -a"提交到本地版本庫(kù)
你也可以通過(guò)git commit -a
直接把變更的文件提交到本地版本庫(kù)。
注意使用git commit -a
命令用加文件名。
4)把修改后的文件提交到暫存區(qū)。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ git add readme.txt warning: LF will be replaced by CRLF in readme.txt. The file will have its original line endings in your working directory 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) modified: readme.txt # 文件名為綠色
說(shuō)明:
Changes to be committed: modified: readme.txt
readme.txt的修改已被Git追蹤到
use "git restore --staged <file>..." to unstage
你可以用git restore --staged <file>...命令,
將文件從暫存區(qū)撤出,但不會(huì)撤銷文件的更改。
5)將修改過(guò)后的文件提交到本地版本庫(kù)。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ git commit readme.txt -m 'modified readme.txt' warning: LF will be replaced by CRLF in readme.txt. The file will have its original line endings in your working directory [master e704334] modified readme.txt 1 file changed, 1 insertion(+)
可以看到,master
后沒(méi)有 (root-commit
)了,因?yàn)楦峤恢挥幸淮巍?/p>
新創(chuàng)建的文件先添加到暫存區(qū),然后添加到本地版本庫(kù)。
而已經(jīng)提交到本地版本庫(kù)的文件,修改了,可以按照上面操作,也可以直接提交到本地版本庫(kù)。
2、總結(jié)本文用到的Git命令
序號(hào) | Git命令 | 說(shuō)明 |
---|---|---|
1 | git init | 初始化本地版本庫(kù)。 |
2 | git status | 查看當(dāng)前工作區(qū)和暫存區(qū)文件的狀態(tài)。 |
3 | git add <file>... | 可以將文件添加到暫存區(qū)。 |
4 | git commit -m ' ' | 提交更新。 |
以上就是Git的基礎(chǔ)文件操作初始化查看添加提交示例教程的詳細(xì)內(nèi)容,更多關(guān)于Git基礎(chǔ)文件操作初始化查看添加提交的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
用asp與php實(shí)現(xiàn)百度ping服務(wù)的代碼
分別用asp與php實(shí)現(xiàn)百度ping服務(wù)的代碼,需要的朋友可以參考下2012-02-02將來(lái)會(huì)是Python、Java、Golang三足鼎立的局面嗎
python的優(yōu)勢(shì)在于數(shù)據(jù)處理和人工智能等方向,所以go只可能吞噬Java的份額,很難撼動(dòng)Python的奶酪,所以將來(lái)會(huì)是Python、Java、Golang三足鼎立的局面嗎2019-04-04解決appcode打開(kāi)workspace無(wú)法找到xcodeproj項(xiàng)目文件問(wèn)題
這篇文章主要介紹了解決appcode打開(kāi)workspace無(wú)法找到xcodeproj項(xiàng)目文件問(wèn)題,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02layabox2.0命令行在vscode中編譯打包問(wèn)題
這篇文章主要介紹了layabox2.0命令行在vscode中編譯打包問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08Base64 編碼介紹、Base64編碼轉(zhuǎn)換原理與算法
Base64編碼,是我們程序開(kāi)發(fā)中經(jīng)常使用到的編碼方法。它是一種基于用64個(gè)可打印字符來(lái)表示二進(jìn)制數(shù)據(jù)的表示方法,需要的朋友可以參考下2016-06-06網(wǎng)址(URL)支持的最大長(zhǎng)度是多少?最大支持多少個(gè)字符?
這篇文章主要介紹了網(wǎng)址(URL)支持的最大長(zhǎng)度是多少?最大支持多少個(gè)字符?本文總結(jié)了IIS、apache服務(wù)器及瀏覽器軟件Internet Explorer、Firefox、Opera、chrome等主流的瀏覽器軟件支持情況,需要的朋友可以參考下2015-07-07