【发布时间】:2022-01-06 07:21:37
【问题描述】:
是否有一个用于拉分支并重新定位到它的单行代码?
例如,在处理feature 分支时,签出master,拉取更改,然后签出到feature,然后再运行git rebase master。
# currently on feature branch
git checkout master
git pull
git checkout feature
git rebase master
这个单线是什么?
【问题讨论】:
-
git fetch && git rebase origin/master相当于问题中的内容。如果您调整工作流程以不涉及不必要的本地分支机构,那就简单多了。 -
嗯,有时想要一个单行字意味着您想要更短的键入,而没有更深入地了解核心问题,并且可能会用一流的术语重新思考它。我会在本地删除主分支,然后简单地执行
git fetch origin以从远程存储库中获取更改,然后通过简单的git rebase origin/master将当前分支重新设置在基础分支之上。不是真正的 oneliner,而是使用一流的 git 命令而不进行结帐,也不会创建越来越多的命令来使它们成为 oneliner。 -
有点。你很可能仍然想要一个本地主分支——但它的存在/不存在在这里不是一个因素,因为它没有被引用。同样
git checkout -b new-thing origin/master从远程分支创建一个新分支,并且再次对本地主分支的存在无动于衷。 -
有点题外话:我个人不太喜欢oneliners、aliases或git-scripts:它们引入了作者思考问题的理性模型,而且它们不是那么“可扩展”(在一台新机器上,结对编程,远程外壳等,一个人要么复制他/她的 git 工具包,要么使用 git 内置插件,如果前者是不可能的)。我将它们用于或多或少复杂的任务(例如将 git 工作通过管道传输到其他工具),而且我从不记得我的整个 git 工具包,当然也没有在线文档。这就是为什么我更喜欢尽可能使用 git 一流的命令。