Размещение измененных файлов в соответствии с их статусом с помощью git

Я начал управлять версией каталога следующим образом.

git init
git add . 

Затем я внес изменения, добавив / удалив / изменив файлы. После того, как я закончу с этим, я бегу

git status

чтобы получить следующие результаты.

# (используйте "git add/rm ..." для обновления того, что будет зафиксировано)
#   (используйте "git checkout -...", чтобы отменить изменения в рабочем каталоге)
#
# удалено:    bash/_bash_profile
# удалено:    bash/_bashrc
# изменено:   functions.sh
# изменено:   readme.txt
#
# Неотслеживаемые файлы:
#   (используйте "git add ..." для включения в то, что будет зафиксировано)
#
# bash / bash /
# template /

Теперь я могу делать именно то, что сказал мне "git status".

Для удаления файла запустите git rm.

  • git rm bash / bash_profile

Для измененного / добавленного файла запустите git add

  • git add functions.sh

У меня такой вопрос: как я могу автоматизировать это? Я вижу, что git уже знает, что делать с измененными файлами.

  • Есть ли команда git для подготовки каждого необходимого файла в соответствии с его статусом? (удалить или добавить)
  • Если нет, есть ли какой-нибудь простой способ размещения всех файлов вместо запуска "git add" или "git rm" один за другим?

3 ответа

Решение

Да, есть простой способ:

git add -u

Это добавит все модификации в текущий каталог (поэтому запустите его с верхнего уровня репо, если вы хотите все). Однако он не будет добавлять неотслеживаемые файлы. Если вы тоже хотите это сделать, вы используете:

git add .

который добавит все файлы в текущем каталоге. (Это означает, что он подберет модификации и неотслеживаемые файлы, но не такие удаления, как add -u).

Будьте уверены и осмотрите git status до и после этого, чтобы убедиться, что вы получаете именно то, что вы хотели поставить. Если вы предпочитаете commit -aБудьте еще внимательнее, чтобы проверить статус. Очень легко добавить что-то, что вы не хотели совершать.

Взгляните на справочную страницу для получения дополнительной информации.

Если вы передадите -a Когда вы фиксируете, все неотмеченные изменения будут автоматически поставлены перед вами:

git commit -a

Если вы не хотите совершать еще, вы можете использовать -u пометить вместо git-add:

git add -u

это uПеред установкой поэтапного файла все изменения будут отслежены. Однако он не собирает новые неотслеживаемые файлы - для этого вам нужно просто git add . снова.

Войдите в интерактивный режим git-add:

git add -i

Затем введите u*q, Это обновит, внесет все изменения и выйдет.

Другие вопросы по тегам