Подтвердить что ты не робот

Commit изменяется только в одном каталоге в Git

Я использую Git 1.7.4.1 на Mac 10.6.6. Из командной строки, как я могу внести изменения только в один каталог? Я добавил каталог, выполнив:

git add my-dir

но делая

git commit -a

отображает список всех изменений в моем репо, и я хочу только зафиксировать и нажать изменения из my-dir.

4b9b3361

Ответ 1

Опустите параметр -a. Затем git будет передавать только файлы, которые вы поставили с помощью git add.

Вы также можете попробовать выполнить каталоги без предварительной настройки с помощью git commit my-dir.

Ответ 2

Почему никто не упоминает, что вы можете просто

git commit -m 'message' -- my-dir

Мне кажется, что OP не используется для/не любит напрямую использовать промежуточную область. Этот подход также намного безопаснее рекомендовать без дальнейшего контекста, потому что есть вероятность, что фиксация defaault (всего, что поставлена) будет

  • передать больше, чем просто my-dir, если он уже был поставлен
  • приведет к запутывающим результатам, когда OP не будет использоваться для управления промежуточной областью явно (поскольку рабочее дерево может выйти из синхронизации с индексом)

Ответ 3

Хмм, странно. Следующее должно работать. Предполагая, что у вас ничего не поставлено.

git add my-dir
git commit -m "Commiting first revision of my-dir folder. Very exciting feature!"
git push origin master

Ответ 4

Просто отрисуйте папку, используя git add, как вы указали, и сделайте фиксацию без опции -a: git commit -m "Committing stuff". Опция -a означает фиксацию всех файлов, которые были изменены, даже если они не были организованы.

Ответ 5

Сделайте все в одной команде:

git commit -- my-dir

Ответ 6

Основные

git add -- ./myfolder
git commit -m'my comment' -- ./myfolder

С большим количеством файлов и dirs

git add -- ./myfolder1 ./myfolder2./some/random/file.txt
git commit -m'cool' -- ./myfolder1 ./myfolder2 ./some/random/file.txt

Что я искал git голый репо

git --git-dir=path/to/my/repo --work-tree=path/to/my/working/tree add -- ./myfolder
git --git-dir=path/to/my/repo --work-tree=path/to/my/working/tree commit -m'my comment' -- ./myfolder

Не забудьте указать пути с пробелами или сумасшедшими символами

Ответ 7

Вы совершите какие-либо изменения в "промежуточной области"; вы можете увидеть их с помощью git status.

флаг -a в git commit -a, согласно странице руководства, сообщает git грубо "сценить все файлы, которые были изменены или удалены, но не новые файлы, о которых вы не сказали git about" - это не то, что вы хотите

, урок должен знать, какие параметры командной строки

Чтобы исправить это, первое, что вы хотите сделать, в соответствии с Как отменить 'git добавить' перед фиксацией?, чтобы отключить все файлы вы случайно добавили опцию commit -a. В соответствии с этим ответом вы должны выполнить команду git rm -r --cached ., и теперь ваши изменения все равно должны быть там, но ничего не поставлено.

Теперь вы можете сделать git add my-dir, как раньше. Затем вы можете сделать git commit (БЕЗ -a)