使用单个命令进行分支和结帐

Posted

技术标签:

【中文标题】使用单个命令进行分支和结帐【英文标题】:branch and checkout using a single command 【发布时间】:2013-07-31 06:21:17 【问题描述】:

创建和使用新分支涉及两个命令:

$ git branch new_branch_name
$ git checkout new_branch_name

我倾向于忘记后者,这可能很烦人。有没有办法使用单个命令来做到这一点?也许使用别名或类似的东西?我知道我可以编写一个 shell 函数,但是对于这样一个简单而常见的任务来说,这似乎有点工作量。

Bazaar 使用bzr branch --switch 表示法在一定程度上支持这一点。

【问题讨论】:

由于缺乏研究工作而即将投反对票,但后来我意识到您正在回答自己的问题。 【参考方案1】:

在写问题时,在类似问题列表中找到“What is the difference between "git branch" and "git checkout -b"?”,我自己找到了答案:

$ git checkout -b new_branch_name

我想我正在阅读错误命令的手册页,我希望这是 branch 命令的一部分,而不是 checkout。引用 checkout 的手册页:

指定-b 会创建一个新分支,就像调用git-branch(1) 然后签出一样。

正是我想要的。

【讨论】:

“And how should I create a branch?” “Use git checkout.” 13ren:更新链接:stevelosh.com/blog/2013/04/git-koans/#s2-one-thing-well【参考方案2】:

Git 在 2.23 版本中引入了 switch 来专门处理分支的更改,并避免使用 checkout,这可能会因它可以执行的大量操作而令人困惑。

在其他可能性中,

git switch <branch>  # to switch to an existing branch
git switch -c <new_branch>  # to create a new branch and switch to it

【讨论】:

以上是关于使用单个命令进行分支和结帐的主要内容,如果未能解决你的问题,请参考以下文章

Qt Creator Git,结帐命令

git checkout 将未暂存的文件带到新分支

我如何合并从dev到开始然后生产的git分支

GIT结帐保留本地更改但之前没有? [复制]

结帐到本地获取的远程分支[重复]

如何检索分支上元素的结帐评论?