... или они управляют только полными "коммитами"? (Под полными коммитами я имею в виду только рабочие / окончательные файлы для данного снимка.)

Мне нужно изучать какую- то VCS, когда я рискну в рамках приложений (таких как Druapl). Поскольку я не являюсь выпускником CS, моя идея о VC заключалась в том, чтобы кто-то говорил мне обновить эту страницу или исправить эту ошибку :) Поскольку мои проекты становятся все более сложными, мне нужно отслеживать обновления программ, а также свои собственные настройки. Поскольку Druapl использует GIT, было бы здорово, если бы я мог использовать только одну систему.

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

Есть ли команда или рабочий процесс в git для управления этой ситуацией?

2 ответа2

1

Git отслеживает изменения для каждого файла в коммите. Например, это довольно маленькая разница для недавнего коммита с редактором Kate. Фактически, git обычно хранит только изменения каждого файла и использует их для создания полных файлов в вашем рабочем каталоге.

Если вам нужно отслеживать только небольшие инкрементальные изменения, просто фиксируйте каждое небольшое изменение, которое вы хотите отслеживать. Поскольку git не нужно говорить с сервером для фиксации, это быстро и просто. Многие редакторы и IDE поставляются с git-интеграцией, поэтому вам может даже потребоваться нажать кнопку. Индекс Git также позволяет вам проверять только те файлы, которые вы хотите, так что вы можете разделить ваши коммиты по файлам, если хотите.

Мощное ветвление Git позаботится о вашей другой необходимости. Чтобы создать новую ветку и перейти на нее, просто запустите git checkout -b work . Вы можете разветвлять эту или исходную master ветку столько раз, сколько вам нужно. Поскольку git хранит только дополнительные изменения, ветки дешевы и просты. Как только у вас будет что-то готовое, объедините его с вашей основной рабочей веткой. Вы даже можете отслеживать небольшие изменения в одной ветви и объединять их в одну большую фиксацию, так что вы можете отслеживать небольшие изменения, когда вам нужно, но не иметь смехотворно длинной истории в основной рабочей ветви.

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

Я настоятельно рекомендую потратить некоторое время на изучение всех различных функций git, чтобы вы могли легко использовать их в любое время. Наши друзья из Stack Overflow составили список отличных ресурсов.

0

Git, Mercurial и все другие распределенные системы контроля версий, которые мне известны, отслеживают на уровне фиксации. Вы фиксируете не отдельные файлы, а состояние всей рабочей копии в определенный момент времени, и вы явно выбираете, когда выполнять эту фиксацию.

Если вы отслеживаете наборы несвязанных изменений с помощью Git, одним рабочим процессом, облегчающим эту задачу, будет использование одной ветви на изменение. У вас будут следующие ветки:

  • master (вытащил из происхождения)
  • xtian-master (ваша ветка "master")
  • Дополнительные ветви на функцию

Когда Drupal обновляет свою master ветку, вы извлекаете изменения, а затем объединяете их с вашей xtian-master . Таким образом, ваши окончательные изменения будут применены к более новым версиям Drupal.

Если вы хотите изменить страницу, вы должны создать ветку для этого изменения, внести столько изменений и фиксаций в эту ветку, сколько захотите, а затем либо слиться с xtian-master либо удалить ветку (если вы решили отменить изменения), Вы можете иметь несколько веток, работая над новой функцией, и, наконец, объединить выигрышную ветку с xtian-master .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .