在使用Git时,我经常发现自己在master
中工作时会执行以下操作:
# work work work...
$ git checkout -b temp
$ git commit -a -m 'more work done'
$ git checkout master
$ git pull origin master
# turns out master was updated since my previous pull
$ git checkout temp
# I don't want a merge commit for a simple bugfix
$ git rebase master
$ git checkout master
$ git merge temp
$ git push origin master
$ git branch -d temp
......我已经厌倦了这样做。有没有一种方法可以在没有所有 checkout 的情况下完成这个舞蹈,最好是没有(手动)创建临时分支?
3条答案
按热度按时间agxfikkp1#
如果你不介意创建一个名为
temp
的分支,你可以在master
上做以下所有的事情:......或同等:
但是,如果你确实想保留
temp
分支,你仍然可以通过不 checkoutmaster
来做pull
来缩短这个过程--你只需要 checkoutfetch
,然后将分支重定基到origin/master
:sehe的回答提醒我,你可以替换:
...与:
...这几乎是等价的。不同之处在于,当您运行
git fetch origin
时,origin
的所有远程跟踪分支都将被更新,而当您从origin
提取特定分支时,它们都不会被更新-只是临时refFETCH_HEAD
被更新。我个人更喜欢运行一个额外的命令(git fetch origin
),并查看输出中发生更改的所有远程分支。kkbh8khc2#
您至少可以优化重定基准:
git pull --rebase
我不知道你喜欢什么样的工作,但我喜欢我的工作流程是这样的:
这样我就能把注意力集中在手边的分支上。
后来,我知道了
等等。
7kjnsjlb3#