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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Git

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

Ruby on Rails

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

Q&A

解決済

2回答

3152閲覧

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

ryki

総合スコア11

Git

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

Ruby on Rails

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

0グッド

0クリップ

投稿2018/05/20 09:57

編集2018/05/20 10:38

前提

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

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

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


補足2に関する追記

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

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

投稿2018/05/20 11:05

編集2018/05/21 09:29
kazto

総合スコア7196

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryki

2018/05/22 15:58

コメントありがとうございます。 おっしゃる通りgit管理すべきディレクトリを間違えておりました。 正しいディレクトリがそもそもわからなかったため、チュートリアルを見直し、ディレクトリに留意しつつ最初から順を追ってやり直したところ、問題なくうまくいきました。 また補足2に対するコメントについてもありがとうございます。 直接的な原因ではなかったものの、こちらも大変勉強になりました。
guest

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 10:17

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryki

2018/05/20 10:53 編集

回答ありがとうございます。- は質問入力時のミスです。失礼致しました。 .bash_hisutoryをcommitしましたが、次は補足2で追記したようなエラーが出ております。 まだ「蛇足」でコメントしていただいている件ですが、私はまだ学習をスタートして数日の初心者であり、とにかくRailsチュートリアルに沿って進めているため、ブランチやcommitの概念を理解しきれていないです。 そのため、そもそも「masterブランチでcommitしている?とは?」という状態であり、『本当に正しいか?』と問いについても「わからない」というのが正直なところです。申し訳ございません。 同様に、『普通、 .bash_history は ホームディレクトリにあるものです。 ホームディレクトリ を commit しているのでしょうか? あるいは知らぬ間に git の作業フォルダに copy してしまって、commit してしまったのでしょうか?』というご質問に対しても、「ホームディレクトリをcommitしている、とは?」という状態であり、「gitの作業フォルダ?とは?そしてそれにコピーしてしまったのかは、わからない」という状態です。 こちらの理解が追いついておらず申し訳ございません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問