Skip to content

常用35个Git命令 #29

@Tronzo

Description

@Tronzo

本Git命令指南共分为三个部分:基础命令,中级命令和高级Git命令。
基本Git命令

在这个部分中,我们要学习的是一些非常基础的Git命令。这些基本的Git命令是学习其他高级命令的基础。
下面请看这9个基本的Git命令。

  1. git config

git config命令非常有用。尤其是在你第一次使用Git或刚安装新的Git时。此命令可设置身份——Name和Email地址。并且每次提交时会使用此信息。
用法

$ git config --global user.name "Your name"
$ git config --global user.email "Your email"
  1. git version

顾名思义,它会检查你使用的是哪个版本的Git。目前,截至编写本指南时,Git for Windows的最新版本是2.31.1。它发布于2021年3月27日。
用法

$ git version
  1. git init

这可能是你在Git中启动新项目所使用的第一个命令。此命令将创建一个空白的新存储库,然后你可以将源代码存储在此存储库中。
用法

$ git init

或者,你也可以在git init命令中使用存储库名称。

$ git init <your repository name>
  1. git clone

git clone命令将使用现有的存储库进行复制。git init和git clone之间有一个主要区别。
在你需要在现有的存储库上进行复制时,使用git clone。git clone命令首先在内部使用git init命令,然后检出所有内容。
用法

git clone <your project URL>
  1. git add

git add命令会把所有新的代码文件或修改后的文件添加到存储库中。此命令提供了添加文件和文件夹的不同选项。
下面是git add命令的用法。
将单个文件添加到暂存区

$ git add your_file_name

此选项会将所有修改过的文件和新文件添加到暂存区

$ git add *
  1. git commit

这个Git命令是必不可少的。如果不能合理利用此命令,则可能会降低项目质量。
简而言之,git commit会将更改添加到本地存储库。
用法

$ git commit -m "your useful commit message"
  1. git status

使用此Git命令可以方便地查看有多少文件需要得到关注。你可以随时运行此命令。
此命令可以用来在git add和git commit之间查看状态。
用法

$ git status
  1. git branch

大多数时候,你的Git存储库中总会有多个分支。我们可以使用git branch命令有效地管理分支。Git分支有许多不同的选项和开关。
为简单起见,在这里我将重点介绍如何创建和删除Git分支。
用法
(i)列出所有分支:

$ git branch

(ii)创建新的分支:

$ git branch <branch_name>

(iii)删除分支:

$ git branch -d <branch_name>
  1. git checkout

此Git命令用于在分支之间进行切换。这是功能强大的git命令之一,堪称万能的瑞士军刀。
以下是切换到另一个分支的语法。
用法

$ git checkout <branch_name>

此外,你也可以创建和检出到分支,用法如下

$ git checkout -b <your_new_branch_name>

中级Git命令

掌握了基本的Git命令之后,我们就该学习中级Git命令了。如果你需要与团队合作,与他人共享代码,那么这些Git命令会非常有用。另外,还有一些类似git log命令,这些命令可帮助查看以前的提交历史。

  1. git remote

git remote命令就像边界,如果你需要与外界连接,则必须使用git remote命令。此命令会将你的本地存储库连接到远程。
用法

$ git remote add <shortname> <url>

举例

$ git remote add origin https://dev.azure.com/aCompiler/_git/DemoProject
  1. git push

(借助git remote命令)与远程存储库连接之后,就需要将更改推送到存储库。
用法

$ git push -u <short_name> <your_branch_name>

举例

$ git push -u origin feature_branch
  1. git push --set-upstream

在使用git push之前,我们应该先设置好origin和upstream。下面是设置upstream的命令。

用法

$ git push --set-upstream <short_name> <branch_name>

举例

$ git push --set-upstream origin feature_branch
  1. git fetch

当需要下载其他团队成员的更改时,就得使用git fetch。
此命令会下载有关提交、引用等的所有信息,因此你可以在将这些更改应用于本地存储库之前对其进行检查。
用法

$ git fetch
  1. git pull

git pull命令下载内容(而不是元数据),并立即用最新的内容更新本地存储库。

用法

$ git pull <remote_url>
  1. git stash

此git命令会临时存储已修改的文件。你可以使用以下Git命令处理stash工作。

用法

$ git stash

可以使用以下命令查看所有stash

$ git stash list

如果你需要应用stash到分支,那就使用apply

$ git stash apply
  1. git log

在git log的帮助下,你可以看到所有之前的提交,并且最近的提交出现在最前面。

用法

$ git log

默认情况下,它将显示当前已检出分支的所有提交,但是你可以强制通过所有选项来查看所有分支的所有提交。

$ git log --all
  1. git shortlog

git shortlog命令会显示来自git log命令的摘要。如果你只对简短的摘要感兴趣,那么此命令就非常有用了。
这个命令有助于查看谁处理了什么,因为它对作者及其提交进行了分组。
image

用法

$ git shortlog
  1. git show

与git log相比,此命令将显示有关特定提交的详细信息。

用法

$ git show <your_commit_hash>
  1. git rm

有时你需要从代码库中删除文件,在这种情况下,可以使用git rm命令。
它可以从索引和工作目录中删除跟踪的文件。

用法

$ git rm <your_file_name>
  1. git merge

git merge可帮助将来自两个分支的更改集成到单个分支中。

用法

$ git merge <branch_name>

此命令会将<branch_name>合并到当前你选择的分支中。

高级Git命令

现在是时候再上一个层次了。在这个部分中,我们要学习的是高级的Git命令。这些命令就需要花时间去练习了。
但是一旦掌握了这些命令的基础知识,使用起来不要太轻松哦。

  1. git rebase

git rebase类似于git merge命令。它把两个分支集成到一个分支中,但有一个不一样的地方:git rebase命令将会重写提交记录。
当你有多个私有分支合并到单个分支时,应使用git rebase命令。它将使得提交历史成为线性的。

用法

$ git rebase <base>
  1. git bisect

git bisect命令可帮助查找糟糕的提交。

用法
i)启动git bisect

$ git bisect start

ii)让git bisect知道什么是好的提交

$ git bisect good a123

iii)让git bisect知道什么是糟糕的提交

$ git bisect bad z123

通过git bisect,只要几分钟你就可以缩小问题代码的范围。

  1. git cherry-pick

git cherry-pick是一个蛮有用的命令,允许你从任意分支中选择任意提交并将其应用于其他任意分支。

用法

$ git cherry-pick <commit-hash>

git cherry-pick不会修改存储库的历史记录;相反,它会添加到历史记录。

  1. git archive

git archive命令会把多个文件合并为单个文件。就好像zip实用程序一样,所以你可以提取存档文件以获取单个文件。

用法

$ git archive --format zip HEAD > archive-HEAD.zip

它将创建当前修订的zip存档。

  1. git pull --rebase

在大多数情况下,当你使用git pull时,你需要重新设置基准(并且不进行合并)。
此时,你就可以使用此选项。

用法

$ git pull --rebase

这将帮助保持干净的历史记录。另外,还可以避免多次合并。

  1. git blame

如果你需要逐行检查任意文件的内容,则需要使用git blame命令。它可以帮助确定是谁对文件进行了更改。
用法

$ git blame <your_file_name>
  1. git tag

在Git中,标签很有用,你可以使用它们来管理发布。你可以将git tag视为不会改变的分支。尤其是要公开发布的时候,则更为重要了。
用法

$ git tag -a v1.0.0
  1. git verify-commit

git verify-commit命令将检查gpg签名。GPG,GNU Privacy Guard,是sign文件中使用的工具,包含签名。

用法

$ git verify-commit <commit>
  1. git verify-tag

可以以同样的方式确认标签。

用法

$ git verify-tag <tag>
  1. git diff

大多数情况下,在提交或推送之前,你需要比较两个git文件或分支。用这个命令就方便多了。

用法
i)将工作目录与本地存储库进行比较:

$ git diff HEAD <filename>

ii)比较两个分支:

$ git diff <source branch> <target branch>
  1. git citool

git citool是Git提交的图形化替代。
image

用法

$ git citool
  1. git mv

重命名git文件。接受两个参数,源文件名和目标文件名。

用法

$ git mv <old-file-name> <new-file-name>
  1. git clean

你可以使用git clean命令处理未跟踪的文件。可以使用此命令从工作目录中删除所有未跟踪的文件。如果要处理跟踪的文件,则需要使用git reset命令。
用法

$ git clean
  1. git help

Git中有许多命令,如果你需要其他命令的帮助,则可以随时在终端上使用git help。

用法

$ git help <git_command>
  1. git whatchanged

此命令的作用与git log相同,但为原始格式。并且由于历史原因,它也是git的一份子。

用法

$ git whatchanged

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions