【SourceTree】新規追加ファイルが反映されず、一部変更差分しか表示されない。

プログラミング

こんにちは、カヨです。

【自己紹介】
SEとしてお仕事しています。
日々自分でコツコツ学びながらコードを書いています。

今回のお題は、

SourceTree
新規追加ファイルが突然反映されなくなった時の対処法
既存のファイル変更はSourceTree(ソースツリー)に反映されるのに新規追加ファイルは表示されない。。。そのせいで、追跡されてなくて別ブランチ移動でさっき変更したところがそのままに。。。困った。不具合でるとコード関連すべての作業に支障がでてしまうので、いつもドキドキしてしまいます。
こんな方に読んでいただきたいと思っています!

✔︎SourceTreeを使っている人
✔︎変更は反映されるのに新規で追加したファイルがSourceTreeで表示されない
✔︎SourceTreeで新規追加ファイルが追跡されない
✔︎SourceTreeで新規追加した内容が別ブランチに移動しても残ったままになってしまう。

突然追加したファイルがコミットできなくなってしまったら、困りますよね。この不具合気づくの遅くなりがち。同じような現象に困った方は是非ご覧ください。

 

 

結論(原因・解決方法)

先に結論。「設定間違いだった」

✔︎ファイルステータスの表示設定が「保留中のファイルを表示」以外になっている。


 

原因

ファイルステータスの設定が「保留中のファイルを表示」以外の設定になっていると、いつものように表示されません。いつものようにというのは、「作業ツリーのファイル」には変更ファイルと追加ファイル削除されたファイルが表示され、ステージング前に準備されます。ここに表示されないとそもそもステージング→コミットの流れができません。(gitコマンド使用でどうにかなりますが。)

 

 

解決方法

✔︎ファイルステータス設定を再度確認。「保留中のファイルを表示」「ファイルステータス順」にする。

詳しく画像で見ていきましょう。

※対象のプロジェクトを開いておく
➀左サイドバーの「ファイルステータス」をクリック
➁サイドバーすぐ右横上部のプルダウンを開く
➂【設定変更1】表示を絞り込む:保留中のファイル
➃【設定変更2】並び順:ファイルステータス
➄ ➂➃の設定を確認し、プルダウンを閉じると変更と新規追加ファイルが表示される。

 

完!

 

解決できたでしょうか?筆者は色々悩んだのにここの設定だったのかー!と涙目になりました。原因追及に時間がとられるんですよね。。。

 

 

 

さらに深掘り

ここからは、「不具合発見の状況」「解決できなかった時の対処法」について解説します。そもそも、解説記事が自分の状況とマッチしてるかヒットさせるのも難しいし、できなかった時に置いてけぼりになっちゃってよく筆者は困るので自分用にも備忘録。

【さらにPICKUP項目】

「不具合発見の状況」
「解決できなかった時の対処法」
「新規追加ファイルが表示されなかったら起きる最悪な状況」

 

 

【状態確認】不具合ってどんな状況?

✔︎新規追加したはずのファイルが「作業ツリーのファイル」覧に出てこない。
例として以下の変更作業をした後、予測する理想の表示と現実に不具合が起きた時の表示の差を見てみよう。

変更:www/index.html(元からあったファイル内容を変更)
追加:www/index copy.html(今回、新しくファイルを追加)

上記のように新規追加したハズのファイルが表示されなければ今回の解決方法がマッチしていて解決できる可能性大です。

 

 

 

解決できなかった時の対処法

✔︎ステージングしたいファイルをgitコマンドで操作
SourceTreeはGitでのバージョン管理をGUIで感覚的に使いやすくしたもの。なので、もしSourceTreeでできないならGitコマンドで作業するのが早い。Gitで行うのは先ず新規で追加したファイルの把握。それからそれらのファイルをステージングする。

 

【Gitコマンド】

//すべての変更状態を表示(無視設定ファイルも含む)
//新規追加ファイルを把握

$ git status --ignored
//ファイルを指定してステージング
$ git add ファイル名

例:git add www/index copy.html
※ファイルが複数あればスペースで区切ってファイルパスを並べる。
※通常ファイル名にはペース入れなです。今回コピーファイルを見本にしてしまいました。
すみません。スペースはいっている場合\をスペースの前に入れる。エスケープ

 

【ターミナル表示】

コマンド「git status –ignored」で変更があるファイルを確認できる。そこで新規追加ファイルを確認。以下が確認箇所。

 

 

新規追加ファイルがSourceTreeに反映されたわけではないので根本的な解決にはならないのですが緊急の再はこの方法を使うと良いと思います。そもそも、Gitコマンドだけで行う人もいるので大丈夫な方法です。

 

 

 

新規追加ファイルが表示されなかったら起きる最悪な状況

✔︎別ブランチのさいにも追加したファイルが存在してしまう
ブランチ➀でA作業の為にファイルaを作成。平行して行ってたB作業のブランチ➁に移動。ブランチを移動したのにファイルaが存在してしまう。

 

ブランチ移動してもさっき追加したファイルが存在

実は筆者はこの現象で今回の記事のお題になっている問題に気づいた。「さっきしてた作業のファイルまだmasterにマージしてないのにあるんだけど?」間違ってマージしてしまったのかと思った。ただ、その場合、既存ファイルの変更もマージされているはずだが、一部のファイルだけだった。そこから、色々考えて原因を探したところ新規で追加ファイルだけがどのブランチでも存在してしまうことが分かった。

 

変更ファイルがコミットされないままブランチ移動すると警告が出るハズ

いつもなら、コミットせずに別ブランチ移動しようもんなら警告が出てくるから、必ずストップさせられる。なぜだろう?さらに調べてみるとそれはファイルステータスの表示選択が「変更」に設定させられているため起こったのだと思う。「保留中のファイル」になっていたら出るハズの警告が「変更」設定では出ない。なので、そのままブランチを移動してしまう。追跡がされていないような状態になってしまっているのがその時の状況だ。

✔︎バージョン管理がされてない状態になる

筆者の感じた結果はこうだ。平行して作業しても全部ごちゃまぜ。大変だ。

 

さいごに

いかがだったでしょうか。少しでも同じように困った人が解決できたら幸いです。まだまだ、知らないまま使っているものが多いと思ったり、気になって色んなボタンを押す癖が仇となったのか勉強になったのか。ポジティブに考えるとこけたりぶつかったりしないと成長ないままだったのでどんな形でも前進できたのならいいかなと思ったりします。もちろん、躓くばかりではなく勉強していく所存です(笑)

タイトルとURLをコピーしました