在 git 中从另一个分支创建分支的各种方法:
这个答案增加了一些额外的见解,现有答案中没有,仅关于问题本身的标题(从另一个分支在 Git 中创建一个分支) , 但 没有 解决问题的更狭窄的细节,这里已经有足够的答案。
我之所以添加这个,是因为我现在真的需要知道如何执行下面的 #1(从我没有签出的分支创建一个新分支),并且不清楚如何执行,并且谷歌搜索导致这里成为热门搜索结果。所以,我将在这里分享我的发现。此处的任何其他答案都没有很好地涉及到这一点。
在此期间,我还将在下面添加我在常规工作流程中使用的其他最常见的git branch 命令。
1。要从您尚未签出的分支创建新分支:
从branch1 创建branch2,同时签出任何分支(例如:假设您已签出master):
git branch branch2 branch1
一般格式为:
git branch <new_branch> [from_branch]
man git branch 显示如下。我叫<new_branch> 就是他们叫<branchname>,我叫[from_branch] 就是他们叫[<start-point>]:
git branch [--track | --no-track] [-l] [-f] <branchname> [<start-point>]
2。要从您已签出的分支创建新分支:
git branch new_branch
这非常适合在变基、压缩、硬重置等之前进行备份——在做任何可能严重破坏你的分支的事情之前。
例如:我在 feature_branch1,我即将使用 git rebase -i master 将 20 个提交压缩为 1 个。如果我想“撤消”这个,让我们先备份这个分支!我这样做 ALL...THE...TIME 并发现知道我总是可以轻松回到这个备份分支并重新分支非常有帮助和安慰如果我在此过程中搞砸了feature_branch1,请再试一次:
git branch feature_branch1_BAK_20200814-1320hrs_about_to_squash
20200814-1320hrs 部分是格式为 YYYYMMDD-HHMMhrs 的日期和时间,因此将是 2020 年 8 月 14 日的 13:20 小时(下午 1:20)。这样我可以轻松找到我的备份分支,直到我确定我已经准备好删除它们了。如果你不这样做并且你搞砸了,你必须在搞砸之前使用git reflog去找到你的分支,这更难,压力更大,更容易出错。
3。从您已签出的分支创建并签出一个新分支:
git checkout -b new_branch
为了明确那里发生的事情,要知道上面的这个命令等同于以下 两个 单独的命令:
git branch new_branch
git checkout new_branch
4。要从您尚未签出的分支创建并签出一个新分支:
git checkout -b new_branch from_branch
为了让那里发生的事情一目了然,要知道上面的这个命令等同于以下 三个 单独的命令:
git checkout from_branch
git branch new_branch
git checkout new_branch
5。重命名分支
就像重命名终端中的常规文件或文件夹一样,git 认为“重命名”更像是一个“m”ove 命令,因此您使用 git branch -m 重命名分支。这是一般格式:
git branch -m <old_name> <new_name>
man git branch 显示如下:
git branch (-m | -M) [<oldbranch>] <newbranch>
示例:让我们将branch_1 重命名为branch_1.5:
git branch -m branch_1 branch_1.5
或者,如果您已经签出 branch_1,您可以将 currently-checked-out 分支重命名为 branch_1.5,如下所示:
git branch -m branch_1.5