How do I use Git's interactive rebase with a local-only repository (no remote / origin)?

99封情书 提交于 2019-11-29 02:13:32

问题


I use git as a local source control system mostly for history and diff tracking. I still want to use rebase to do fixup / squash on WIP commits that I will make periodically. When I try to do git rebase -i though, I get the following:

There is no tracking information for the current branch.
Please specify which branch you want to rebase against.
See git-rebase(1) for details

    git rebase <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=<remote>/<branch> MyBranch

It seems like git doesn't expect you to use interactive rebase without an upstream remote? How do I do that?


回答1:


git rebase -i in shorthand, without specifying a destination branch, will make git assume that you are trying to rebase against a remote branch tracked by your branch. That's why the error message is mentioning stuff about remotes.

When you do specify a target, git will rebase against that commit-ish:

git rebase -i <commit-ish>



回答2:


So in short - if you have 3 local commits and you now want to interactively rebase/squash/etc them:

git rebase -i HEAD~3

(See Sébastien's explanation !)



来源:https://stackoverflow.com/questions/30625213/how-do-i-use-gits-interactive-rebase-with-a-local-only-repository-no-remote

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!