Skip to content

Git 参考手册

提交和推送

修改最后一次提交的信息

bash
git commit --amend

git 会在终端打开一个编辑器,编辑里面的提交内容,保存并退出即可。

如果需要推送到远程,执行:

bash
git push --force

强制推送到远程,因为已经修改了提交信息。

分支

创建分支

bash
git branch newBranch

删除分支

删除本地分支:

bash
git branch -d 分支名  # 仅适用于已合并的分支
git branch -D 分支名  # 强制删除(即使未合并)

删除远程分支:

bash
git push origin --delete 分支名

临时切换分支

当在当前分支上修改了一些内容,但不需要即时提交时,又需要切换到其他分支查看内容等,需要:

  1. 先暂存当前分支的修改:

    bash
    git stash

    git stash 只会暂存已被追踪的文件,将其放入暂存区,但未被追踪的文件不会处理,因此如果修改的文件中还有未被 git 追踪的文件,需要执行:

    bash
    git stash -u  # --include-untracked

    将未被追踪的文件也放入暂存区。

  2. 切换到另一个分支:

    bash
    git switch other-branch
  3. 完成后切换回原始分支,然后执行:

    bash
    git stash pop

    恢复暂存的更改。

错误处理:

如果在切换回原本分支准备 pop 时,切换的分支错误了,即原分支为 A,但切换到了 B 并执行了 pop,在没有进行其他的操作下,再次将文件放回暂存区,使用 git stash -u,然后切换到正确的分支 A,再次执行 pop 即可。

远程仓库

查看绑定的远程仓库

bash
git remote -v

修改绑定的远程仓库

bash
git remote set-url origin <新远程仓库URL>

删除远程仓库

bash
git remote remove origin

查看邮箱和用户名

全局

bash
git config --global user.name
git config --global user.email

当前项目

bash
git config user.name
git config user.email

修改邮箱和用户名

全局

bash
git config --global user.name "Your Global Name"
git config --global user.email "your-global-email@example.com"

当前项目

bash
git config user.name "Your Local Name"
git config user.email "your-local-email@example.com"

SSH 密钥对

机器和 git 仓库账号中需要有公私钥配对,需要在本地机器上生成密钥对,然后将公钥内容添加到账户中。

在本地机器生成密钥对:

bash
ssh-keygen -t rsa -b 4096 -C "935460098@qq.com"

这回生成 id_rsaid_rsa.pub 文件,其中 id_rsa.pub 是公钥,将其复制到账户下。

查看公钥内容:

bash
cat ~/.ssh/id_rsa.pub

代理

使用代理克隆

临时设置:

git clone 命令之前,临时设置 HTTP 和 HTTPS 代理。例如使用 7897 端口代理:

bash
git -c http.proxy=http://127.0.0.1:7897 -c https.proxy=http://127.0.0.1:7897 clone --recurse-submodules https://github.com/mikel-brostrom/Yolov7_StrongSORT_OSNet.git

永久设置:

如果你希望在所有 Git 操作中都使用该代理,可以配置 Git 的全局代理:

bash
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890

这样,你的所有 Git 操作都会自动通过该代理。若要取消代理设置

bash
git config --global --unset http.proxy
git config --global --unset https.proxy

其他指令

查看仓库大小

一般情况下,可以直接到网页端的仓库管理界面查询到仓库的信息,包含仓库大小,如果无法查到仓库大小,可以将仓库克隆到本地,然后运行:

bash
git count-objects -vH

查看仓库大小。

输出形式:

count: 123
size: 1.23 MiB
in-pack: 0
packs: 0
size-pack: 0 bytes
prune-packable: 0
garbage: 0
size-garbage: 0 bytes

Last updated: