Скажем, у меня есть папка с корнем git mine_git
, у которой есть подкаталог subdir
. Таким образом, я работал немного, и я в subdir
- git status
списков все измененные файлы:git добавить все отслеживаемые файлы - также те, что указаны в родительском каталоге
subdir$ git status -uno
# On branch master
# ...
#
# modified: mysubdirfile.txt
# modified: ../a-main-file.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
K, поэтому я хочу, чтобы добавить все эти сопровождаемые и измененные файлы для постановки зоны (или кэша индекса? ? не уверен в имени), поэтому я могу совершить потом; поэтому я выдаю:
subdir$ git add -u
... а потом я снова проверить:
subdir$ git status -uno
# On branch master
# Changes to be committed:
# ...
#
# modified: mysubdirfile.txt
#
# Changes not staged for commit:
# ...
#
# modified: ../a-main-file.txt
#
# Untracked files not listed (use -u option to show untracked files)
Таким образом, только те файлы в моем текущем местоположении являются git add
ред и не тех, кто из родителей/двойники папки - даже если эти файлы отслеживаются этим репозиторием git и отображаются в git status
!
И тогда мне обычно приходится вручную копировать файлы папок, чтобы сделать git add ../a-main-file.txt
. Очевидно, что это боль - так есть какая-то команда, которая добавит все файлов, перечисленных git status -uno
, независимо от того, находятся ли они ниже текущего уровня или нет?
'git add -u' отлично работает здесь – maggick
Спасибо @maggick - как ответ ниже отмечает, это не сработало для меня, потому что у меня была старая версия git; ура! – sdaau