web-dev-qa-db-ja.com

コマンドラインから純粋なGitでマージリクエストを作成することは可能ですか?

Gitoriousのファイアウォールの背後にあるインストールを使用しています。

Webアプリケーションに移動して、クローンからプルリクエストを作成し、それがクローンされたマスターリポジトリをターゲットにすることができます。

これをコマンドラインで実行できるようにしたいと思います。具体的には、コマンドラインからブランチから別のブランチへのマージリクエストを(クローンからシードリポジトリへではなく)開くことができるようにします。

私はGithubを使用していないため、 Github固有のツールまたはライブラリ を使用できません。これは可能ですか?

32
buley

Git自体には「マージ要求」のようなものはありません。そのため、これが可能な場合は、Gitorious固有のツールが必要になります。純粋なgitでは不可能です。

3
svick

svickによる回答 は正しくありません。 Itisは可能です。

git request-pull これはGitスイートの一部です。そのコマンドラインツールを使用すると、電子メールごとに送信できるプル要求を作成できます。

例:
あなたのOriginはブランチmasterを保持しています。次に、ローカルバグ修正ブランチfixを作成し、バグ修正を実装し、そのfixブランチをOriginにプッシュします。

git Push Origin fix:fix

次に、誰かがfixブランチで行われた変更をmasterにマージするようにします。プルリクエストを作成します

git request-pull master Origin

これにより、次の形式のテキストが作成されます。

The following changes since commit <SHA of master>:

  <commit message of SHA of mster>

are available in the git repository at:
  <repo location> fix

<User Name> (<Number of Commits>):
      <messages of the commits>
      ...

 <changed files>
 ...
 <file statistics>

マージリクエストが、変更をプッシュしたレポジトリにアクセスできない人に送信される場合、 git format-patch

fixブランチをOriginにプッシュした後(それをする必要さえありません)、fixブランチにいる間にパッチを作成します。

git format-patch master..

これにより、fixから分岐してからmasterで行ったコミットごとにパッチファイルが作成されます。生成された.patchファイル

tar czf fix.tgz *.patch

その後、誰かに送信しますメールで確認して適用します。

完全を期すため、パッチの適用は git am

73
eckes

次のコマンドラインツールを使用できます。 https://github.com/brauliobo/gitorious-merge-request

./gitorious-merge-request -e [email protected] -s 'test' -r '~brauliobo/noosfero/brauliobos-noosfero' -a easysafeinstall -b master -t 'noosfero/noosfero'
5
brauliobo

Gitlabはv11.10からこの機能を追加します。最終的な変更をコミットした後、Pushの代わりに次を使用します。

git Push -o merge_request.create

マージリクエストを作成します。詳細は doc で。

1
Ali Zarezade