を追加gitの第二の実行に戻ってそれらを追加します。GIT、私のようなディレクトリ構造を持っている-A
-main
-sym-linked-dir
some-file.txt
some-other-file.bar
-sym-linked-dir-2
-some-dir
some-doubly-nested-file.foo
-normal-folder
spam.eggs
pan.cakes
hash.browns
私ははないがどの全くファイルをシンボリックリンクしているかは、シンボリックリンクされたフォルダだけです。
私はspam.eggsに変更を加えると言う、私は、コマンドラインに移動してgit add -A
を行うことができます - gitのは通常どおり実行されますが、削除されたとしてシンボリックリンクフォルダ内のすべてのファイルがマークされると言うことになります。
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: main/sym-linked-dir/some-file.txt
deleted: main/sym-linked-dir/some-other-file.bar
deleted: main/sym-linked-dir-2/some-dir/some-doubly-nested-file.foo
modified: main/normal-folder/spam.eggs
Untracked files:
(use "git add <file>..." to include in what will be committed)
main/sym-linked-dir/
main/sym-linked-dir-2
git add -A
またはgit add main/sym-linked-dir
を再度実行すると、フォルダとすべてのファイルが正常に正常に追加されます。私はその後、ANOTHERgit add -A
を実行する場合
しかし、それは交互に、再びファイルを削除します。
たとえば、私がgit add main/sym-linked-dir
を行った場合、それが追加され、1つの変更が取り消され、1つのファイル+フォルダが削除されます。私がそれからgit add -A
をすればuntrackmain/sym-linked-dir
が再びトラッキングされていたことをもう一度認識しますsym-linked-dir-2
。私はもう一度git add -A
をして、状況が再び逆転する!以下のように(.gitフォルダ内の)レポのため
私の設定は次のとおりです。
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = true
ignorecase = true
hideDotFiles = dotGitOnly
私はグローバル設定で他には何もreleventを持っています。
私の全体的な質問は次のとおりです:gitはシンボリックリンクされたフォルダ内のファイルをすべての目的や目的のために通常のファイルとして扱うようにします。
編集:
私のユースケースがある私は、最新のコードでお互いに更新され、それらを保つために、局部的に2つ(またはそれ以上)のレポで使用されているモジュールを持っていることを、I両方のケースでいくつかのディレクトリをシンボリックリンクしました。これは、1つのリポジトリでそれを更新するたびに、他のいずれかで更新されます。
-myAwesomeModules
-myModule
some-file.txt
-app1
-modules
-myModule <points to /myAwesomeModules/myModule>
some-file.txt
-app2
-modules
-myModule <also points to /myAwesomeModules/myModule>
some-file.txt
これはgitバグのようです。しかし、あなたの全体的な質問に関して、それは簡単ではないかもしれません。 Gitはシンボリックリンクを明示的に追跡し、追跡することはしません。 –
どのプラットフォームの 'git'のどのバージョンですか? – TriskalJM
@TriskalJM '' 'git version 1.9.5.msysgit.1''' on Windows 10 –