3

現在のブランチに対してインタラクティブなリベースを試みています。つまり、タイプミスを修正するコミットがあり、別のコミットの上に「修正」を加えたいと考えています。

時々これはうまくいきます。これにより、次のような奇妙な形式のエラーメッセージが表示されることがあります。

# git rebase -i
You asked me to rebase without telling me which branch you
want to rebase against, and 'branch.myBranchName.merge' in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. 'git rebase <upstream branch>').
See git-rebase(1) for details.

If you often rebase against the same branch, you may want to
use something like the following in your configuration file:
    [branch "myBranchName"]
    remote = <nickname>
    merge = <remote-ref>
    rebase = true

    [remote "<nickname>"]
    url = <url>
    fetch = <refspec>

See git-config(1) for details.

gitにブランチ(現在のブランチ)に対してリベースするように指示すると、次のように失敗します。

# git rebase -i myBranchName

(私のエディターは「noop」で開きます。これは、実際のエラーメッセージの代わりに「noop」と言っているgitだと思います)。私はかなりの編集者になり、次のようになります。

Successfully rebased and updated refs/heads/myBranchName. 

エディターで現在のブランチの変更を確認し、修正としてマークするにはどうすればよいですか?

4

3 に答える 3

4

git-rebase -iいくつかのコミットに適用される操作です。

したがって、現在のブランチが

あいうえお

たとえば、AコミットとCコミットをマージする場合は、実行する必要があります(Aが最上位のコミットである場合)

git rebase -i HEAD~3

これは、「現在のブランチで上位3つのコミットをリベースする」および「コミットHEAD-3から開始する」ことを意味します。

于 2012-11-22T13:58:47.737 に答える
0

多分あなたが欲しいgit rebase -i --autosquash origin/myBranchNameですか?

git-rebaseの引数は、履歴の書き換えを開始するポイントです。現在チェックアウトされているブランチで動作します。

于 2012-11-22T13:59:06.857 に答える
0

あなたの状況は次のようになっていると思いますか?

-A-B-C----D----(HEAD)
  \----Af

修正するAfことで-のためのコミットA

そして、あなたはそれがなりたい

-(A+Af)-B-C-D--(HEAD)

このシナリオでは、次のことを試してみます。

>> rebase <Af>          # where <Af> is the SHA1 of commit Af

あなたの歴史は

-A-Af-B-C-D----(HEAD)

その後

>> rebase -i <A>^       # A^ is the commit that came before A

それはあなたが一緒にスカッシュすることを可能にするインタラクティブなピック/スカッシュビューをあなたに示すでしょAAf

于 2012-11-22T14:15:32.853 に答える