你應該掌握的30個Git常用命令

當涉及到軟體開發時,版本控制是必不可少的。它允許你跟蹤你的程式碼變化,恢復到以前的階段,並與你的團隊在一個專案上進行合作。最流行的版本控制系統之一是Git。無論你是一個剛剛起步的初學者,還是一個希望簡化工作流程的經驗豐富的開發者,瞭解Git命令無疑是一種技能,它將帶來回報。

在學會關鍵步驟之前,Git 給人的感覺就像一個謎。在本指南中,你將看到排名前 30 位的 Git 常用命令,按使用頻率排序。每條命令的開頭都有一個簡短的“作用”摘要,然後是一張顯示其功能的圖片。沒有冗長的文字,沒有莫名其妙的標記,也不用翻閱文件。只有實用、小巧的條目,你可以把它當作您的git命令手冊使用。讓 Git 變得簡單、快捷、有趣。

你應該掌握的30個Git常用命令

在這篇文章中,我們將深入探討每個開發者都應該知道的30個Git命令。這些命令將幫助你初始化倉庫,進行提交,建立和切換分支,以及更多。掌握了這些常用命令,你就可以成為一個更有效率和效益的開發者了。

最常用的30個Git命令

1. git commit

這個命令用來儲存你的修改到本地倉庫。它對你用git add暫存的改動做了一個快照。

git commit

示例:

git commit -m "Commit message"

這將提交您的修改,並附帶一條描述您所做修改的資訊。

2. git status

這個命令顯示修改的狀態,如未跟蹤、已修改或已快取。

git status

示例:

git status

這將顯示你工作目錄的狀態。

3. git add

該命令新增一個檔案到暫存區,為提交做準備。

git add

示例:

git add filename

這將把名為 “filename” 的檔案新增到暫存區。

4. git push

該命令將你提交的修改傳送到遠端倉庫。

示例:

git push origin master

這將把你提交的修改推送到origin遠端倉庫的主幹分支。

5. git pull

該命令從遠端倉庫獲取修改,並將其合併到你的當前分支。

示例:

git pull origin master

這將從origin遠端倉庫的主幹分支中提取變化。

6. git clone

這個命令用來克隆一個倉庫。它在你的本地機器上建立一個遠端倉庫的副本。

git clone

示例:

git clone https://github.com/username/repository.git

這將在你的本地機器上克隆給定URL的版本庫。

7. git branch

這個命令列出了你的版本庫中的所有分支。

git branch

示例:

	
git branch

這將列出你的版本庫中的所有分支。

8. git checkout

該命令用於在 Git 倉庫的不同分支之間進行切換。

git checkout

示例:

git checkout branch-name

這將切換到名為 “branch-name” 的分支。

9. git merge

該命令將一個分支的修改合併到另一個分支。

示例:

git merge branch-name

10. git log

該命令顯示一個分支上的提交清單,包括相應的細節。

git log

示例:

git log

這將顯示一個最近提交的有序列表。

11. git diff

該命令顯示尚未分階段的檔案差異。

 git diff

示例:

git diff

這將顯示自上次提交以來未被快取的差異。

12. git stash

這個命令可以暫時儲存您不想立即提交的改動。您可以在以後應用這些修改。

git stash

示例:

git stash

這將暫時儲存所有修改過的跟蹤檔案。

13. git init

這個命令用來初始化一個新的Git倉庫。它在你當前的工作目錄下建立一個新的.git子目錄。這也將建立一個名為master的新分支。

git init

示例:

git init

這將在你的當前目錄下初始化一個 Git 倉庫。

14. git fetch

該命令從遠端倉庫獲取本地倉庫中不存在的所有物件。

示例:

git fetch origin

這將從origin遠端獲取所有不存在於你當前版本庫中的物件。

15. git reset

該命令解除了檔案的快取,但它保留了檔案的內容。

git reset

示例:

git reset filename

這將解除對名為 “filename” 的檔案的快取。

16. git revert

這條命令會建立一個新的提交,撤銷前一個提交所做的修改。

示例:

git revert HEAD

這將建立一個新的提交,撤銷上一次提交的改動。

17. git rebase

該命令用於將當前分支上的修改應用到另一個分支之前。

示例:

git rebase master

這將把當前分支上的任何修改應用到主分支之前。

18. git show

該命令顯示指定提交的後設資料和內容變化。

git show

示例:

git show

這將顯示最新提交的後設資料和內容變化。

19. git cherry-pick

該命令應用一些現有的提交所帶來的變化。

示例:

git cherry-pick commitID

這將應用給定ID的提交所帶來的變化。

20. git bisect

該命令使用二進位制搜尋演算法來查詢專案歷史中哪個提交引入了一個錯誤。

示例:

git bisect start
git bisect bad
git bisect good commitID

這將啟動分支程序,將當前的提交標記為bad,並將給定ID的提交標記為good。

21. git rm

該命令從你的工作目錄中刪除檔案,並對刪除行為進行分級。

示例:

git rm filename

這將刪除名為 “filename” 的檔案,並進行分段刪除。

22. git tag

這條命令用來給指定的提交打上標籤。

示例:

git tag v1.0

這將給最新的提交打上 “v1.0” 的標籤。

23. git stash pop

這條命令恢復了最近藏匿的修改。

示例:

git stash pop

這將應用最近藏匿的修改,並將其從藏匿列表中移除。

24. git stash list

這個命令列出了所有藏匿的變更集。

示例:

git stash list

這將顯示所有藏匿的變更集。

25. git stash drop

這條命令會丟棄最近儲存的變更集。

示例:

git stash drop

這將丟棄最近藏匿的變更集。

26. git blame

該命令顯示了檔案每一行的最後修改版本和作者。

示例:

git blame filename

這將顯示 “filename” 的每一行的最後修改版本和作者。

27. git clean

這個命令會刪除工作目錄中未被追蹤的檔案。

示例:

git clean -n

這將顯示將被刪除的檔案,但並沒有實際操作。用 -f 替換 -n 來實際刪除這些檔案。

28. git reflog

該命令顯示了本地倉庫中所有對提交的引用列表。

示例:

git reflog

這將顯示本地倉庫中所有對提交的引用。

29. git grep

這個命令讓你在你的版本庫中搜尋。

示例:

git grep "hello"

這將搜尋版本庫中出現的任何 “hello”。

30. gitk

該命令啟動 Git 倉庫瀏覽器。

示例:

gitk

這將啟動 Git 倉庫瀏覽器。

最佳實踐

以下是一些使用 git 命令的注意事項:

  • 保持少量提交:將每次提交集中在一個改動上,並編寫清晰的資訊。
  • 使用分支:在自己的分支上完成功能工作,然後透過拉取請求進行合併。
  • 先儲存再切換:先儲存 WIP 變動,避免半成品提交。
  • 本地重置:在共享前清理分支歷史,但切勿對共享分支進行重置。
  • 用 diff/log 檢視:推送前一定要檢視 git diff 和 git log。

小結

總之,Git 是一個強大的工具,可以極大地提高你作為一個開發者的生產力和效率。我們在這篇文章中討論的 30 個基本 Git 命令只是冰山一角。在 Git 中還有更多的命令和選項,我們鼓勵你進一步探索它們。

記住,實踐出真知。你越是使用這些命令,你就會越是得心應手。所以,不要害怕在你的專案中開始使用 Git。一開始可能會讓人望而生畏,但隨著時間的推移和實踐,你會發現它是你開發工具包中的一個寶貴工具。

常見問題

如何在提交前撤銷對檔案的修改?

使用 git checkout – <file> 放棄未暫存的編輯,恢復上次提交的版本。

將多個提交合併為一個提交的最簡單方法是什麼?

執行 git rebase -i <base>,把要合併的提交合併成一個整潔的提交。

如何暫停工作,稍後再回來而不提交半成品程式碼?

使用 git stash 將改動儲存起來,準備好後使用 git stash pop 重新應用。

git fetch 和 git pull 有什麼區別?

Git fetch 會從遠端下載更新,而不會觸及您的檔案,而 git pull 則一步完成下載和合並。這兩個 git 命令看似功能相似,但它們的應用卻大相徑庭。

如何追蹤引入 bug 的提交?

使用 git bisect 對歷史記錄進行二進位制搜尋,準確找出錯誤提交。

評論留言