このエラーは、ステージングされていない変更があるために発生します。変更を隠しておくか、コミットすると、リベースコマンドを実行できるようになります。
しかし、私はあなたがここでしていることは完全に間違っていると思います。
まず、マスターブランチでコミットすることは想定されていません。トピックブランチでコミットし、マスターブランチとマージ/リベースする必要があります。
次に、やりたいことに応じて、マスターをマスターにリベースするのではなく、マスターをxにリベースします。
だからあなたはすべきです
1, checkout master --> git checkout master
2, rebase on x --> git rebase x
3, do some merge job
4, continue the rebase --> git rebase --continue
ところで、あなたはpro-gitを読むべきです、それは無料で、そしてそれはとても良い本です。
編集:
あなたが投稿したURLを読んだ後、私はここでいくつかの誤解を持っていたと思います。
あなたがこれを持っていると言う:
$ git log --oneline --graph --decorate --all
* c85d8bd (HEAD, master) dev on master again
| * 431a9c6 (topic) dev on topic
|/
* 4ad2cc4 dev on master
* d576e88 init
ここでは、2つのリベースコマンドを試します。
1、トピックに関するマスターのリベース
git checkout master
git rebase topic
これにより、履歴は次のようになります。
$ git log --oneline --graph --decorate --all
* 03021da (HEAD, master) dev on master again
* 431a9c6 (topic) dev on topic
* 4ad2cc4 dev on master
* d576e88 init
2、マスターのトピックをリベース
git checkout topic
git rebase master
あなたの歴史は次のようになります:
$ git log --oneline --graph --decorate --all
* adc93f1 (HEAD, topic) dev on topic
* c85d8bd (master) dev on master again
* 4ad2cc4 dev on master
* d576e88 init
それはあなたが誰に誰になりたいかということです:)
そして私はこれをこのように覚えています:
merge with <branch>
rebase on <branch>
ただし、使用中は例外があります。
git rebase --onto
これらの詳細は、pro-gitの第3.6章にあります。