在我之前的 git 入门指南中,我简要介绍了 git 分支的工作原理。git branch
例如,您可以使用命令创建新分支。在本指南中,我们将深入探讨分支以及如何git branch
有效使用。
Git 中的分支是什么?#
git 中的分支基本上是指向一项开发工作的指针。它们使您可以从当前代码库中分支出来,以便您可以独立于现有代码库进行工作。下面,每个圆圈代表一个提交。每个分支都可以有自己的提交,并且它们都可以彼此独立开发:新功能分支主枝测试分支
上面,我们有两个分支,都从主分支上的不同提交分支。您的主分支是您在 git 项目中开始的第一个分支。分支基本上可以让你拿走你的工作,复制它,然后单独处理它。可以通过运行在您的提交历史记录中的任何时间创建一个分支git branch x
,其中x
是分支的名称:
git branch my-new-branch
在您的开发中的某个时刻,您可能最终会得到很多分支。在这些情况下,您可以通过运行找到所有分支git branch --list
:
git branch --list
请注意,通过创建分支,您不会被自动设置到该分支。要切换到分支,您必须使用以下命令显式切换到它git switch
:
git switch my-new-branch
在 git 中删除分支
归根结底,您可能会意识到不再需要分支。要删除分支,请使用该-d
选项。例如,git branch -d my-branch
将删除my-branch
.
git branch -d my-branch
在 git 中重命名一个分支
-m
您可以使用命令重命名 git 中的分支。这会将当前分支重命名为-m
. 例如,git branch -m new-branch
将当前分支重命名为new-branch
.
设置和删除远程分支
当您创建一个新分支并尝试使用git push
推送到您的上游时,您可能会遇到问题,因为尚未设置上游分支。你可以在这里做两件事:
- 添加一个新的上游分支以将您的分支推送到您的远程存储库。
- 将更改从本地计算机推送到已经存在的分支上的上游。
任何一个选项都可能适合您的情况。要在远程存储库上创建新分支,只需运行git remote add
:
git remote add my-remote-branch https://github.com/smpnjn/effective-guacamole.git
my-new-branch
这将在您的远程存储库上创建一个名为的分支。如果本地计算机上的分支被调用,则可以通过运行以下命令my-branch
推my-branch
送到远程分支:my-remote-branch
git push --set-upstream my-remote-branch my-branch
您还可以通过运行以下命令来删除远程分支:
git push origin --delete my-remote-branch
将分支合并到您的主分支
一旦您对分支进行了多次提交,您可能希望将其合并回 master。为此,您应该首先使用git add
and提交对分支的任何更改git commit
:
git add -A git commit -m "My commit"
然后,切换或结帐回到主:
git checkout main
您可能想从远程提取任何东西,git pull
首先使用,但最终一旦main
我们可以使用git merge
. 如果你的分支是my-branch
,你可以这样做:
git merge my-branch
这可能会导致一些合并冲突,您需要查看并手动修复这些冲突,但大多数现代代码编辑器(如 Visual Studio Code)都会有一个 GUI 来帮助您执行此操作。否则,您可以运行git diff
,如果您遇到合并冲突来诊断问题。有很多方法可以解决合并冲突,我们将在git merge
. 如果您对解决git 合并冲突感兴趣,可以在此处了解更多信息。