質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.83%

  • Ruby on Rails

    6408questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • Git

    1086questions

    Gitはオープンソースの分散バージョン管理システム(DVCS)です。

masterブランチへの切り替えができない

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 99

ryki

score 3

 前提

Railsチュートリアルに沿って学習しているプログラミング初心者です。
チュートリアルに沿ってブランチの編集・コミット・マージを学習しており、modify-READMEというブランチを作成し、READMEファイルの内容を編集後にコミットを完了しました。
そこからmasterブランチへ切り替えてトピックブランチ(modify-README)をマージ、という段階で躓いています。

エラー内容

masterブランチへの切り替えのため$ git checkout masterを実行すると下記のエラーが表示されます。

error: Your local changes to the following files would be overwritten by checkout:
.bash_history
Please commit your changes or stash them before you switch branches.
Aborting

 補足1

エラーの指示の通り.bash_historyのファイルをcommitかstashすれば解決するのかと思いますが、その方法がわかりません。
commitとstashそのもののやり方はわかりますが、.bash-historyが存在するディレクトリへ移動できずに困っています。またそもそもその「該当ディレクトリに移動して当該ファイルをcommitまたはbashという判断が正しいのかもわかりません。
またこのようなエラーの可能性はチュートリアルで示唆されていないため、よりベターな方法やそもそも間違えている部分があれば教えていただきたいです。

尚、リポジトリ管理はBitbucketで行っています。

 補足2

.bash_historyをコミットしたところ下記の表示が出てきました。
イメージ説明

その後、改めてmasterブランチへ切り替えを試みたところ、下記のエラーが表示されました。

fatal: Unable to create '/home/ec2-user/.git/index.lock': File exists.

Another git process seems to be running in this repository, e.g.
an editor opened by 'git commit'. Please make sure all processes
are terminated then try again. If it still fails, a git process
may have crashed in this repository earlier:
remove the file manually to continue.

調べてみたところ下記のページにいきつき、この記事と同じようにindex.lockというファイルは見当たらず、COMMIT_EDITMSGのファイルがあったのでそれは削除しましたが、状況は変わりません。
https://qiita.com/yshishido/items/d62430ebf7ad259f5bec

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+3

状況としては、git管理すべきディレクトリを間違えており、本来作業ディレクトリのみ管理下に置くべきところ、ホームディレクトリ直下からgit initしてしまったようですね。

一番簡単な方法は、今までの履歴は一旦捨てて、作業ディレクトリ下でgit管理をやり直す事かと思います。
rm -rf /home/ec2-user/.git/でgitフォルダを削除し、作業ディレクトリに移動した上で、git initします。


 補足2に関する追記

現象としては、コミットが不完全な状態のままブランチを切り替えようとしているために起きている現象のようです。

補足2の画面は、コミットメッセージを記載するためにエディタが開いた状態です。
恐らく、この画面をそのまま何もせずターミナルを消してしまったりしているのではないでしょうか。
ここでは、コミットメッセージを記載した上で、メッセージを保存、エディタを終了させる必要があります。
そこで初めてブランチの切り替えができるようになります。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/23 00:58

    コメントありがとうございます。
    おっしゃる通りgit管理すべきディレクトリを間違えておりました。
    正しいディレクトリがそもそもわからなかったため、チュートリアルを見直し、ディレクトリに留意しつつ最初から順を追ってやり直したところ、問題なくうまくいきました。

    また補足2に対するコメントについてもありがとうございます。
    直接的な原因ではなかったものの、こちらも大変勉強になりました。

    キャンセル

0

... .bash-historyが存在するディレクトリへ移動できず ...

ls -a とすれば、 ..bash_history が表示されるとおもいます。
(エラーでは、 -(マイナス) でなく、_(アンダースコア)になってます)

(べつの directory へ cd する必要はありません。エラーメッセージには相対パスで表示がされます)

ともかく .bash-history を commit してみてください。

蛇足
そもそも .bash-history なんていうファイルを master ブランチで commit しているのは本当に正しいですか?
普通、 .bash_history は ホームディレクトリにあるものです。 ホームディレクトリ を commit しているのでしょうか? あるいは知らぬ間に git の作業フォルダに copy してしまって、commit してしまったのでしょうか?
とても気になります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/20 19:53 編集

    回答ありがとうございます。- は質問入力時のミスです。失礼致しました。
    .bash_hisutoryをcommitしましたが、次は補足2で追記したようなエラーが出ております。

    まだ「蛇足」でコメントしていただいている件ですが、私はまだ学習をスタートして数日の初心者であり、とにかくRailsチュートリアルに沿って進めているため、ブランチやcommitの概念を理解しきれていないです。

    そのため、そもそも「masterブランチでcommitしている?とは?」という状態であり、『本当に正しいか?』と問いについても「わからない」というのが正直なところです。申し訳ございません。

    同様に、『普通、 .bash_history は ホームディレクトリにあるものです。 ホームディレクトリ を commit しているのでしょうか? あるいは知らぬ間に git の作業フォルダに copy してしまって、commit してしまったのでしょうか?』というご質問に対しても、「ホームディレクトリをcommitしている、とは?」という状態であり、「gitの作業フォルダ?とは?そしてそれにコピーしてしまったのかは、わからない」という状態です。

    こちらの理解が追いついておらず申し訳ございません。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.83%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Ruby on Rails

    6408questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • Git

    1086questions

    Gitはオープンソースの分散バージョン管理システム(DVCS)です。