前提・実現したいこと
Ruby on Railsチュートリアルを進めているのですが、
git merge が何度となく失敗し、マージできないファイルが数個出てしまいます。
全く前に進めなくて困っています。このような場合はどう対処すれば良いのでしょうか。詳しい方いらっしゃいましたらアドバイス頂けないでしょうか。
よろしくお願いします。
発生している問題・エラーメッセージ
$ git status On branch master Your branch and 'origin/master' have diverged, and have 1 and 1 different commits each, respectively. (use "git pull" to merge the remote branch into yours) nothing to commit, working tree clean
該当のソースコード
試したこと
git reset --hard
等行いましたが、改善にならず、git clean -f でコミットしたものを消したのですが、ブランチマスター上にブランチとオリジン/マスターが分岐しどちらにも違うコミットが残ってしまっているのが問題なのではと思っています。
補足情報(FW/ツールのバージョン
Windows 10
差し支えなければ、git log --graph --oneline の結果を貼り付けていただけませんか?
hoshi-takanori様
コメントありがとうございます。以下が掲載いたします。
よろしくお願いします。
$ git log --graph --oneline
* b3c1ea4 (HEAD -> master) Add a full_title helper
* d7a405c Complete advanced setup
* 592d781 (static-pages) Finish static pages
* 82cb5b9 (origin/static-pages) Add a Static Pages controller
* 81963a7 Add hello
* 50f4e2e Improve the README
* 293096f Initialize repository
ごめんなさい、--all も必要でした。お手数ですが、git log --graph --oneline --all の結果をお願いします。(遠隔で git を教えるのって難しすぎる…。)
というか、have 1 and 1 different commits なので origin/master は d7a405c で分岐して 1 回 commit してるだけですね。origin/master 側の修正って何をどうやってしましたか? また、origin は github という理解でよろしいでしょうか?
ありがとうございます。以下です。
$ git log --graph --oneline --all
* 6b32b95 (filling-in-re-layout) Finish layout and routes
* b3c1ea4 (HEAD -> master) Add a full_title helper
| * d80cf26 (filling-in-leyout) Finish layout and routes
| * f8e15a5 (origin/master, heroku/master, rails-flavored-ruby) Add a full_title helper
|/
* d7a405c Complete advanced setup
* 592d781 (static-pages) Finish static pages
* 82cb5b9 (origin/static-pages) Add a Static Pages controller
* 81963a7 Add hello
* 50f4e2e Improve the README
* 293096f Initialize repository
1回コミットした状態になっているのですが、git add → git commit →
chekuout master → git mergeを普通にやったのですが
必ずmergeの際に、mergeされないファイルが出てしまい、これまでは何とかgit clean -fでコンフリクトしてるファイルを消してやっていたのですが
今回は全くダメでして、git resetもしての現状になっています。
いまは、Railsディレクトリは、ひとつ前に戻ってしまい、作成したファイルが全て消えた状態です。mergeには困っています・・。
お疲れさまです。なかなか複雑な状況になってますね。コミットメッセージから推測するに、origin/master (f8e15a5) と master (b3c1ea4) および filling-in-leyout (d80cf26) と filling-in-re-layout (6b32b95) は並行して同じような作業をされたのでしょうか。どちらかのブランチを捨ててしまって大丈夫なのであれば、origin/master や heroku/master がある方を選んで master を捨てるという手もあります。
ありがとうございます。
仰られるように、mergeが上手く行かなかったもので2回ほどやり直しております。
filling-in-leyout (d80cf26)がmergeできれば、最高なのですがその後解らぬままに色々とgitコマンドをやってしまい、現状となっております・・。Herokuには順次アップしていっているのですが
masterを捨てるというのは大丈夫なのでしょうか?
捨てると言っても、完全に消すわけではなく、単に不採用にするというだけで、履歴は残りますので、あとで部品取りに使うこともできます。状況がだいぶ見えてきたので回答を書こうと思います。ちなみに、今回の作業の目的は Rails の勉強と git の練習のどちらでしょうか? また、開発環境(IDE またはエディタ、git の GUI ツール、git コマンドの実行環境)はどんな感じで作業されてますか?
ありがとうございます。
今回は、gitです。このmergeで失敗することが無いようにしたいのと、失敗した際の対処方法を学びたいと思っております。開発環境は、Windows
10、エディタはatomになります。ターミナルはgit bashです。
これでよろしいでしょうか? よろしくお願い致します。
さらにお手数ですが、git branch -avv の結果を貼ってもらってもいいですか?
お送りいたします。よろしくお願いします。
$ git branch -avv * filling-in-layout b3c1ea4 Add a full_title helper
filling-in-leyout d80cf26 Finish layout and routes
filling-in-re-layout 6b32b95 Finish layout and routes
master b3c1ea4 [origin/master: ahead 1, behind 1] Add a full_title helper
rails-flavored-ruby f8e15a5 Add a full_title helper
static-pages 592d781 [origin/static-pages: ahead 1] Finish static pages
remotes/heroku/master f8e15a5 Add a full_title helper
remotes/origin/master f8e15a5 Add a full_title helper
remotes/origin/static-pages 82cb5b9 Add a Static Pages controller
お送りいたします。よろしくお願いします。
$ git branch -avv * filling-in-layout b3c1ea4 Add a full_title helper
filling-in-leyout d80cf26 Finish layout and routes
filling-in-re-layout 6b32b95 Finish layout and routes
master b3c1ea4 [origin/master: ahead 1, behind 1] Add a full_title helper
rails-flavored-ruby f8e15a5 Add a full_title helper
static-pages 592d781 [origin/static-pages: ahead 1] Finish static pages
remotes/heroku/master f8e15a5 Add a full_title helper
remotes/origin/master f8e15a5 Add a full_title helper
remotes/origin/static-pages 82cb5b9 Add a Static Pages controller
あれ、新しいブランチがありますね。のんびり書いてる場合じゃなかった。(あせ)
hoshi-takanori様
ありがとうございます。
この新しいブランチは、3回目のコーディングに着手しかかっていたものです。
問題がきちんと把握できてない中、やり直したら上手く行かないか?と思ってやってしまったものです。
情けないです・・・。
回答を確認させていただきました。大変丁寧に記述頂いていてびっくり致しました。もの凄く分かり易すいので大変ありがたいです。自分自身まだgitをきちんと理解できていないのが良く分かりました。
良い勉強をさせていただきました。ありがとうございます。
兎に角、これでやってみます!
回答1件