Git 提交與 Git 推送
在本教程中,我們將瞭解 git commit
和 git push
之間的區別。
Git 是一個分散式版本控制系統,它跟蹤檔案的變化,通常在協作開發環境中。
Git 為每個開發人員(即)每臺機器提供了作為倉庫跟蹤的專案目錄完整歷史記錄的本地副本。然後將任何本地更改從本地倉庫複製到遠端倉庫。
此外,遠端倉庫上的任何更改都會被提取到本地倉庫中。
Git 提供命令 git commit
和 git push
來實現這些目標。
我們現在將通過一個例子詳細說明它們之間的區別。
Git 中 git commit
和 git push
之間的區別
git commit
和 git push
的基本區別在於 git commit
的範圍是本地倉庫,而 git push
的範圍是遠端倉庫。
git push
命令總是在執行 git commit
命令之後出現。
當我們執行 git commit
命令時,會捕獲專案當前暫存更改的快照。git add
命令執行更改的暫存。
git push
命令將本地倉庫內容推送到遠端倉庫。此命令將提交從本地倉庫傳輸到遠端倉庫。
假設我們在本地倉庫中有一個名為 sample.txt
的檔案,我們已對其進行了更新,並且還使用 git add
命令暫存了檔案的更改。
現在,我們將檢查本地倉庫的狀態,如下所示。
$ git status
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: sample.txt
我們可以看到檔案 sample.txt
的更改顯示為準備好提交。
我們現在將使用 git commit
命令來執行此操作。用訊息提交更改的 git commit
命令的語法是 git commit -m <message>
。
因此,我們將執行以下操作。
$ git commit -m "updated sample.txt"
我們現在將檢查本地倉庫的 Git 日誌,如下所示。
$ git log --oneline
4488776 (HEAD -> main) updated sample.txt
...
我們現在可以在 Git 日誌中看到檔案 sample.txt
的提交。此提交位於本地倉庫索引的 HEAD
。新提交是索引的 HEAD
的直接子節點,以及分支即。main
更新為指向它。
我們現在將執行 git push
命令將提交推送到遠端倉庫。git push
命令的語法是 git push <remote-repository> <branch>
。
因此,我們將執行以下操作。
$ git push origin main
我們現在已經將提交推送到由別名 origin
和遠端分支 main
給出的遠端倉庫。
我們現在將重新檢查 Git 日誌,如下所示。
$ git log --oneline
4488776 (HEAD -> main, origin/main) updated sample.txt
...
在 Git 日誌中,我們現在可以看到檔案 sample.txt
的提交已顯示。
提交現在位於本地倉庫索引的 HEAD
和遠端倉庫的遠端分支中。
因此,我們詳細說明了 Git 中的命令 git commit
和 git push
之間的區別。