1

Gerrit でレビュー中の既存の変更に新しいパッチ セットをプッシュしようとしました。

git push origin HEAD:refs/for/foo

しかし、変更が既に閉じられているというエラーで失敗しました。それから、私は愚かにも試しました:

git push . HEAD:refs/for/foo

これは成功したように見えましたが、Gerrit を確認したところ、新しいパッチ セットはありませんでした。その理由の 1 つは、プッシュ先の Gerrit 変更 ID がコミット コメントに含まれていなかったことだと思います。しかし、最後のコマンドは実際に何をしたのでしょうか? どうすれば元に戻すことができますか?

4

2 に答える 2

3

" ."引数は"このリポジトリにプッシュする"を意味し、refspecHEAD:refs/for/fooは "HEADが指している現在のコミットを取得refs/heads/somethingrefs/for/foo、同じコミット」。

基本的に、現在のコミットで新しい「ブランチ」を作成しますが、目的の名前が通常のブランチの名前空間にないため、を使用することはできませんgit branch refs/for/foo

あなたはそれを元に戻すことができるはずですgit push . :refs/for/foo-refを置き換えるために空のソースに名前を付けます。

于 2012-10-16T17:27:20.663 に答える
0

git pushリモート名だけでなくアドレスも受け入れます(ドキュメントのGit URLを参照)。特に、ローカルリポジトリへのパスを受け入れるため.、現在のリポジトリだけであり、その中に新しい参照を作成しました。

通常どおり、次の方法で削除できます。

git push . :refs/for/foo
于 2012-10-16T17:28:24.623 に答える