跳至内容
GitTree

Git 指南

创建和切换 Git 分支:选择正确的起点

建立一个新分支很容易;从错误的提交开始是昂贵的部分。了解如何创建、切换和跟踪分支、保护未完成的编辑以及在 GitTree 中检查结果。

撰写者 Kodmora已更新 阅读 1 分钟

使用 `git switch -c feature/checkout` 在当前提交处创建分支并切换到该分支。 要切换到现有本地分支,请使用 git switch branch-name。要在不同的起点创建一个,请在新名称后包含该提交或分支。在 GitTree 中,Branch 打开创建对话框;在确认之前检查其起始提交。

实际的问题是你的下一次变革应该建立在哪条历史的基础上。下一个版本的功能可能会从 main 开始;旧版本的紧急补丁应该从该版本分支开始。本指南通过一个动画 GitTree 示例遵循从基础到首次推送的功能分支。 GitTree 是我们为 macOS、Windows 和 Linux 制作的客户端;本地分支机构操作包含在免费计划中,当前的官方版本需要登录。

什么是 Git 分支,HEAD 是什么意思?

分支是指向提交的名称。创建另一个名称不会重复存储库或其文件。 HEAD 通常标识您已签出的分支;新的提交推进该分支。切换会将签出的文件更改为目标历史记录,同时保留兼容的本地编辑。 可视化提交图 使分支标签及其共享提交更易于检查。

相似的命令不同的效果
命令创建分支?切换到它?
git branch feature/checkout是的,在 HEAD否
git switch -c feature/checkout是的,在 HEAD是的
git switch feature/checkout使用现有的本地分支是的
git checkout -b feature/checkout是的;较旧的结帐拼写是的

从正确的基础创建一个分支

首先检查当前分支和本地编辑。如果您的团队想要最新获取的 main 作为基础,请显式获取并命名 origin/main。获取更新远程跟踪参考;它不会自动移动您的本地主目录。将 origin、main 和功能名称替换为存储库的实际名称。

git status
git branch --show-current
git fetch origin
git log -1 --oneline origin/main
git switch --no-track -c feature/checkout origin/main
git branch --show-current
git log -1 --oneline

这里 --no-track 避免让功能分支跟踪 origin/main 仅仅因为它从那里开始。它的最终上游通常应该是远程上它自己的功能分支。如果您想从当前提交开始,请使用不带起点的 git switch -c feature/checkout。使用 git branch -vv 检查跟踪关系。

切换到现有分支并返回上一个分支

git switch feature/checkout
git branch --show-current
git switch -

当您确实想要更改任务时运行每个开关;这些命令只是一个参考,而不是盲目执行的步骤。 git switch - 返回之前签出的分支或提交。 Git 开关从 Git 2.23 开始可用;在较旧的安装中,git checkout branch-name 是切换分支的既定等效项。切勿仅仅为了压制拒绝而添加强制选项。

如何在 GitTree 中创建和切换分支

  1. 检查你从哪里开始

    检查图中的当前分支。在工具栏中选择“分支”以从当前提交开始,或者右键单击某个提交并选择“在此处创建分支”。

  2. 检查基础和名称

    阅读创建分支于,然后输入任务名称,例如 feature/settings-copy。 GitTree 在创建名称之前验证名称。

  3. 创建并签出

    如果您想立即使用新分支,请保持检查已启用状态,然后选择“创建分支”。

  4. 确认当前分支

    找到新分支标签及其当前分支复选标记。您的下一次提交将推进此分支。

  5. 准备好后切换

    双击另一个分支标签,或使用其“结帐”菜单项。如果本地更改阻止切换,请在继续之前选择如何保留它们。

观看 GitTree 的分支对话框创建并检查当前提交的功能/设置副本。
观看 GitTree 的分支对话框创建并检查当前提交的功能/设置副本。GitTree 与演示存储库的接口。

下载 GitTree 以在切换之前查看分支及其起始提交。您的存储库仍然是普通的 Git 存储库,因此您可以在可视化界面和终端命令之间移动。

切换分支时未提交的更改会发生什么?

未提交的编辑尚未存储在分支上。当它们与目标兼容时,Git 可以通过交换机携带它们。如果切换将覆盖本地更改,它将停止。这种拒绝保护了工作;这并不意味着存储库已损坏。在切换之前和之后检查 git status,而不是假设每个编辑都属于您所在的分支。

当本地编辑阻止签出时,GitTree 提供存储和切换、首先提交以及丢弃和切换。选择符合您意图的选项。存储保留临时本地副本;提交记录历史快照;丢弃会删除工作编辑。不要选择放弃作为更改分支的常规方式。 stash 指南 解释了如何检查和恢复保存的工作。

从远程分支创建本地分支

git fetch origin
git branch --remotes
git switch -c feature/checkout --track origin/feature/checkout
git branch -vv

此示例假设本地功能/签出分支尚不存在,而远程分支存在。如果本地已经存在,请切换到它,而不是尝试再次创建它。远程跟踪名称(例如 origin/feature/checkout)是您最后获取的服务器分支视图;本地分支是您提交的地方。跟踪不会连续同步文件。

更改准备就绪后发布新分支

git status
git branch --show-current
git push -u origin feature/checkout

创建本地分支不会上传它。在审查并提交预期的更改后,推动分支共享其提交; -u记录上游关系。在第一次推送之前确认目标远程和分支。有关更广泛的上传工作流程,请参阅将项目推送到 GitHub。推送不会发布不相关的未提交编辑或本地存储条目。

修复常见分支错误而不强制切换

分支问题及下一步检查
消息或症状要检查什么
分支已存在切换到它,或选择一个不同的新名称
无效参考/未知分支检查拼写、获取并检查本地和远程分支列表
本地更改将被覆盖首先提交或隐藏受影响的工作
分支被另一个工作树使用打开该工作树或选择另一个分支
分离头如果您想保留工作,请在离开之前在当前提交处创建一个分支

如果您只是在错误的分支上进行了编辑而没有提交,那么在当前 HEAD 处创建一个新分支通常可以让您继续进行这些编辑。如果您已经提交了修复程序,则传输它是另一项任务:cherry-pick 指南 解释了复制所选提交。对于两个活动任务,请使用单独的工作树,这样切换一个文件夹就不会中断另一个文件夹。

常见问题

git分支是否同时创建和切换?

gitbranchnew-name 创建名称而不切换。 git switch -c new-name 创建它并检查它。

我应该从 main 分支还是 origin/main 分支?

使用您的任务应该开始的确切修订版本。 Local main 和 origin/main 可以不同; fetch 更新后者,而不是前者。

切换分支会删除我的更改吗?

Git 通常会拒绝覆盖本地工作的切换。兼容的编辑可能会跟随您。在更改任务之前检查状态并提交或隐藏重要工作。

创建分支是否会将其发布到 GitHub?

不会。本地分支会保留在您的计算机上,直到您将其提交推送到远程。发布前验证目的地。

GitTree 可以从较旧的提交创建分支吗?

是的。右键单击所选提交并使用“在此处创建分支”,然后验证起始提交以及是否应签出新分支。

来源

有关其他产品的声明已根据其位于 2026年10月28日 的官方页面进行了检查。价格和功能发生变化;供应商的页面是事实的来源。