2015-09-02 2 views
0

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

  1. Git сжимает весь исходный код на локальном компьютере, в эффективной манера. Для проектов, над которыми мы работаем, это может быть легко понять, но я хочу знать, когда работа над крупным проектом, особенно с открытым исходным кодом, где работают тысячи разработчиков, работающих во многих параллельных выпусках, будет ли такая огромная база кода храниться одинаково на локальная машина. Даже я чувствую, что такие проекты не могут использовать централизованный VC. Пожалуйста, дайте мне знать ваши мысли по тому же поводу.
  2. У меня есть возможность переключиться на конкретную ревизию кода с помощью команды git checkout. Как только я переключусь на ревизию, если я вношу изменения и фиксацию, как обрабатывать этот сценарий, поскольку он отклонился от истории фиксации, о которой он ранее указывал.
  3. В каком режиме реального времени мы используем функцию commit amend и что нам нужно позаботиться при изменении фиксации.

ответ

0

Вопрос 1: Да, GIT следует использовать. Git имеет очень сложный алгоритм не только для сжатия содержимого, но и для сохранения содержимого, которое только было изменено. Для Git не важно, сколько файлов у вас есть, единственное, что имеет значение для содержания CONTENT, поэтому оно в первую очередь предназначено для обработки больших фрагментов данных.

В любом случае, вы должны знать о функциях git и о том, как их использовать при столкновении с проблемами. Например, некоторые проблемы, которые могут возникнуть в крупных проектах, - это долгая история изменений, множество филиалов и т. Д. Возможно, вы захотите сделать свою историю неглубокой или применить фильтры к вашим филиалам и т. Д. Для более подробного объяснения вы можете хочу прочитать http://blogs.atlassian.com/2014/05/handle-big-repositories-git/

Вопрос 2: Если вы собираетесь во временную ветвь, например temp_branch_001, после фиксации изменений, вы должны checkout master (или ветвь, которая рассматривается в качестве ведущего), а затем git merge temp_branch_001 держать основную ветвь своевременно. Тем не менее, если ваша ветка является постоянной ветвью с совершенно другим контентом, тогда не может быть необходимости в объединении основной ветви.

Вопрос 3: Вы используете его для улучшения предыдущих коммитов с вашими новыми изменениями, вместо того, чтобы создавать новые фиксации. Для этого вы можете обратиться к подробному объяснению здесь: https://www.atlassian.com/git/tutorials/rewriting-history

+0

Спасибо за быстрый ответ. Что касается первого вопроса, это означает, что тысячи разработчиков берут на себя функции linux os и многих филиалов, и все это можно эффективно обрабатывать с помощью Git. Можно ли даже предположить, что централизованное хранилище можно использовать в таких сценариях, где ему необходимо поддерживать такое требование? – zilcuanu

+0

Ну, по крайней мере несколько лет назад они были использованы. Но старые инструменты были для старого времени. Управление (логически) централизованными репозиториями проще. Но в любом случае, git master следует рассматривать в серьезных сценариях, и НЕТ, избегайте использования централизованных репозиториев, если вы знаете, используя GIT. Поскольку git, если применяется правильно, добавляет высокий уровень дисциплины в ваш проект, который поможет вам в дальнейшем в проекте, не говоря уже о гибкости, снижении затрат и эффективном алгоритме обработки изменений контента с надежными возможностями сжатия. –