我不小心从我上次工作的功能分支分支,而不是从master分支。这引起了历史上的混乱。
我想:
使master成为默认分支以从中创建新分支,即在此处将其设置为默认分支:
git branch [<oldbranch>] <newbranch>
任何帮助将不胜感激!
答案 0 :(得分:5)
我将配置一个Git别名来完成此操作。
git config alias.braster "checkout master -b"
要使用它,请键入(与分支母版中的其他类似):
git braster feature1
答案 1 :(得分:4)
使用外部git工具时,覆盖git的默认操作可能会导致某些意外结果。
我建议为此创建一个别名。
将以下行添加到您的.bashrc
文件中:
alias gb="git checkout master; git checkout -b"
或运行以下命令:
echo alias gb="git checkout master; git checkout -b" >> ~/.bashrc
答案 2 :(得分:0)
分支没有拥有源分支。它们只是标签,指向提交。 (另请参见What exactly do we mean by "branch"?),真正重要的是提交:Git存储库与提交有关。分支名称对我们的作用是让他们 find 提交,它们的真实姓名(其哈希ID)似乎是随机的,而且没有人记得。
更具体地说,分支名称只是人类可读的位置,您的Git在其中存储了一次提交的原始哈希ID,还有另一个特殊功能:如果您运行git checkout <name>
, Git不仅会检查一个特定的提交,还会 记住该名称作为您的当前分支。 1 无论您的 current 分支名称是什么,当您进行 new 提交时,您刚刚进行的新提交的原始哈希ID都会被塞入该分支的名称中。
结果是,如果您这样创建新的分支名称branch9
:
git branch branch9 a123456
然后,名称branch9
现在指向其哈希ID为a123456
的现有提交。 git branch
命令将使用任何内容,这些内容都可以转换为原始提交哈希ID。使用:
git branch branch9 master
将master
转换为哈希ID(通过读出存储在名称master
中的哈希ID),并使用它来设置新名称branch9
来保存相同哈希ID。
除了将源克隆到Git并对其进行更改并构建自己的版本外,无法更改git branch
将在此处接受的语法或选项。 git checkout -b
,git checkout -B
和git reset
也是一样,所有这些都可以创建新分支或将原始哈希ID强制为分支名称。
您最好的选择是像Rickard Körkkö's answer和gkpin3's answer中那样设置自己的别名(shell / CLI别名或Git别名)。
1 分支名称还有其他特殊功能,没有一个像origin/master
这样适用于远程跟踪名称的功能,但是这个特殊功能-一个无论如何,与Git称为分离的HEAD 相比,Git有效地称为附加的HEAD ,这是迄今为止最重要的。