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

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

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

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

GitLab

GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

Q&A

解決済

3回答

1225閲覧

Gitで特定のディレクトリが管理されない

BOLTE

総合スコア26

Git

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

GitLab

GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

0グッド

2クリップ

投稿2021/06/18 17:41

編集2021/06/19 02:42

GitLabを使っています。

プロジェクトディレクトリにfigures/というディレクトリを作って、README.mdに使用する画像をまとめていました。しかしpushしてリモートのリポジトリを見たところfigures/がアップロードされておらず、もちろんREADME.mdにも画像は現れていません。
⇦こうなる(リンクが切れているように見える)

以下確認したことを箇条書きします。

  • git status ---> nothing to commit, working tree clean
  • du -h figures/ ---> 16M figures/(容量は問題じゃなさそう)
  • git ls-files ---> figures/に関するファイルは出ない
  • .gitignoreに除外するようには書かれていない
  • 一度名前を変えて(figures/ --> figs/など)、git statusを見たが変化なし
  • 一度消して戻して(mv figures ../ --> mv ../figures ./)、git statusを見たが変化なし
  • touch figures/testしてgit statusを見たが変化なし
  • パーミッションの問題?
drwxr-xr-x@ 12 <my_user_name> <group> 384B 6 19 01:12 figures/

前に別のプロジェクトで同じことをしていましたが、ちゃんとfigures/はリモートに反映されていて、README.mdに画像が現れていました。

正直わけがわかりません。ググっても「そういうことじゃないんだよ」という解決ばかりです。

どなたか解決方法わかる方いませんか? よろしくお願いします。


追記

git add --force figuresでうまく行きました。

bash

1$ git status 2On branch dev 3nothing to commit, working tree clean 4 5$ git add -f figures 6 7$ git status 8On branch dev 9Changes to be committed: 10 (use "git restore --staged <file>..." to unstage) 11 new file: figures/_2021-06-18_23.33.58.png 12 new file: figures/_2021-06-18_23.38.27.png 13 new file: figures/_2021-06-18_23.43.57.png 14 new file: figures/_2021-06-18_23.49.33.png 15 new file: figures/_2021-06-18_23.58.07.png 16 new file: figures/_2021-06-19_0.01.17.png 17 new file: figures/_2021-06-19_0.15.25.png 18 new file: figures/_2021-06-19_0.51.33.png 19 new file: figures/_2021-06-19_1.11.51.png 20 new file: figures/test 21 22 23$ git commit -m "add figures" 24[dev da4d022] add figures 25 10 files changed, 0 insertions(+), 0 deletions(-) 26 create mode 100644 figures/_2021-06-18_23.33.58.png 27 create mode 100644 figures/_2021-06-18_23.38.27.png 28 create mode 100644 figures/_2021-06-18_23.43.57.png 29 create mode 100644 figures/_2021-06-18_23.49.33.png 30 create mode 100644 figures/_2021-06-18_23.58.07.png 31 create mode 100644 figures/_2021-06-19_0.01.17.png 32 create mode 100644 figures/_2021-06-19_0.15.25.png 33 create mode 100644 figures/_2021-06-19_0.51.33.png 34 create mode 100644 figures/_2021-06-19_1.11.51.png 35 create mode 100644 figures/test 36 37$ git push origin dev 38Enumerating objects: 14, done. 39Counting objects: 100% (14/14), done. 40Delta compression using up to 8 threads 41Compressing objects: 100% (12/12), done. 42Writing objects: 100% (13/13), 14.97 MiB | 3.09 MiB/s, done. 43Total 13 (delta 1), reused 0 (delta 0), pack-reused 0 44remote: 45remote: To create a merge request for dev, visit: 46remote: https://gitlab.<organization>/<my_username>/<repository>/-/merge_requests/new?merge_request%5Bsource_branch%5D=dev 47remote: 48To ssh://gitlab.<organization>:7999/<my_username>/<repository>.git 49 b6e7e49..da4d022 dev -> dev

.gitignoreも載せておきます。figures/ディレクトリが除外されているようには見えないのですが、なぜでしょう?

######################################################################################################### ## This is an example .gitignore file for Vivado, please treat it as an example as ## it might not be complete. In addition, XAPP 1165 should be followed. ######################################################################################################### ######### #Exclude all ######### * !*/ !.gitignore ########################################################################### ## VIVADO ########################################################################### ######### #Source files: ######### #Do NOT ignore VHDL, Verilog, block diagrams or EDIF files. !*.vhd !*.v !*.bd !*.edif ######### #IP files ######### #.xci: synthesis and implemented not possible - you need to return back to the previous version to generate output products #.xci + .dcp: implementation possible but not re-synthesis #*.xci(www.spiritconsortium.org) !*.xci #*.dcp(checkpoint files) !*.dcp !*.vds !*.pb #All bd comments and layout coordinates are stored within .ui !*.ui !*.ooc ######### #System Generator ######### !*.mdl !*.slx !*.bxml ######### #Simulation logic analyzer ######### !*.wcfg !*.coe ######### #MIG ######### !*.prj !*.mem ######### #Project files ######### #XPR + *.XML ? XPR (Files are merged into a single XPR file for 2014.1 version) #Do NOT ignore *.xpr files !*.xpr #Include *.xml files for 2013.4 or earlier version !*.xml ######### #Constraint files ######### #Do NOT ignore *.xdc files !*.xdc ######### #TCL - files ######### !*.tcl ######### #Journal - files ######### !*.jou ######### #Reports ######### !*.rpt !*.txt !*.vdi ######### #C-files ######### !*.c !*.h !*.elf !*.bmm !*.xmp #!git_push.sh .DS_Store

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

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

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

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

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

hoshi-takanori

2021/06/18 19:11

「⇦こうなる」のリンクが切れてるようですが…。 figures の中に .gitignore があったりしませんか? また、.gitignore に書いてあっても git add -f figures/* とかで add できるかも。
BOLTE

2021/06/19 02:32

リンクが切れている状態を表すように適当に付けました。 figures の中に .gitignoreはありません。 なんと、git add -f figuresでステージングされ、pushできました。なぜでしょうか? 質問文に追記します。 「回答」していただければ、とりあえずベストアンサーにしたいと思います。
guest

回答3

0

ベストアンサー

.gitignore に * がありますが、これはすべてのファイルを git 管理対象から除外するってことです。

次に !*/ がありますが、先頭の ! はいったん除外されたものを管理対象に戻すという意味です。また、末尾の / はディレクトリを意味しますので、!*/ はサブディレクトリを管理対象にします。ただし、git ではディレクトリそのものは管理しませんので、サブディレクトリの中に管理対象のファイルがあればそれを管理対象にするという意味になります。

そして、その後の !*.vhd!*.v!*.bd などは、そのパターンにマッチするファイル名のもの (つまり、拡張子が .vhd や .v や .bd などのもの) を管理対象にします。

逆にいうと、そこに列挙されたパターンに当てはまらないもの (列挙されてない拡張子のものや、そもそも拡張子のないものなど) は最初の * で除外されてますので、figures の中の png ファイルや test は対象外になります。

ちなみに、README.md も対象外のはずですが、たぶん最初に GitHub GitLab 上で作られたのでしょうか? いずれにせよ、一度 git 管理対象になったものは、.gitignore で除外しても管理対象のままです。

また、.gitignore で除外されたファイルでも、git add に -f オプションをつけると add できます。

投稿2021/06/19 04:07

編集2021/06/19 04:13
hoshi-takanori

総合スコア7899

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

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

BOLTE

2021/06/19 09:11

ありがとうございます! .gitignoreの中に「figures」がなかったので、管理対象になっていると思っていました。 結局は自分がちゃんと.gitignoreについて理解していなかったのが原因だったんですね。 詳しい解説をどうもありがとうございます。大変役に立ちました。
guest

0

まずは別のディレクトリにcloneしてみて、そのディレクトリが存在してるか、ファイルがどうなってるか見てみればどうでしょう

#まさかディレクトリを(ディレクトリのファイルを)addしてないってことは。。

投稿2021/06/18 23:12

編集2021/06/18 23:20
y_waiwai

総合スコア88024

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

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

BOLTE

2021/06/19 02:28

「git add .」としてもステージングされません。 別の場所にクローンしたが同じでした。
guest

0

.gitignore_global は確認しましたか?その中に除外対象となっていないでしょうか?

投稿2021/06/18 18:36

nobkz

総合スコア320

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

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

BOLTE

2021/06/19 02:27

gitignore_globalというのがあるんですね。見てみましたがありませんでした。 というか前は成功していたので問題外です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問