私は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が上流のリモートなしでインタラクティブなリベースを使用することを期待していないようですか?それ、どうやったら出来るの?
git rebase -i
省略形で、宛先ブランチを指定しない場合、gitは、ブランチによって追跡されているリモートブランチに対してリベースしようとしていると想定します。そのため、エラーメッセージにリモコンに関する情報が含まれています。
ターゲットを指定すると、gitはそれに対してリベースします commit-ish :
git rebase -i <commit-ish>
つまり、3つのローカルコミットがあり、インタラクティブにリベース/スカッシュ/ etcしたい場合は、次のようにします。
git rebase -i HEAD~3
(セバスチャンの説明を見てください!)