簡體   English   中英

git add和git commit -a之間的區別

[英]Difference between git add and git commit -a

我試圖更好地了解git的工作原理。

因此,我們有一個工作目錄(我們的項目文件),一個暫存區(准備好進行更改的集合)和一個git存儲庫(在提交時將這些更改應用於其中)。

但是,我很難理解,因為似乎文件被“跟蹤”或未引用某些特定的東西,但是我們仍然說每個部分都有自己的跟蹤形式嗎?

說的正確嗎?

  1. 如果我在工作目錄中添加或修改文件,則git會檢測到所有這些。 我們是否說此時這些文件已被git“跟蹤”? 還是僅僅是“被發現”(或其他)? 項目文件夾/工作目錄中的所有內容是否都已“跟蹤”?

  2. git add {directory or filename}出現,將內容添加到登台區域,是嗎? 在這一點上,我們是否說所有暫存的文件都是“跟蹤”文件,即執行git ls-files顯示的文件,我相信這些文件會在暫存區域中顯示? 或者沒有?

  3. git commit -a將登台區域中的所有更改移至存儲庫。

這個對嗎?

git add添加要跟蹤和暫存的文件(當前提交)

git commit -a 在文件已被跟蹤時才將文件添加到暫存中

當將文件添加到repo目錄時,Git會注意到未跟蹤的文件,因為它將它們理解為文件更改。 但是,除非您將它們明確添加到跟蹤中,否則它將不會跟蹤任何更改增量

這個問題可能會對您有所幫助: git跟蹤和git暫存的概念

另請參閱此https://www.howtogit.net/concepts/types-of-changes.html

我認為我們混淆的重點是git add可以做兩件事(如果尚未添加,請添加到跟蹤,然后執行階段),而git commit -a只做一件事(將跟蹤的文件添加到該階段)

  1. 如果我在工作目錄中添加或修改文件,則git會檢測到所有這些。 我們是否說此時這些文件已被git“跟蹤”? 還是僅僅是“被發現”(或其他)? 項目文件夾/工作目錄中的所有內容是否都已“跟蹤”?

Git檢測修改和刪除的文件。 如果跟蹤了它們(即,它們是在之前添加並提交的),則它們在git status的輸出中顯示為“ modified”。 未跟蹤的新文件和修改的文件顯示為“未跟蹤”。

  1. git add {directory or filename}出現,將內容添加到登台區域,是嗎? 在這一點上,我們是否說所有暫存的文件都是“跟蹤”文件,即執行git ls-files顯示的文件,我相信這些文件會在暫存區域中顯示? 或者沒有?

暫存區用於准備下一次提交。 您可以說其中包含的文件是“已跟蹤”的,但其內容不是永久的; 可以隨時更改。 為了打開一個由Git真正“跟蹤”的新文件,您必須提交已暫存的更改。

  1. git commit -a將登台區域中的所有更改移至存儲庫。

git commit使用暫存的內容創建一個新的提交。 git commit -a自動git commit -a已更改或刪除的跟蹤文件,然后操作提交。 沒有添加新文件。

閱讀有關git commitGit如何將更改記錄到存儲庫的更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM