14

SourceTreeをGerritにプッシュする方法がわかりません。

私はこのリンクを見ましたが、それがどのように行われるのかまだわかりません: https ://answers.atlassian.com/questions/29361/configuring-sourcetree-push-for-gerrit

どうやら1.3.3のリリースノートによると、それを行う方法はありますが、私にはわかりません:http: //www.sourcetreeapp.com/update/ReleaseNotes.html#version-1.3.3

それを行う方法について、どこかにステップバイステップガイドがありますか?

今、私はこのコマンドをターミナルで実行してプッシュします

git push origin HEAD:refs/for/master
4

2 に答える 2

31

アトラシアンが提供する答えは、プッシュダイアログが表示されたときにリモートブランチの名前を変更することだと思います。

  1. プッシュダイアログを開く
  2. [リモートブランチ]列の下にあるリモートブランチ名をクリックします(現在は「マスター」です)
  3. 新しいレモブランチ名を入力します-これは私にとっては「refs/for/master」になります
  4. [OK]をクリックします。

これにより、コミットがGerritに適切にプッシュされたようです。私が今抱えている問題は、「refs / for/master」の値が持続しないことです。今それを理解する。それがわかったら、この投稿を更新します。これがゲームに遅れたとしても役立つことを願っています。

更新:.git/configのリモートオリジンの下にプッシュエントリを追加する必要があることがわかりました。これは、git configコマンドを使用して行う必要があります(ファイルを手動で編集したので、これは悪い習慣だと確信しています)。私が書いたプッシュラインは次のとおりです。

push = refs/heads/*:refs/for/*

わかりやすくするために、ここに.git/configのリモートオリジンエントリを示します。

[remote "origin"]
    url = ssh://gerrit-test.example.com:29418/mystuff.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    push = refs/heads/*:refs/for/*

SourceTreeでプッシュできるようになり、最終リポジトリではなくgerritにプッシュされます。(これで、他に何も指定せずにgit pushを実行することもでき、gerritにプッシュされます)。プッシュした後も、SourceTreeはプッシュボタンにまだプッシュするものがあることを示す番号を表示することに注意してください。これは、マスターリポジトリからまだフェッチ中であり、gerritにプッシュした変更がまだマスターリポジトリにマージされていないためです。変更がマスターリポジトリにマージされると、プッシュボタンの番号が消えます。

于 2012-04-27T20:26:14.543 に答える
1

Git Flow( http://nvie.com/posts/a-successful-git-branching-model/ )などを使用してセットアップを行っている場合は、ローカルブランチを別のリモートブランチにプッシュすることがよくあります。このような場合、一般的なプッシュルール(mozart27で言及)は、ローカルブランチを対応するリモートブランチに常にプッシュするため、機能しません。

例:レビューの準備ができているローカルブランチ「feature123」(つまりGerrit)があります。私たちの統合ブランチは「オリジン/デベロップ」です。一般的なプッシュルールを使用すると、「feature123」は「origin / feature123」のレビュー用にプッシュされますが、本当に必要なのは「origin/develop」のレビュー用にプッシュすることです。

解決策:SourceTreeで、カスタムアクションを作成できます。

Menu caption: Push for review
Script to run: cmd
Parameters: /c git push origin $SHA:refs/for/develop

パスにGitを追加して、cmdがGitを使用できるようにすることを忘れないでください。

次に、[プッシュ]をクリックする代わりに、コミットを右クリックして、[カスタムアクション]->[レビューのためにプッシュ]を選択します。

もちろん、これら2つのソリューションは共存でき、リモートブランチにプッシュするときに常にレビューのために送信することを保証する汎用プッシュルールと、統合ブランチでレビューするために機能ブランチを送信する場合のカスタムアクションがあります。

于 2014-02-18T08:58:03.597 に答える