web-dev-qa-db-ja.com

ローカルのみのリポジトリ(リモート/ Originなし)でGitのインタラクティブなリベースを使用するにはどうすればよいですか?

私はgitをローカルのソース管理システムとして使用し、主に履歴と差分の追跡に使用しています。私はまだリベースを使用して、定期的に行うWIPコミットでフィックスアップ/スカッシュを実行したいと思っています。しようとするとgit rebase -iただし、次のようになります。

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

Gitが上流のリモートなしでインタラクティブなリベースを使用することを期待していないようですか?それ、どうやったら出来るの?

35
mcw

git rebase -i省略形で、宛先ブランチを指定しない場合、gitは、ブランチによって追跡されているリモートブランチに対してリベースしようとしていると想定します。そのため、エラーメッセージにリモコンに関する情報が含まれています。

ターゲットを指定すると、gitはそれに対してリベースします commit-ish

git rebase -i <commit-ish>
33

つまり、3つのローカルコミットがあり、インタラクティブにリベース/スカッシュ/ etcしたい場合は、次のようにします。

git rebase -i HEAD~3

(セバスチャンの説明を見てください!)

21
MikeW