0

新しいものから古いものまで、次のような Git 履歴があるとします。

* C: WIP: Latest change
* B: WIP: Older changer
* A: Groundwork/housekeeping - review ready
* (origin/master) Existing master commit
* ...

コミット B と C は進行中の作業であり、まだレビューのために送信する準備ができていませんが、コミット A に分割し、B と C の前にリベースしたいくつかのハウスキーピング/基礎があります。送信する準備ができていますこれはレビュー用です。

コミット A で新しいブランチを作成し、それを確認するか、リセット/チェックアウト、確認して戻ることがgit-reviewできることはわかっていますが、この 1 つのコミットだけを確認のために送信するために使用できる単純な 1 つのライナーはありますか?

4

2 に答える 2

0

git branch任意のターゲット コミットを使用して、新しいブランチを作成できます。あなたの場合、 を指す新しいブランチを作成する場合はA、次のようにできます。

git branch newbranch A

checkout -b構文を使用してすぐにチェックアウトすることもできます。

git checkout -b newbranch A

次に、そのブランチとそのコミット A をレビューのために送信できます。マージされたら、リベースできるBためC、新しいorigin/master.

于 2016-01-05T11:54:04.250 に答える
0

git-review では無理だと思いますが、raw push コマンドを使えば git-review がなくてもできます。

たとえば、通常 git-review を使用しない場合は、次のようなコマンドを使用します。

git push origin HEAD:refs/for/master

また、コミットを 1 つだけプッシュしたい場合 (以前のすべてのコミットAが既に にある場合にのみ 1 つになりますmaster)、特定のコミット、たとえば commit A、の代わりにそのハッシュを使用できますHEAD

git push origin A:refs/for/master

しかし、ハッシュの使用法はあまり良くありません。知っておく必要がありHEAD~2、このような構造を使用してより簡単な方法でこれを行うHEADことができますA

git push origin HEAD~2:refs/for/master

しかし、構造が長すぎるので、代わりにこのようないくつかのgit エイリアスgit push origin HEAD~2:refs/for/masterを作成できます(次の例のエイリアスは常に宛先ブランチとして使用されるため、ワークフローで のように複数の宛先ブランチを使用している場合は、次のエイリアスを作成する必要があります)。とのような各ブランチ):mastermasterdevelopmentreview-master-2review-development-2

git config --global alias.review-1 'push origin HEAD~1:refs/for/master'
git config --global alias.review-2 'push origin HEAD~2:refs/for/master'
git config --global alias.review-3 'push origin HEAD~3:refs/for/master'
git config --global alias.review-4 'push origin HEAD~4:refs/for/master'
git config --global alias.review-5 'push origin HEAD~5:refs/for/master'

エイリアスを使用すると、A次のような短いコマンドを使用してコミットをプッシュできます。

git review-2
于 2016-01-06T14:14:42.263 に答える