Что такое система контроля версий? Чем полезен Git? - PullRequest
1 голос
/ 23 марта 2011

как, например, я делаю ruby ​​на рельсах и использую git для контроля версий.

Ответы [ 4 ]

3 голосов
/ 23 марта 2011

Я использую git в качестве единственного разработчика, и я не мог представить свою жизнь без него. С git я всегда знаю, что я делаю и что я изменил. Я могу вносить экспериментальные изменения, не боясь не помнить, что я изменил. Я могу посмотреть старые версии файлов на случай, если я удалил что-то, что теперь хочу вернуть.

Я всегда могу зайти в свой терминал и набрать git status и посмотреть, какие файлы я изменил. Я могу набрать git diff, чтобы увидеть эти изменения. Если я решу, что мои изменения бесполезны и я хочу вернуться туда, где я был, я просто наберу git checkout ..

3 голосов
/ 23 марта 2011

Лучшая часть о Git в отличие от других систем контроля версий, Git может работать в автономном режиме. Не имеет значения, находитесь ли вы в самолете, дома или в каком-то отдаленном месте, где нет связи. Вы все еще можете зафиксировать изменения в своем локальном репозитории git и отправить их на централизованный сервер (если он у вас есть), когда вы подключены. Еще одна вещь, которая делает Git очень мощным, это «Ветви». Если вы хотите исправить ошибку или попробовать что-то новое без ущерба для текущего рабочего кода, просто создайте ветку и поработайте над ней. Когда в вашей ветке все работает нормально, вы можете объединить ее с главной веткой.

Я бы сказал, что Git обеспечивает большую гибкость, чем все остальные SCM.

2 голосов
/ 23 марта 2011

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

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

1 голос
/ 23 марта 2011

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

Однако, где он действительно сияет, это ситуация, когда разные разработчики работают над определенным файлом одновременно ... поэтому, если я отредактирую строки 1-20 файла с кодом 400 строк, и вы редактируете 97 - 143, система управления версиями может объединять эти изменения вместе, так что когда вы собираетесь делать обновление, вы объединяете мои изменения в ваш файл и видите, как мой код влияет на то, что вы написали, если таковые имеются.

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

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

Скажем, вы работаете над своим кодом, старательно пытаясь добавить функцию в свое программное обеспечение, но вы получаете экстренный вызов: "ПОЖАЛУЙСТА, ИСПРАВЬТЕ XYZ, САЙТ НЕ РАБОТАЕТ!"

Без контроля версий вам придется комментировать все то, что вы только что добавили, затем попытаться исправить проблему, и если вы что-то забудете, это может вызвать еще больше проблем, когда вы попытаетесь выследить новое ошибка, которую вы представили, потому что вы не помните весь новый код, который вы написали (можете ли вы сказать, что я был там раньше?) ... с помощью Git вы можете просто «разветвляться» (создать другую виртуальную копию своего кода ) ... и работайте над своей новой функцией ... затем, когда поступит вызов в 3 часа ночи, вы можете просто переключиться обратно на основную стабильную ветвь программного обеспечения, зафиксировать исправление, отправить его в живую ... затем вернуться к работе на вашей функции.
очень классно, правда?

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

Я бы порекомендовал бесплатную книгу сообщества Git, чтобы помочь вам в этом
https://github.com/rails/jquery-ujs
Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...