2011-09-09 3 views
1

これまでに問題を引き起こしていたgitの使い方は本当に分かりません。私は何が起こったか説明しようとしましょう:Git:誤って2つのブランチが分岐してしまい、それらを戻すことができない

このプロジェクトには2人の開発者がいます。私はいくつかのコードを書いていて、それをチェックしたいと思います。チェックインする前に、私はgit pullを行います。これは動作しませんし、エラーメッセージが書かれています:

On branch master 
Your branch and 'origin/master' have diverged, 
# and have 1 and 33 different commit(s) each, respectively. 

私は本当に何をすべきかわからなかったので、私はちょうどいじり始めました。私はいくつかの記事を続けてみました。これは、元の/マスターにマージまたはリベースする必要があると言いましたが、どちらのコマンドもうまくいきませんでした。

私のコードでは、両方の開発者のコ​​ミットの正しいマージが反映されているように見えましたが、gitはそのように思われませんでした。しかし、いくつかを回った後、 git checkout起点 を実行することにしました。これは私をすべての枝から連れ出しました。今、gitのステータスでは、私がどのブランチにもいないと言っています。私が見る唯一のコードは他の開発者です。

ここで、分岐が分岐して1と33のコミットが個別に行われたときに、変更をコミットしたのは初めてです。

+0

'git checkout master'と' git merge origin/master'を実行してください。それがうまくいかない場合は、エラーについてより詳しく説明してください。 –

+0

git checkout masterを試してみると、エラーが表示されます: 'エラー: '/ some/file/path ...'にローカル変更があります。ブランチを切り替えることはできません.' git merge origin/masterを実行すると、 'すでに最新です.' –

答えて

1

git diffを使用して、ローカルの変更点を確認してください。ローカルの変更は、git checkout HEAD -- filenameで消すことができます。git stash saveで隠してからgit stash popにするか、コミットすることができます。最後のオプションはあなたが現時点でブランチにいないので推奨できません。そのため、回復するのが難しくなります。

これを実行したら、git checkout mastergit merge origin/masterを実行してください。将来の参照のために、プルを試みる前にコミットしたいと思うかもしれません。

関連する問題