2017-03-29 3 views
1

こんにちは私はこの問題を抱えています。私はopensource repoに貢献しています。マスターブランチから作業するたびに、通常はコードがマージされるときにマスターブランチではなく、私はマスターブランチを正常に戻すために上流(元のレポ)を引き出します。これは私にいくつかの変更を加えた後に最近問題を引き起こしました。クローンされたリポジトリにプッシュすると元のリポジトリと同じレベルに戻るために上流に引っ張ってきました。しかし、私がgithubで比較すると、それは上流との違いを示しています。 私は再び動作しませんでした git pushは "すべて最新"を示していますが、違いを比較します

を押しコミットしてから 再び上流引っ張っ

  1. Gitチェックアウトマスター
  2. を試してみました! 私はコミットをチェックしようとしました

    1. git checkout HEAD~5 
    2. git pull upstream master 
    3. git add 
    4. git commit 
    5. git push 
    

    まだ動作しませんでした。

    また、すべての問題に対してクイックフィックスブランチを作成し、マスターブランチからすべてを行うことを避ける簡単な方法を知りたいと思います。

答えて

1

は、私は元のリポジトリ

あなたは上流/マスターを使用してクローン化された/原点レポマスターを交換したい場合は その後、一つの方法と同じレベルに戻って取得するために、上流引っ張っオリジン/マスター上流/マスターにリセットすることです。力は(-f)プッシュがあなたの地元であなたの起源/マスターを置き換えます:

は注意起源/マスター上流/マスターに違いはありません今

$ git fetch upstream $ git checkout master $ git reset --hard upstream/master # local/master = upstream/master $ git push -f origin master # force push to origin/master 

、/master = upstream/master
の履歴です。


私はまた、あなたが新しいブランチを作成し、チェックアウトすることができますすべての問題のためのクイックフィックスのブランチを作成するための簡単な方法を知っているように、私のマスターブランチ

からすべてをやって回避します上流/マスターから直接ローカルに

# no matter in which branch you are now! 
$ git fetch upstream 
$ git checkout -b quick-fix upstream/master # chekcout to 'quick-fix' branch with the same history of 'upstream/master' 
+0

あなたのお返事ありがとう –

1

あなたorigin/masterupstream/masterニーズ力プル/プッシュ(多分上流/マスターは歴史がコミット変更)と同じであることを確認します。その前にローカルのmasterブランチからチェックアウトしたブランチをoriginにプッシュして、ブランチの変更を失わないようにする必要があります。次に、以下の手順でupstream/masterorigin/masterを同期:今すぐ

git checkout master 
git pull -f upstream master 
git reset --hard upstream/master 
git push -f origin master 

origin/masterupstream/masterと同期です。あなたは、以下のコマンドでダブルチェックすることができます

git log origin/master..upstream/master 
git log upstream/master..origin/master 

二つのコマンドの両方が同じレベルでorigin/masterupstream/masterを意味何も出力を、持っていない場合(同期化)。

+0

あなたのお返事ありがとうございます、最初のようなものです。 –

関連する問題