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

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

git init
git add . 

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

git status

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

#   (use "git add/rm ..." to update what will be committed)
#   (use "git checkout -- ..." to discard changes in working directory)
#
# deleted:    bash/_bash_profile
# deleted:    bash/_bashrc
# modified:   functions.sh
# modified:   readme.txt
#
# Untracked files:
#   (use "git add ..." to include in what will be committed)
#
# bash/bash/
# template/

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

Для удаленного запуска файла git rm.

  • git rm bash/bash_profile

Для изменения/добавления файла git add

  • git добавить функции .sh

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

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

Ответ 1

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

git add -u

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

git add .

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

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

Для получения дополнительной информации просмотрите man page.

Ответ 2

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

git commit -a

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

git add -u

Этот u pdates набор поэтапных файлов будет изменяться на отслеживаемые файлы. Тем не менее, он не собирает новые файлы без следа - для этого вам нужно просто просто git add . снова.

Ответ 3

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

git add -i

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