当我需要下拉master并将其合并到我正在处理的分支中时,我已经厌倦了必须键入分支名称,以便在分支和master(或另一个分支)之间进行更改。
我想创建一个bash脚本,它将在我当前 checkout 的分支之前 checkout 我已经 checkout 的分支
如果我有两个分支master
和branch-1
git checkout master (initial branch)
git checkout branch-1 (do work on branch-1, but need to merge master changes into branch-1)
git checkout master
git pull (pull master changes) (current branch is master, previous branch is branch-1)
git checkout branch-1 <-- replace this command with a command `git lastbranch` that checks out the branch I had open before this branch
字符串
基本上我只是在寻找我最近 checkout 的分行列表,从我的最后一个分行开始
所以如果我 checkout 了master,而在此之前我 checkout 了分支-1,列表将如下所示
master
branch-1
... etc
型
是否存在任何功能?
3条答案
按热度按时间mec1mxoz1#
git checkout
(或Git 2.23及更高版本中的git switch
)有一个“previously checked out分支”的简写语法:字符串
表示“一个前 checkout 的分支”,其中:
型
意思是“两年前 checkout 的分支”,依此类推。
型
与
@{-1}
相同,简称@{-1}
。(不过,没有一个方便的方法来列出这些。
也就是说,你可能做了太多的工作
如果你不使用
master
,你不需要更新它。假设你正在处理分支
feature
,有人在origin
上提交了新的master
,你希望使用它们进行合并或变基。你可以这样做:
型
但你可以这样做:
型
如果使用变基工作流,则为:
型
请注意完全没有
git checkout
的步骤,我们不需要更新master
;事实上,我们甚至根本不需要master
,可以运行git branch -d master
来完全解决它。ni65a41a2#
要检出以前检出的分支,可以使用破折号:
git checkout -
。这同样适用于其他系统命令,如
cd
。kx1ctssn3#
使用
git reflog
、docs这显示了HEAD所指向的所有不同引用(分支、标签等)的历史记录。这包括每次你 checkout 不同的分支、提交等。
的数据