2017-07-24 159 views
-1

我想更好地理解git如何工作。因此,我們有一個工作目錄(我們的項目文件),一個臨時區域(準備好要做的更改集合)和一個git存儲庫(在提交時應用這些更改)。git add和git commit之間的區別-a

但是我很努力去理解,因爲它好像是文件被「追蹤」或者不是指某種特定的東西,但我們仍然說每個部分都有自己的追蹤形式?

它是正確的說:

  1. 如果我添加或在我的工作目錄修改文件,混帳檢測了這一切。我們是否說這些文件在此時被git「追蹤」?或者他們只是「檢測」(或其他)?項目文件夾/工作目錄中的所有內容都「被跟蹤」了嗎?

  2. git add {directory or filename}似乎將內容添加到臨時區域,是嗎?在這一點上,我們說所有上演的文件都是「被追蹤」的文件,當我們做git ls-files時顯示的文件,我相信它顯示了暫存區中的文件?或沒有?

  3. git commit -a將暫存區域中的所有更改移動到存儲庫。

這是正確的嗎?

+1

[Git:add vs push vs commit]可能重複(https://stackoverflow.com/questions/6143285/git-add-vs-push-vs-commit) – Jonas

+0

@Jonas我在問一個稍微不同的問題比這個,但這仍然是一個有用的鏈接,謝謝 –

回答

0
  1. 如果我在我的工作目錄中添加或修改文件,git會檢測到所有這些。我們是否說這些文件在此時被git「追蹤」?或者他們只是「檢測」(或其他)?項目文件夾/工作目錄中的所有內容都「被跟蹤」了嗎?

Git檢測修改和刪除的文件。如果他們被跟蹤(即他們被添加之前並提交),他們出現在git status的輸出爲「修改」。未跟蹤的新文件和修改後的文件顯示爲「未跟蹤」。

  • git add {directory or filename}出現的內容添加到所述分級區域,是嗎?在這一點上,我們說所有上演的文件都是「被追蹤」的文件,當我們做git ls-files時顯示的文件,我相信它顯示了暫存區中的文件?或沒有?
  • 暫存區域用於準備下一個提交。你可以說它包含的文件被「追蹤」,但其內容不是永久的;它可以隨時更改。爲了讓一個新文件真正被Git「追蹤」,你必須提交分階段的更改。

  • git commit -a移動的種種變化在暫存區到存儲庫。
  • git commit創建一個新的提交使用上演的內容。 git commit -a自動對已更改或刪除的文件進行跟蹤,然後對提交進行操作。新文件不會被添加。

    查看更多about git commit以及如何Git records the changes to the repository

    +0

    以前添加到哪裏?在什麼情況下修改?是否跟蹤所有階段文件?所有跟蹤的文件都上演了嗎?但是提交 - 一個階段跟蹤被更改或刪除的文件,但是這也用於定義跟蹤? –

    +0

    「之前添加」的意思是「git add」。修改意味着修改。沒有上下文是必需的。只需點擊並編輯並更改現有文件即可。閱讀我在答案的最後一句中鏈接的文檔頁面。對於你所關心的問題的答案是[那裏](https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository),在第二段。閱讀整個[Git書](https://git-scm.com/book/en/v2)以瞭解Git如何工作。 – axiac

    +0

    接下來,您可能會問「什麼是快照?」。它在[「1.3入門 - Git基礎知識」](https://git-scm.com/book/en/v2/Getting-Started-Git-Basics)一章中進行了解釋。 – axiac

    0

    git add將文件添加到被跟蹤以及分期(當前提交)

    git commit -a將文件添加到分段只有如果他們已經追蹤

    的Git注意到沒有時,他們跟蹤的文件被添加到repo目錄,因爲它將它們理解爲文件更改。但是,除非你明確地將它們添加到跟蹤不會跟蹤任何變化增量

    這個問題可以幫助你:Concept of git tracking and git staging

    也看到這個https://www.howtogit.net/concepts/types-of-changes.html

    我認爲,我們的困惑的主要觀點是,git add可以做兩件事(增加如果尚未跟蹤和階段),而git commit -a只做一(添加跟蹤的文件的階段)

    +0

    所以「索引」是另一個國家?在某些時候「添加」過的文件?對索引,追蹤,分階段,承諾等之間的區別是否存在某種解釋?我認爲提交數據*從中轉區到回購站? –

    +1

    @ The29thSaltshaker術語'index'和'stage'可以互換使用。它們表示相同的事情:用戶用來準備下一次提交的內容的Git功能。 – axiac

    +0

    但他提到,git add將文件添加到索引和分段,暗示它們是不同的東西 –

    相關問題