Пусть говорят, что я это сделать:мерзавец - начать отслеживать неотслеживаемые удаленные файлы/каталоги
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
я вижу что-то вроде:
new: f1/some.txt
new: f1/some11.txt
new: f2/some2.txt
new: f3/some3.txt
Так что теперь я только хочу добавить определенные каталоги и их содержание. Я могу это сделать:
git reset f2/
git reset f3/
сейчас работает git status
:
new: f1/some.txt
new: f1/some11.txt
untracked: f2/some2.txt
untracked: f3/some3.txt
Так это то, что мне нужно, и я могу совершить и удалить локально добавлены f2
и f3
каталоги. Но что делать, если позже я решил, что теперь хочу отследить, например, каталог f2
и его содержимое?
Нет, если я снова запустил git merge --no-ff --no-commit merge remotes/some_other_remote_repo/master
, он скажет, что все в актуальном состоянии. Так что теперь он игнорирует эти неподготовленные каталоги. Это их способ сказать git отслеживать конкретные каталоги, которые находятся только в удаленном режиме?
Здесь стоит упомянуть, что Git не отслеживает каталоги как таковые. Вместо этого, если во время проверки Git необходимо создать некоторый каталог 'f1', чтобы иметь файл' f1/some.txt', он просто делает это; и при переходе от commit X к фиксации Y, если commit X имеет 'f1/some.txt' и commit Y ничего не имеет в' f1', а 'f1' становится пустым, Git стремится удалить' f1'. (Я видел много угловых случаев за годы, когда Git не удаляет пустые каталоги, поэтому вы не должны слишком много учитывать это второе поведение.) – torek
@torek да, я понимаю. Я сам это заметил. Хотя в моем случае каждый подкаталог является модулем. Таким образом, весь каталог должен быть включен или исключен. – Andrius