Правильный способ обновления репозитория git без чтения каталогов - PullRequest
0 голосов
/ 23 мая 2011

Я прошу прощения, если мой вопрос касается очень простой темы, и на него есть ответ в другом месте, но я нуб с git , и я не мог ответить на него ни читая документацию git, нипоиск в Интернете.

Я создал git-репозиторий для простого тестового проекта.Я инициализировал репозиторий, добавил несколько файлов и каталогов, используя некоторые команды git add, и сделал мой первый коммит.

Просто предположим, например, что я добавил README и два каталога, src1 и src2, которые содержат некоторые файлы.Тогда предположим, что я не только отредактировал содержимое файла, но я добавил / удалил файлы в этих каталогах.Чтобы сделать репо современным, я сейчас делаю:

git add --update
git add src1 src2
git commit -m "something"

Обратите внимание, что я обновляю отредактированные файлы и удаляю удаленные файлы с помощью git add --update, а затем повторнодобавив две директории, чтобы git отслеживал новые файлы, созданные в них!Есть ли простой способ (без повторного добавления) сделать это?Я пробовал только с:

git add --update
git commit -m "something"

, но это не добавит новые файлы, созданные в каталогах src1 и src2. Это потому, что git не "помнит", что я отслеживаю весь каталог, а только файлы внутри него.git, похоже, не отслеживает каталоги.

Очевидно, я создал скрипт bash со строками, которые вы видите в приведенном выше примере, но он немного громоздкий, и я хотел бы знать, есть либолее простой метод.

Ответы [ 3 ]

2 голосов
/ 23 мая 2011

Вместо --update используйте --all. Смотрите man git-add

git add --all .

Это потому, что git не «помнит», что я отслеживаю весь каталог, а только файлы внутри него. git не отслеживает каталоги.

Это очень легко объяснить: да, вы правы :) Git вообще не отслеживает каталоги, потому что каталоги не являются объектами в git-мире. В каталогах нет содержимого, и в них никогда не будет изменений (из-за отсутствующего содержимого), которые могут быть отслежены. Если вы позвоните git add path/to/directory, это не добавит каталог, но добавит каждый содержащий файл рекурсивно.

Просто намек: TIG очень помог мне начать с git:)

2 голосов
/ 23 мая 2011

Чтобы добавить все, что вы можете просто запустить git add --all. Git отслеживает содержимое, а не файлы или каталоги.

Если вы используете --all, будьте осторожны, чтобы не добавлять ненужные вещи и использовать .gitignore.

1 голос
/ 23 мая 2011

git не добавляет новые файлы по причине.Поскольку не все новые файлы должны быть в хранилище по умолчанию.Поэтому вам нужно либо добавить их самостоятельно, либо создать какой-то механизм, который сделает это за вас, но в любом случае он находится под вашим контролем.

Это относится к большинству систем контроля версий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...