Здравствуйте! Только начинаю изучать git поэтому немного запутался, подскажите пожалуйста по нескольким вопросам...
1) Когда прописываешь комманду git commit -m "Сообщение", то это заносится только в локальный репозитории, или сразу кидается на удалённый, в github? Просто не знаю как удалять коммиты, поэтому спрашиваю до эксперимента) Отсюда и второй вопрос....
2) Как удалять не нужные коммиты и с локального и с удалённого репозитория?
3) Какие файлы вообще добавлять в репозитории? Допустим, что у меня есть такие файлы, как gulpfile.js, package.json Мне их нужно один раз в коммит добавить, а в следующие добавлять только те файлы, что меняются? Эти будут автоматически браться с первого коммита?
P.S. И если представить ситуацию, когда локальные коммиты сделаны. Удалённо ничего не поставленно... просмотреть коммиты и удалить локальный коммит на выбор, возможно?
Сам не великий специалист, но вижу ответ вот каким:
1. Есть две команды - commit и push. Первая добавляет коммит в локальный checkout (не знаю, как это верно в русской терминологии называется). Вторая отправляет корзину коммитов в удаленный репозиторий
2. Коммиты не удаляются, но зато их можно откатить - отрастить ветку от любого прошлого коммита. Называется операция не (как справедливо замечают в комментарии к ответу) pick cherry, а как-то по другому.
3. Общее правило хорошего тона, как я понял, такое - отправлять в репозиторий только изменяющиеся файлы. То есть, например, код, но не сторонние библиотеки. По поводу конкретной сегментации изменяемых файлов - git-клиенты сам определяет, какие файлы менялись в рамках коммита и синхронизирует их выборочно.
А если представить ситуацию, когда локальные коммиты сделаны. Удалённо ничего не поставленно... просмотреть коммиты и удалить локальный коммит, возможно?
git commit - это в локальный
git push - уже готовые коммиты кидаешь в удаленный
коммиты не удаляются, можно просто твой бренч откатить на последний хороший коммит и дальше коммитить уже новые правильные коммиты. Потерявшиеся (headless) коммиты могут удалиться автоматом, сборщиком мусора. ОБычно через месяц.
В коммит добавляешь то, что изменилось с прошлого коммита. Чаще пользуйся git status
Если вы хотите стать Git Ninja и разобраьт его файловую структуру - то да.
Но как программист, который пользуется гитом как инструментом - это просто не нужно делать.
Можно сказать, что git прожорлив, поскольку все коммиты в каком-то виде хранятся навсегда. Но реально, особо париться по этому поводу не следует. Если вы не закоммитили гигабайтный бинарник (такие вещи можно удалить например BFG, или глубоко поколупаться с командами гита)