Git的100条命令及说明

Git是一个开源的分布式版本控制系统,由Linus Torvalds开发,主要用于敏捷高效地处理各种规模的项目。与传统的版本控制系统(如CVS、Subversion)不同,Git采用了分布式版本库的方式,不需要服务器端软件支持。这意味着每个开发者的电脑上都有一份完整的版本库,便于协作和版本控制。

Git的主要特点包括:

  1. 分布式: Git是分布式的,这意味着每个开发者的电脑上都有一个完整的版本库,不依赖于中央服务器。这有助于提高工作效率,尤其是在网络不稳定的环境中。

  2. 内容完整性: Git使用SHA-1哈希算法来存储内容,确保代码内容的完整性。这在遇到磁盘故障和网络问题时尤其重要,因为它可以减少对版本库的破坏。

  3. 分支管理: Git的分支管理非常灵活,与SVN等系统中的分支不同,Git分支的创建和合并更为简便和快速。

  4. 版本回退: Git允许开发者轻松地回退到之前的版本,这使得实验新功能或修复错误变得更加安全。

  5. 协作友好: Git支持多种协作模式,包括集中式和分布式,适合不同规模和类型的团队。

1

git init

初始化一个Git仓库

2

git clone [url]

克隆一个远程Git仓库到本地

3

git add [file]

添加文件到暂存区

4

git add .

添加所有改动的文件到暂存区

5

git commit -m "message"

提交暂存区的文件到本地仓库

6

git status

查看工作区和暂存区的状态

7

git diff

查看修改前后的差异

8

git log

查看提交历史

9

git branch

查看本地分支列表

10

git branch [branch-name]

创建新的本地分支

11

git branch -d [branch-name]

删除本地分支

12

git checkout [branch-name]

切换到指定分支

13

git merge [branch-name]

合并指定分支到当前分支

14

git remote

查看远程仓库列表

15

git remote add [remote-name] [url]

添加远程仓库

16

git push [remote-name] [branch-name]

推送本地分支到远程仓库

17

git pull [remote-name] [branch-name]

从远程仓库拉取最新代码

18

git fetch [remote-name]

从远程仓库获取最新代码,但不合并到本地分支

19

git stash

暂存当前修改的内容

20

git stash apply

恢复暂存的修改内容

21

git stash drop

删除暂存的修改内容

22

git tag

查看本地标签列表

23

git tag [tag-name]

创建新的本地标签

24

git tag -d [tag-name]

删除本地标签

25

git push [remote-name] --tags

推送所有本地标签到远程仓库

26

git show [commit-hash]

查看指定提交的详细信息

27

git blame [file]

查看文件每一行的修改历史

28

git reset [commit-hash]

撤销指定提交并删除后续提交

29

git reset HEAD [file]

将指定文件从暂存区移除

30

git revert [commit-hash]

撤销指定提交,但不删除后续提交

31

git cherry-pick [commit-hash]

选择指定提交并应用到当前分支

32

git rebase [branch-name]

将当前分支的修改应用到指定分支

33

git bisect

通过二分法查找导致错误的提交

34

git grep [keyword]

在版本库中查找包含关键字的文件和内容

35

git log --author=[author-name]

查看指定作者的提交历史

36

git log --since=[date]

查看指定日期之后的提交历史

37

git log --until=[date]

查看指定日期之前的提交历史

38

git shortlog

查看提交日志的简略信息

39

git blame -L [line-number],[line-number] [file]

查看文件指定行的修改历史

40

git remote show [remote-name]

查看远程仓库的详细信息

41

git push -u [remote-name] [branch-name]

推送本地分支到远程仓库,并建立跟踪关系

42

git pull --rebase [remote-name] [branch-name]

从远程仓库拉取最新代码并进行变基操作

43

git log --pretty=format:"%h - %an, %ar : %s"

自定义提交历史的输出格式

44

git blame -M [file]

查找文件中移动的行,并显示移动前的作者和提交信息

45

git cherry-pick -n [commit-hash]

只选择指定提交的修改内容,而不是整个提交

46

git diff [commit1] [commit2]

比较两个提交之间的差异

47

git branch -m [old-branch-name] [new-branch-name]

将本地分支重命名

48

git for-each-ref

显示所有标签和分支的详细信息

49

git bisect start

开始二分查找错误的提交

50

git bisect bad

标记当前版本为错误的版本

51

git bisect good [commit-hash]

标记指定提交为正确的版本

52

git bisect reset

结束二分查找并返回到当前分支

53

git show-branch

显示本地分支之间的关系

54

git filter-branch

对整个仓库进行过滤和重写历史

55

git blame -C [file]

查找文件中复制和移动的行,并显示复制或移动前的作者和提交信息

56

git cherry-pick -e [commit-hash]

打开编辑器以修改提交信息,而不是使用默认的提交信息

57

git diff --cached

比较暂存区和最后一次提交之间的差异

58

git blame -L [start-line],[end-line] [file]

查找文件的指定行范围内的修改历史

59

git ls-files

列出版本库中所有的文件

60

git add -p

交互式添加文件到暂存区

61

git cherry-pick --no-commit [commit-hash]

将指定提交的修改内容应用到当前分支,但不进行提交

62

git rebase -i [commit-hash]

交互式变基操作

63

git submodule

管理子模块

64

git stash save "message"

将修改内容暂存并添加注释

65

git stash list

列出所有暂存的修改内容

66

git stash pop

恢复并删除最近暂存的修改内容

67

git stash apply stash@{n}

恢复指定序号的暂存的修改内容

68

git stash drop stash@{n}

删除指定序号的暂存的修改内容

69

git stash clear

删除所有暂存的修改内容

70

git blame -L '/regex/' [file]

查找文件中匹配正则表达式的行,并显示修改历史

71

git ls-remote

显示远程仓库的引用

72

git push [remote-name] :[branch-name]

删除远程分支

73

git log --graph --oneline --decorate

显示提交历史的分支和标签信息

74

git push [remote-name] HEAD

推送当前分支到远程仓库

75

git submodule update --init

初始化子模块

76

git submodule update

更新子模块

77

git stash branch [new-branch-name]

从最近的暂存内容创建新的分支

78

git rev-parse [commit-hash]

显示指定提交的哈希值

79

git commit --amend

修改最后一次提交的信息

80

git bisect visualize

显示二分查找的结果

81

git bisect run [script]

运行脚本,自动标记版本是否有错误

82

git blame -C -C [file]

查找文件中复制、移动和重命名的行,并显示修改历史

83

git merge --squash [branch-name]

将指定分支的修改内容合并到当前分支,但不提交

84

git config

配置Git

85

git mv [old-file-name] [new-file-name]

移动或重命名文件

86

git cherry-pick -x [commit-hash]

打印出应用指定提交的详细信息

87

git rebase --interactive HEAD\~[n]

对最近的n次提交进行交互式变基操作

88

git stash save -u "message"

暂存所有修改的文件,包括未跟踪的文件,并添加注释

89

git blame -C -C -M [file]

查找文件中复制、移动、重命名和修改的行,并显示修改历史

90

git pull --rebase=preserve

从远程仓库拉取代码并保留本地修改

91

git checkout -b [branch-name] [commit-hash]

创建新的分支并切换到指定提交的状态

92

git rev-list --all --count

显示版本库中提交的总数

93

git log --pretty=format:"%h %s" --graph

显示提交历史的图形化信息

94

git merge --no-ff [branch-name]

将指定分支的修改内容合并到当前分支,并创建一个新的提交

95

git rebase --onto [new-base] [old-base] [branch-name]

将指定分支从旧的基础变为新的基础

96

git cherry-pick -S [commit-hash]

签名应用指定提交的修改内容

97

git revert --no-commit [commit-hash]

撤销指定提交的修改内容,但不进行提交

98

git blame -C -C -C [file]

查找文件中复制、移动、重命名、修改和合并的行,并显示修改历史

99

git stash save -a "message"

暂存所有修改的文件,包括未跟踪和忽略的文件,并添加注释

100

git log --since="1 week ago" --author="[author-name]"

查看指定作者在一周内的提交历史。


Git的100条命令及说明
https://www.opyu.cn/archives/NMZGkIYb
作者
发布于
2024年05月13日
许可协议