2016-07-29 21 views
1

まだプッシュされていないコミットがいくつかあります。しかしリポジトリにはいくつかの新しいコミットがあります。私は新しいコミットを引き出し、コミットをプッシュしたいと思いますが、これを行う正しい方法がわかりません。 私が引き出しを行うと、私はマージしようとしていると思うし、私のコミットが何になるのか分からないので、そのような状況に対する解決策を提案してください。未確定のコミットをしている間にgitから引き出す

答えて

3

、あなたがプッシュし、あなたのブランチにリモートブランチをマージするか、またはリモートであなたのブランチをリベースすることができ、その後、速いです - リモートブランチを転送します。

オプション1:マージ

git pull origin yourBranch   # does a fetch, followed by a merge 
git push origin yourBranch   # push merged branch to remote 

オプション2:リモートブランチに表示されるコミットリベースのに対し、単一のマージにあなたのコミットを崩壊する

git pull --rebase origin yourBranch # does a fetch, followed by a rebase 
git push origin yourBranch   # ideally this will fast-forward the remote, 
            # meaning all your commits will be played on top 

マージをリベースリモートブランチでコミットを順番に保持します。

いずれの場合も、作業を失うことはありませんが、作成したコミットの一部(またはすべて)は、マージオプションを使用してリモートブランチに保存されないことがあります。

-1

これを実行してみますが、手順:あなたがここでは2つの主要なオプションを持っている

Step1: git add . 
Step2: git commit -m "message commit" 
Step3: git pull 
if you have some conflict, please merge code and return step 1. 
Step 4: git push. 
4

git pull --rebaseは、しばしばここで行うのが最も便利です。効果的にそれは以下となります。あなたのunpushed変更

  • 上流からプル(これは単なる早送り、マージを必要としません)
  • 再適用して変更する前にバック

    1. ロールリポジトリ

    コンフリクトがない場合は、質問は表示されずに先に進み、必要なマージをせずに変更を完全にプッシュできる状態になります。競合がある場合は、競合のサイズと未処理のコミットの数に応じて、リベース処理中に解決する必要があります。

  • 1

    git pullを実行する必要があります。 次に、マージを解決して(もしそうなら)、新しいコミットを作成してからリポジトリに押します。

    +0

    ようこそスタックオーバーフロー!これは質問への答えを提供しません。批評をしたり、著者の説明を求めるには、自分の投稿の下にコメントを残してください。自分の投稿にいつもコメントをつけることができます。また、[earn](http://meta.stackoverflow.com/q/146472/169503)評判](http://stackoverflow.com/help/whats-reputation)あなたは[コメント](http://stackoverflow.com/help/privileges/comment)に投稿することができます。関連しているが異なる質問がある場合は、[新しい質問をする](http://stackoverflow.com/questions/ask)を参照してください。 – ddb

    関連する問題