最常用的70个Git命令

135 阅读5分钟

Git 是软件工程师必不可少的工具,可实现高效的版本控制、协作和项目管理。无论您是从事个人项目还是大型团队的一员,掌握 Git 命令对于简化开发工作流程都至关重要。本文章涵盖了最常见 的70个Git 命令,为管理代码库、跟踪更改和与其他开发人员协调提供了坚实的基础。通过熟悉这些命令,您可以提高工作效率并确保项目顺利进行。让我们深入了解每个软件工程师都应该知道的关键 Git 命令。

1. git config
Purpose: Configure Git settings, such as user name and email.

Example: git config --global user.name "Your Name"

2. git init
Purpose: Initialize a new Git repository.

Example: git init

3. git clone
Purpose: Clone an existing repository.

Example: git clone https://github.com/user/repo.git

4. git status
Purpose: Show the working directory and staging area status.

Example: git status

5. git add
Purpose: Add file contents to the index (staging area).

Example: git add . (add all files)

6. git commit
Purpose: Record changes to the repository.

Example: git commit -m "Commit message"

7. git push
Purpose: Update remote refs along with associated objects.

Example: git push origin main

8. git pull
Purpose: Fetch from and integrate with another repository or local branch.

Example: git pull origin main

9. git branch
Purpose: List, create, or delete branches.

Example: git branch new-branch (create new branch)

10. git checkout
Purpose: Switch branches or restore working tree files.

Example: git checkout new-branch (switch to branch)

11. git switch
Purpose: Switch branches.

Example: git switch new-branch

12. git merge
Purpose: Join two or more development histories together.

Example: git merge new-branch (merge new-branch into current branch)

13. git rebase
Purpose: Reapply commits on top of another base tip.

Example: git rebase main

14. git log
Purpose: Show commit logs.

Example: git log --oneline

15. git diff
Purpose: Show changes between commits, commit and working tree, etc.

Example: git diff (show unstaged changes)

16. git show
Purpose: Show various types of objects.

Example: git show HEAD (show changes in the last commit)

17. git stash
Purpose: Stash the changes in a dirty working directory away.

Example: git stash

18. git stash pop
Purpose: Apply the changes recorded in the stash to the working directory.

Example: git stash pop

19. git clean
Purpose: Remove untracked files from the working directory.

Example: git clean -fd

20. git remote
Purpose: Manage set of tracked repositories.

Example: git remote add origin https://github.com/user/repo.git

21. git fetch
Purpose: Download objects and refs from another repository.

Example: git fetch origin

22. git remote -v
Purpose: Show the URLs that a remote name corresponds to.

Example: git remote -v

23. git tag
Purpose: Create, list, delete, or verify a tag object.

Example: git tag -a v1.0 -m "Version 1.0"

24. git push origin --tags
Purpose: Push all tags to the remote repository.

Example: git push origin --tags

25. git reset
Purpose: Reset current HEAD to the specified state.

Example: git reset --hard HEAD~1 (reset to previous commit)

26. git revert
Purpose: Create a new commit that undoes the changes from a previous commit.

Example: git revert HEAD

27. git checkout --
Purpose: Discard changes in the working directory.

Example: git checkout -- file.txt (discard changes in file.txt)

28. git cherry-pick
Purpose: Apply the changes introduced by some existing commits.

Example: git cherry-pick <commit-hash>

29. git branch -d
Purpose: Delete a branch.

Example: git branch -d branch-name

30. git branch -D
Purpose: Force delete a branch.

Example: git branch -D branch-name

31. git merge --no-ff
Purpose: Create a merge commit even when the merge resolves as a fast-forward.

Example: git merge --no-ff new-branch

32. git rebase -i
Purpose: Start an interactive rebase.

Example: git rebase -i HEAD~3

33. git diff --staged
Purpose: Show changes between the index and the last commit.

Example: git diff --staged

34. git blame
Purpose: Show what revision and author last modified each line of a file.

Example: git blame file.txt

35. git log --graph
Purpose: Show a graph of the commit history.

Example: git log --graph --oneline

36. git reflog
Purpose: Show a log of all references.

Example: git reflog

37. git stash list
Purpose: List all stashes.

Example: git stash list

38. git stash apply
Purpose: Apply a stash to the working directory.

Example: git stash apply stash@{1}

39. git stash drop
Purpose: Remove a single stash entry from the list of stashes.

Example: git stash drop stash@{1}

40. git remote show
Purpose: Show information about the remote repository.

Example: git remote show origin

41. git remote rm
Purpose: Remove a remote.

Example: git remote rm origin

42. git pull --rebase
Purpose: Fetch and rebase the current branch on top of the upstream branch.

Example: git pull --rebase origin main

43. git fetch --all
Purpose: Fetch all remotes.

Example: git fetch --all

44. git bisect
Purpose: Use binary search to find the commit that introduced a bug.

Example: git bisect start

45. git submodule
Purpose: Initialize, update, or inspect submodules.

Example: git submodule update --init

46. git archive
Purpose: Create an archive of files from a named tree.

Example: git archive --format=tar HEAD > archive.tar

47. git shortlog
Purpose: Summarize git log output.

Example: git shortlog -s -n

48. git describe
Purpose: Give an object a human-readable name based on an available ref.

Example: git describe --tags

49. git rev-parse
Purpose: Parse revision (or other objects) and retrieve its hash.

Example: git rev-parse HEAD

50. git tag -d
Purpose: Delete a tag from the local repository.

Example: git tag -d v1.0

51. git checkout -b
Purpose: Create and switch to a new branch.

Example: git checkout -b new-branch

52. git push origin --delete
Purpose: Delete a remote branch.

Example: git push origin --delete branch-name

53. git cherry
Purpose: Find commits not merged upstream.

Example: git cherry -v

54. git rm
Purpose: Remove files from the working tree and from the index.

Example: git rm file.txt

55. git mv
Purpose: Move or rename a file, directory, or symlink.

Example: git mv oldname.txt newname.txt

.56 git reset HEAD
Purpose: Unstage changes.

Example: git reset HEAD file.txt

57. git log -p
Purpose: Show changes over time for a specific file.

Example: git log -p file.txt

58. git diff --cached
Purpose: Show changes between the index and the last commit (same as --staged).

Example: git diff --cached

59. git apply
Purpose: Apply a patch to files and/or to the index.

Example: git apply patch.diff

60. git format-patch
Purpose: Prepare patches for e-mail submission.

Example: git format-patch -1 HEAD

61. git am
Purpose: Apply a series of patches from a mailbox.

Example: git am < patch.mbox

62. git cherry-pick --continue
Purpose: Resume cherry-picking after resolving conflicts.

Example: git cherry-pick --continue

63. git fsck
Purpose: Verify the connectivity and validity of objects in the database.

Example: git fsck

64. git gc
Purpose: Cleanup unnecessary files and optimize the local repository.

Example: git gc

65. git prune
Purpose: Remove unreachable objects from the object database.

Example: git prune

66. git notes
Purpose: Add or inspect object notes.

Example: git notes add -m "Note message"

67. git whatchanged
Purpose: Show what changed, similar to git log.

Example: git whatchanged

68. git show-branch
Purpose: Show branches and their commits.

Example: git show-branch

69. git verify-tag
Purpose: Check the GPG signature of tags.

Example: git verify-tag v1.0

70. git show-ref
Purpose: List references in a local repository.

Example: git show-ref