Lassen Sie sagen, ich dies tun:git - starten untracked Remote-Dateien Tracking/Verzeichnisse
mkdir some_repo
cd some_repo
git init
git touch dummy.txt
git commit -m 'dummy commit'
git remote add -f some_other_remote_repo path/to/.git
git merge --no-ff --no-commit merge remotes/some_other_remote_repo/master
git status
Keine Eingabe Ich sehe so etwas wie:
new: f1/some.txt
new: f1/some11.txt
new: f2/some2.txt
new: f3/some3.txt
So, jetzt habe ich nur bestimmte Verzeichnisse hinzufügen möchten, und ihr Inhalt. Ich kann dies tun:
git reset f2/
git reset f3/
jetzt läuft git status
:
new: f1/some.txt
new: f1/some11.txt
untracked: f2/some2.txt
untracked: f3/some3.txt
Also es tut, was ich brauche und ich kann begehen und entfernen lokal hinzugefügt f2
und f3
Verzeichnisse. Aber was tun, wenn ich später entscheide, dass ich jetzt zum Beispiel f2
Verzeichnis und seinen Inhalt verfolgen möchte?
Nein, wenn ich wieder git merge --no-ff --no-commit merge remotes/some_other_remote_repo/master
laufen, wird es sagen, dass alles auf dem neuesten Stand ist. Daher ignoriert es jetzt diese nicht verfolgten Verzeichnisse. Ist es eine Möglichkeit, git bestimmte Verzeichnisse, die sich nur in der Ferne befinden, zu verfolgen?
Es ist erwähnenswert, dass Git Verzeichnisse nicht per se verfolgt. Stattdessen muss Git ein Verzeichnis 'f1' erstellen, um eine Datei' f1/some.txt' zu haben. und wenn man vom Commit X zum Commit Y wechselt, wenn Commit X 'f1/some.txt' hat und Commit Y nichts in' f1' hat und 'f1' leer wird, tendiert Git dazu,' f1' zu entfernen. (Ich habe im Laufe der Jahre viele Eckenfälle gesehen, in denen Git keine leeren Verzeichnisse entfernen kann, also solltest du dieses zweite Verhalten nicht zu viel zählen.) – torek
@torek ja ich verstehe. Das habe ich selbst bemerkt. Obwohl in meinem Fall jedes Unterverzeichnis ein Modul ist. Daher sollte das gesamte Verzeichnis entweder eingeschlossen oder ausgeschlossen werden. – Andrius