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

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

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

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

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Q&A

解決済

1回答

1017閲覧

Gitでブランチ切り替え時にファイル内容を変更していないのに「Your local changes to the following files」と出る

AIR11451481019

総合スコア9

Git

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

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

0グッド

0クリップ

投稿2023/02/27 22:43

実現したいこと

  • ブランチ切り替え時にエラーがでるのをなくしたい

前提

ローカルでdesignというディレクトリを作り、Git管理下にしました。
直下にtask.txtというファイルを作成、
その後task-managerブランチを作成し、そのブランチでtask.txtの中身をテキストエディタで変更し

git add
git commit -m "ファイル変更"

を行いました。
viコマンドでtask.txtの中身を確認だけしてブランチをmainに切り替えようとすると
以下のようなエラーが出ました。中身は変更していないのに出る理由が不明です。
よろしければご教示いただけると幸いです。

発生している問題・エラーメッセージ

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

該当のソースコード

design $ git branch main * task-manager design $ git add task.txt design $ git status On branch task-manager Changes to be committed: (use "git restore --staged <file>..." to unstage) modified: task.txt design $ git commit -m "ファイル変更" [task-manager 895ca74] ファイル変更 1 file changed, 2 insertions(+) design $ git status On branch task-manager nothing to commit, working tree clean design $ vi task.txt design $ git checkout main error: Your local changes to the following files would be overwritten by checkout: task.txt Please commit your changes or stash them before you switch branches. Aborting design $

補足情報(FW/ツールのバージョンなど)

git version 2.32.0 (Apple Git-132)

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

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

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

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

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

hoshi-takanori

2023/02/27 23:38

git diff で変更内容を確認しましょう。
AIR11451481019

2023/02/27 23:47

コメントいただきありがとうございます git diffしてみたところ -・知恵袋を参考に \ No newline at end of file +・知恵袋を参考に となりました。viでは英数モードに切り替えてEscキーと「:wq」しか押してないのですが、この操作でも変更扱いになるのでしょうか?
hoshi-takanori

2023/02/27 23:58

テキストファイルには末尾に改行がないものがありますが、vi で保存すると勝手に改行を追加してしまいます。また、vi の終了はファイルを保存せずに終了する :q (または :q!) と、ファイルを保存して終了する :wq を適切に使い分けることをお勧めします。
AIR11451481019

2023/02/28 11:52

ご教示いただきありがとうございます。 そのコマンドは存じ上げなかったので、もう少しコマンドの方も勉強してみます。 ありがとうございます。
guest

回答1

0

ベストアンサー

理由はgitとは関係なく、vi(Vimかな?)で「中身を(暗黙のうちに)変更して:wqで上書き保存して終了しているから」ですね。

Vimは、ファイル末尾に改行が付いていないときに自動的に改行を付ける機能があり、あなたの使っているVimではそれが有効になっているのでしょう。
Vimを「:q!」など上書き保存せずに終了するか、自動的にファイル末尾に改行を付けない設定(調べればすぐに出てきます)に変更するかして使ってください。

投稿2023/02/28 00:02

編集2023/03/13 03:24
Daregada

総合スコア11990

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

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

AIR11451481019

2023/02/28 11:54

ご回答ありがとうございます。 自動的に改行されてしまうのは存じ上げていませんでした。 次からはそのコマンドで終了するようにします。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問