Как добавить несколько файлов в Git одновременно

Это будет мое первое использование git. Я добавил новые файлы (много) в папку/проект (git локальный репозиторий).

Я прошел онлайн-учебники и форумы и увидел, что могу делать

     git commit -a

Итак, я перехожу в базовую папку репозитория и делаю

    sudo git commit -a

Но затем появятся некоторые экраны и попросит добавить комментарий, который я делаю. Я не знаю, как продолжить. Я не хочу испортить, поэтому я сделал ctrl + Z и ничего не делал.

Можете ли вы, ребята, описать команды, которые мне нужно использовать?

git commit -a 

и

git push?

Ответ 1

Чтобы добавить все сделанные вами изменения:

git add .

Чтобы зафиксировать их:

git commit -m "MY MESSAGE HERE" # -m - это флаг сообщения

Вы можете соединить эти шаги следующим образом:

git commit -a -m "MY MESSAGE HERE"

Чтобы скопировать исправленные изменения из локального репозитория в удаленный репозиторий:

git push origin master

После этого вам, возможно, придется ввести свое имя пользователя/пароль для github. Вот хороший пример использования git. Немного устарел, но он охватывает то, что происходит очень хорошо.

Ответ 2

Используйте команду git add, за которой следует список имен файлов, разделенных пробелами, например,

git add <file-name-1> <file-name-2> <file-name-3>

Ответ 3

Вы также можете выбрать несколько файлов, таких как

git add folder/subfolder/*

Это добавит все файлы в указанную подпапку. Очень полезно, когда вы редактируете кучу файлов, но вы просто хотите зафиксировать некоторые из них...

Ответ 4

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

$ git add -i
           staged     unstaged path
  1:    unchanged        +0/-1 TODO
  2:    unchanged        +1/-1 index.html
  3:    unchanged        +5/-1 lib/simplegit.rb

*** Commands ***
  1: status     2: update      3: revert     4: add untracked
  5: patch      6: diff        7: quit       8: help
What now>

Если вы нажмете 2, затем enter, вы получите список доступных файлов, которые нужно добавить:

What now> 2
           staged     unstaged path
  1:    unchanged        +0/-1 TODO
  2:    unchanged        +1/-1 index.html
  3:    unchanged        +5/-1 lib/simplegit.rb
Update>>

Теперь вам просто нужно вставить количество файлов, которые вы хотите добавить, поэтому, если бы мы хотели добавить TODO и index.html, мы бы набрали 1,2

Update>> 1,2
           staged     unstaged path
* 1:    unchanged        +0/-1 TODO
* 2:    unchanged        +1/-1 index.html
  3:    unchanged        +5/-1 lib/simplegit.rb
Update>>

Вы видите * перед номером? это означает, что файл был добавлен.

Теперь представьте, что у вас есть 7 файлов, и вы хотите добавить их все, кроме 7-го? Конечно, мы могли бы набрать 1,2,3,4,5,6, но представьте, вместо 7 у нас будет 16, это было бы довольно громоздким, нам не нужно вводить их все, потому что мы можем использовать диапазоны, набрав 1-6

Update>> 1-6
           staged     unstaged path
* 1:    unchanged        +0/-1 TODO
* 2:    unchanged        +1/-1 index.html
* 3:    unchanged        +5/-1 lib/simplegit.rb
* 4:    unchanged        +5/-1 file4.html
* 5:    unchanged        +5/-1 file5.html
* 6:    unchanged        +5/-1 file6.html
  7:    unchanged        +5/-1 file7.html
Update>>

Мы можем даже использовать несколько диапазонов, поэтому, если мы хотим от 1 до 3 и от 5 до 7, напечатаем 1-3, 5-7:

Update>> 1-3, 5-7
           staged     unstaged path
* 1:    unchanged        +0/-1 TODO
* 2:    unchanged        +1/-1 index.html
* 3:    unchanged        +5/-1 lib/simplegit.rb
  4:    unchanged        +5/-1 file4.html
* 5:    unchanged        +5/-1 file5.html
* 6:    unchanged        +5/-1 file6.html
* 7:    unchanged        +5/-1 file7.html
Update>>

Мы также можем использовать это для нестационарных файлов, если мы наберем -number, поэтому, если бы мы хотели, чтобы файл без номера был 1, мы набрали -1:

Update>> -1
           staged     unstaged path
  1:    unchanged        +0/-1 TODO
* 2:    unchanged        +1/-1 index.html
* 3:    unchanged        +5/-1 lib/simplegit.rb
  4:    unchanged        +5/-1 file4.html
* 5:    unchanged        +5/-1 file5.html
* 6:    unchanged        +5/-1 file6.html
* 7:    unchanged        +5/-1 file7.html
Update>>

И, как вы можете себе представить, мы можем также отключить ряд файлов, поэтому, если мы наберем -range, все файлы в этом диапазоне будут нестационарными. Если бы мы хотели отключить все файлы от 5 до 7, мы бы набрали -5-7:

Update>> -5-7
           staged     unstaged path
  1:    unchanged        +0/-1 TODO
* 2:    unchanged        +1/-1 index.html
* 3:    unchanged        +5/-1 lib/simplegit.rb
  4:    unchanged        +5/-1 file4.html
  5:    unchanged        +5/-1 file5.html
  6:    unchanged        +5/-1 file6.html
  7:    unchanged        +5/-1 file7.html
Update>>

Ответ 5

Если вы хотите добавить несколько файлов в данную папку, вы можете разделить их с помощью {,}. Это потрясающе для того, чтобы не повторять длинные пути, например.

git add long/path/{file1,file2,...,filen}

Не ставьте пробелы между ,.

Ответ 6

Когда вы меняете файлы или добавляете новые в репозиторий, вы должны сначала их создать.

git add <file>

или если вы хотите выполнить все

git add .

Выполняя это, вы сообщаете git, какие файлы вы хотите в следующем коммите. Затем выполните следующие действия:

git commit -m 'your message here'

Вы используете

git push origin master

где origin - ветвь удаленного репозитория, а master - это ваша локальная ветвь репозитория.

Ответ 7

Похоже, что git запускает ваш редактор (возможно, vi), чтобы вы могли ввести сообщение фиксации. Если вы не знакомы с vi, легко освоить основы. Альтернативы:

  • Используйте git commit -a -m "my first commit message", чтобы указать сообщение фиксации в командной строке (при этом не запускается редактор)

  • Установите переменную среды EDITOR в редактор, который вам знаком с

Ответ 8

Если вы хотите разместить и зафиксировать все свои файлы на Github, сделайте следующее:

git add -A                                                                                
git commit -m "commit message"
git push origin master