不切换分支情况下,将所有分支进行变基

3
我希望每晚运行一个cronjob,该任务执行git fetch,然后将每个分支都重新基于其所跟踪的内容进行变基。如果应用不兼容,则中止并尝试下一个分支。
这个大致上可以实现这个功能:
git branch --no-color --no-track | \
sed 's/[ *]*//' | \
grep -v master | \
xargs -I % sh -c '
    git checkout %;
    git rebase;
    git rebase --abort;
    git reset --hard;
    git clean -f;
    git clean -fdx'

现在,我希望这不会影响我的当前状态,这样当我下班回家时就不用担心我的git仓库的状态。


我认为在 Stack Overflow 上有一个答案,大意是“你不能在没有检出工作副本的情况下进行变基,以解决合并冲突。” - user456814
最坏的情况,也许需要使用stash和重新应用?不过我有点害怕... - Paul Tarjan
1
我强烈建议不要在定时任务中执行此类自动重置操作。有太多的事情可能会出错,你很容易就会得到一个混乱的代码库。而且,如果你创建一个本地分支来尝试一些东西,这个自动重置可能会毁掉这个分支的历史记录(即使你只是将本地分支与上游跟踪分支合并)。 - Greg Hewgill
1个回答

2
现在,我希望这不会影响我的当前状态,这样我就不必担心当我回家时我的git repo的状态。因此,请在您当前的本地repo的本地克隆上操作。如果一切顺利(Greg指出可能不会),然后从本地重新基于克隆中获取更新的分支,并根据自己的条件更新您当前的分支,而无需担心自动进程破坏您工作目录中的所有内容。请保留HTML标签,但并不需要解释。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接