ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Git实用手册(持续更新)

Git实用手册(持续更新)

本博客用于记录本人在工作中用到的Git命令、功能及对应的使用场景,后续会逐步更新完善,如有错误欢迎评论区指正。

一、分支

1.1 常用命令

查看分支的常用命令
命令作用
git branch显示本地所有分支
git branch -v列出本地所有分支,并显示每个分支最后一次提交的摘要信息
git branch -r显示远程跟踪分支
git branch -a-a是--all的简写,显示本地和远程跟踪分支
git branch -vv查看本地分支和远程分支的关联关系
git switch <分支名>切换到已经存在的指定分支
git checkout <分支名>
编解(创建/删除)分支的常用命令
命令作用

git switch -c <分支1> <分支2>

-c(--create简写),基于<分支2>创建名称为<分支1>分支并切换到<分支1>。当<分支2>省略时,默认基于当前分支创建。

如果想使用该命令基于远程分支在本地创建同名分支,<分支2>设置为远程跟踪分支(格式通常为origin/branch_name),<分支1>需设置为同名(对应的为branch_name),此时会基于远程跟踪分支<分支2>在本地创建同名分支并切换。但新建分支与远程分支不会建立关联。

git switch -t origin/<远程分支名>等价于

git switch -c <远程分支名> -t origin/<远程分支名>

-t(--track简写),基于远程跟踪分支自动创建同名分支并切换,同时建立关联。

注意基于远程分支创建分支时需要先执行git fetch获取远程分支最新状态。

git checkout -b <new_branch_name> <branch_name2>-b(--branch简写),同git switch -c命令

git checkout --track origin/<远程分支名>等价于

git checkout -b --track <远程分支名> origin/<远程分支名>

同git switch -t命令
git branch <new_branch_name>基于当前分支创建分支,但不切换
git branch -d <branch_name>删除分支,通常是在目标分支出现BUG时,会在本地基于目标分支新建一个分支用于BUG修复,BUG修复完成并合入目标分支后,使用该命令将修复分支删除。
git branch -D <branch_name>强制删除分支

1.2 关于origin

在Git命令中,有时会包含origin或origin/,有时又没有,初学者容易困惑。

简单来说,origin只是远程仓库的一个别名。当你从GitHub克隆一个项目到本地时,Git会自动给这个远程服务器起名叫origin。

至于什么时候加origin,什么时候不加,关键在于要操作的是本地分支还是远程分支。可通过以下三个场景理清:

1.2.1 什么时候不加origin

场景:操作本地电脑上的真实分支

当你在本地进行日常的代码开发、提交和切换分支时,不需要加origin,因为Git默认你在操作本地仓库。

  • 创建/切换本地分支:git switch release/1.0或git checkout release/1.0
  • 查看本地分支:git branch
  • 提交代码到本地:git commit -m "update"

1.2.2 什么时候加origin(不带斜杠)

场景:告诉Git你要和哪个“远程服务器”通信

当你要把本地代码推送到远程,或者从远程拉去代码时,你需要先指定目标仓库。origin在这里代表“远程服务器”,通常可省略。

  • 推送到远程:git push origin release/1.0
  • 从远程拉取:git pull origin release/1.0
  • 添加新的远程仓库:git remote add upstream <url>(这里upstream是另一个别名)

1.2.3 什么时候加origin/(带斜杠)

场景:引用远程分支在本地留下的“快照”,即远程跟踪分支。

这是最容易混淆的地方。在本地通过git branch -r命令展示的origin/release/1.0并不是服务器上的真实分支,而是上次执行fetch或pull时Git保存在本地的一个只读书签(快照)。它记录了上次执行fetch或pull后远程分支的状态。所以在基于远程分支创建分支之前,要先执行fetch获取远程分支的最新状态。

  • 查看远程分支列表:git branch -r (你会看到origin/main)
  • 基于远程分支创建本地分支:git checkout -b release/1.0 origin/release/1.0(可以回忆一下该命令是否自动建立两者的关联)
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进