Что должно быть в первом коммите?

#git #version-control #github #commit

#git #контроль версий #github #фиксация

Вопрос:

Я скоро начну проект для Android, чтобы узнать об Android, и буду изучать git вместе с ним.

Мне было любопытно, что должно быть в первом коммите? Должно ли это быть просто оболочкой приложения? Например, может быть, файлы по умолчанию с информацией о приложении и тому подобное? Может быть, создать файлы классов, которые потребуются, но оставить их относительно пустыми?

Те же вопросы для большинства проектов, кроме этого. Если я выражаюсь слишком расплывчато, дайте мне знать, и я постараюсь прояснить все, что вам нравится.

Комментарии:

1. Это ваше предпочтение, но я обычно просто помещаю оболочку или мой первый «сеанс» работы в первый коммит.

2. Я часто просто помещаю .gitignore в первый коммит.

Ответ №1:

Ваш первый коммит должен быть некоторой базовой структурой (т.е. даже не заполняйте структуру — просто зафиксируйте голые кости). Все коммиты должны содержать относительно небольшие изменения. Это поможет вам отслеживать все изменения на этом пути (особенно если вы документируете, что каждый небольшой коммит включал в себя выполнение / изменение в разделе информации о фиксации). Кроме того, вы никогда не захотите совершать что-то, что не работает…

Приветствия!

Комментарии:

1. Небольшие изменения, например, в чем? Один совет, который я получил некоторое время назад, заключался в том, чтобы фиксировать только рабочие сборки, что имеет смысл. Может быть, просто прокомментируйте вещи, которые не работают правильно, если они есть.

2. @Portaljacker Любые небольшие изменения. Например, если у меня есть программа с 2 простыми классами — после добавления конструктора я бы зафиксировал. После этого я бы заполнил конструктор, а затем снова зафиксировал. Я стараюсь делать как можно больше небольших коммитов, чтобы все было чистым и понятным. Это также упрощает исправление, если вы допустили ошибку…

3. @Portaljacker Кроме того, да, вы никогда не должны комментировать код, который не работает. Вы могли бы прокомментировать это — я бы посоветовал вам заставить его работать, прежде чем вы его зафиксируете (вместо того, чтобы просто комментировать). Это особенно работает, если вы создаете это в небольшой команде или самостоятельно. Вы можете работать над своим кодом раздел за разделом (с небольшими изменениями) и продолжать его наращивать. Имеет ли это смысл? Надеюсь, что так.

4. Я думаю, так, разделение его на разделы будет самой сложной частью, я думаю. Я создаю приложение reddit для Android не для того, чтобы сделать приложение лучше, а просто для того, чтобы сразу изучить кучу вещей.

5. @Portaljacker Это довольно крутая идея. Продолжайте в том же духе

Ответ №2:

В основном, вы просто хотите сделать это как можно скорее. Вы хотите использовать управление версиями с самого начала вашего проекта. Просто добавьте и зафиксируйте то, что у вас есть в данный момент. Структуры каталогов и файла readme / source более чем достаточно.

Ответ №3:

Имейте в виду, что все, что вы добавляете в первый коммит, вам будет сложно переписать rebase , если вы решите использовать позже. Я бы поставил базовый README в качестве вашего первого коммита.

Ответ №4:

На самом деле это не имеет значения, но мое предложение было бы:

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

Комментарии:

1. Это лучший ответ IMO. Если первый коммит — это что-то иное, чем почти пустой материал, будущие разработчики вскоре попытаются найти документ для изменений кода и придут к описанию «начальной фиксации» для большого количества изменений кода. Это довольно неприятно.