2016-09-16 20 views
3

私はGitHub Webサイトを使用してプルリクエストを送信しています(例えば、開発機能 - >開発)。そこに矛盾があると、それが自動的にマージすることはできませんし、次のコマンドを実行していることを教え、いくつかの例があります:私はローカルでこのコマンドを実行するとGitHub - プルリクエスト - マージ

git checkout development 
git merge development-Feature 
git push origin development 

は私が取得:

merge made by the 'recursive' strategy 

ローカルには競合がありません(競合するファイルが自動的にマージされます)。

私の質問は、GitHub(ウェブサイト)は(たとえ自動マージされていても)矛盾がないかどうかチェックして、何かがあればそれを断念しますか?私は、GitHubがプルリクエストを実行する際に使用するコマンドを見つけようとしましたが、見つからないようです。

ありがとう、

+0

方が良いOPが質問に行わ 'Gitのmerge'前に' development'をリセットする必要があることを、あなたの問題 –

答えて

1

これは逆の方法です。フィーチャーブランチで開発をマージする必要があります。

支店developmentのローカルコピーはまだ「古い」バージョンです。手動で更新する必要があります。

git fetch -pと入力すると、ブランチから「メタデータ」がダウンロードされ、最新のバージョンで更新されていないことをローカルのgitが知ることができます。 -p引数は、githubに存在しないブランチのメタデータをローカルコンピュータから消去します。

fetchコマンドを実行した後で、開発ブランチをチェックアウトすることができます。そして、あなたが "後ろにいる"というメッセージが表示されます。

実際にサーバーからデータを取得するには、git pull origin development(開発ブランチにある間に)を入力する必要があります。

フィーチャーブランチに戻り、git merge developmentを実行してください。 githubが話している葛藤を得るでしょう。それらを修正し、コミットし、プッシュします。手動

  • git commit
  • DR

    1. git checkout development
    2. git pull origin development
    3. git checkout development-Feature
    4. git merge development
    5. コンフリクトを解決し、githubのは、あなたが

      TLをマージすることができます

    6. git push origin development-Feature
    +0

    注意を記述するために、質問のタイトルを変更することもできます。 –

    +0

    私はそれが分岐を行う "標準的な"方法だと理解していますが、少し違っています。私たちは、私たちの機能ブランチを可能な限りきれいに保つように努めていますこのようにして、常に安定したリリースブランチを持つことができます。たとえば、従来の方法では、featureAとfeatureBが開発にマージされた場合(最初に逆マージされた場合)、フィーチャBは、リリースが固定されるまでリリースが保留されているという問題があります。私たちのアプローチでは、いつでもフィーチャーAを導入できます。 – user472292

    +0

    「プロセス」の議論とは別に、私はGitHubがマージをどのように処理するかについてより興味があった。それについての洞察はありますか?私の主な質問は、私のローカルgitは自動的にマージされますが、GitHubはなぜですか? – user472292

    関連する問題