Git Command

本文统计一下 Git 常用命令。

初始化本地仓库

1
git init <directory>

directory 是可选的,如果不指定,将使用当前目录。

克隆一个远程仓库

1
git clone <url>

添加文件到暂存区

1
git add <file>

要添加当前目录中的所有文件,请使用 . 代替,代码如下:

1
git add .

提交更改

1
git commit -m "<message>"

如果要添加对跟踪文件所做的所有更改并提交。

1
2
3
git commit -a -m "<message>"
## or
git commit -am "<message>"

从暂存区删除一个文件

1
git reset <file>

移动或重命名文件

1
git mv <current path> <new path>

从存储库中删除文件

1
git rm <file>

您也可以仅使用 –cached 标志将其从暂存区中删除

1
git rm --cached <file>

基本 Git 概念

  1. 默认分支名称:main
  2. 默认远程名称:origin
  3. 当前分支参考:HEAD
  4. HEAD 的父级:HEAD^ 或 HEAD~1
  5. HEAD 的祖父母:HEAD^^ 或 HEAD~2

显示分支

1
git branch

有用的标志:

  • -a:显示所有分支(本地和远程)
  • -r:显示远程分支
  • -v:显示最后一次提交的分支

创建一个分支

1
git branch <branch>

你可以创建一个分支并使用 checkout 命令切换到它。

1
git checkout -b <branch>

切换到一个分支

1
git checkout <branch>

删除一个分支

1
git branch -d <branch>

您还可以使用 -D 标志强制删除分支。

1
git branch -D <branch>

合并分支

1
git merge <branch to merge into HEAD>

有用的标志:

  • –no-ff:即使合并解析为快进,也创建合并提交
  • –squash:将指定分支中的所有提交压缩为单个提交

建议不要使用 –squash 标志,因为它会将所有提交压缩为单个提交,从而导致提交历史混乱。

变基分支

变基是将一系列提交移动或组合到新的基本提交的过程。

1
git rebase <branch to rebase from>

查看之前的提交

1
git checkout <commit id>

恢复提交

1
git revert <commit id>

重置提交

1
git reset <commit id>

您还可以添加 –hard 标志来删除所有更改,但请谨慎使用。

1
git reset --hard <commit id>

查看存储库的状态

1
git status

显示提交历史

1
git log

显示对未暂存文件的更改

1
git diff

您还可以使用 –staged 标志来显示对暂存文件的更改。

1
git diff --staged

显示两次提交之间的变化

1
git diff <commit id 01> <commit id 02>

存储更改

stash 允许您在不提交更改的情况下临时存储更改。

1
git stash

您还可以将消息添加到存储中。

1
git stash save "<message>"

列出存储

1
git stash list

申请一个藏匿处

应用存储不会将其从存储列表中删除。

1
git stash apply <stash id>

如果不指定,将应用最新的 stash(适用于所有类似的 stash 命令)

您还可以使用格式 stash@{} 应用存储(适用于所有类似的存储命令)

1
git stash apply stash@{0}

删除一个藏匿处

1
git stash drop <stash id>

删除所有藏匿处

1
git stash clear

应用和删除存储

1
git stash pop <stash id>

显示存储中的更改

1
git stash show <stash id>

添加远程仓库

1
git remote add <remote name> <url>

显示远程仓库

1
git remote

添加 -v 标志以显示远程存储库的 URL。

1
git remote -v

删除远程仓库

1
git remote remove <remote name>

重命名远程存储库

1
git remote rename <old name> <new name>

从远程存储库中获取更改

1
git fetch <remote name>

从特定分支获取更改

1
git fetch <remote name> <branch>

从远程存储库中拉取更改

1
git pull <remote name> <branch>

将更改推送到远程存储库

1
git push <remote name>

将更改推送到特定分支

1
git push <remote name> <branch>
0%