Что такое GIT, а что нет .. контроль версий? - PullRequest
0 голосов
/ 22 декабря 2018

Хорошо, у меня возникли проблемы с пониманием того, что делает git или чего он не делает.

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

Например, если у меня есть файл C, где яЯ генерирую ШИМ с помощью timer1, но затем я хочу проверить его с помощью timer2.Я обычно либо комментирую код и пробую его.Или я скопировал бы файл C и изменил бы его, не волнуясь о нарушении моего рабочего кода.Затем я продолжал бы и снова пытался делать другие вещи, всегда имея свой исходный файл и рабочий код.

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

У меня есть локальный репозиторий, который я отправил на github.У меня есть файл read me, и я редактирую его и отправляю в git hub, и он появляется.Затем я сделал больше изменений и отправил его снова.

Затем я сделал сброс, используя коммит sha..и я попытался нажать на него, и он сказал, что заголовок моего локального не соответствует удаленному.и затем я проверяю файл read me, и я ожидал, что он вернется к моей версии 1, а он этого не сделал ... поэтому у меня нет этих нескольких версий моего файла?

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

Потому что я думал, что это было:

  1. У меня есть файл

  2. Iизменить мой файл

  3. Я использую git для контроля версий
  4. Я редактирую свой файл, и git каким-то образом проиндексирует его как версию 2, и у него будет резервная версия моей версии 1.
  5. Я продолжаю редактировать и фиксировать, а git отслеживает все изменения в моем файле, и я всегда могу вернуться к старой версии своего файла.

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

Ответы [ 2 ]

0 голосов
/ 22 декабря 2018

Да, Git для контроля версий.Хотя существует много других инструментов для той же цели, Git является распределенным контролем версий, что означает, что каждый пользователь может поддерживать локальный репозиторий Git, который может храниться в его / ее файловой системе.Теперь внесенные в код изменения необходимо будет добавить в область подготовки и зафиксировать.Из каждого коммита можно извлекать разные ветки, можно объединять ветки и выполнять различные другие задачи и т. Д. Проблема, на которую вы ссылаетесь, заключается в том, что удаленный репозиторий (который может быть на Github) на одну ветку опережает ваш локальный репозиторий.,Сначала вы должны извлечь последний код из удаленного репозитория, отменить его, а затем зафиксировать возвращенный код поверх самого последнего коммита в удаленном репо.Но для этого могут быть более эффективные решения.

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

Редактировать: Под одним способом я подразумеваю, что после слияния веток вы не вернетесь к их слиянию - это снова и снова будет зависеть от истории коммитов.

0 голосов
/ 22 декабря 2018

В: Могу ли я иметь несколько версий файла, а git отслеживает все версии и возможность вернуть мои файлы обратно, например, в версию 1?

A: Да.Абсолютно да.Это и многое, многое другое.

В: Мне вообще нужен Github?

A: Нет. Вы можете полностью использовать Git локально.В отличие от систем контроля версий (VCS), таких как SVN или Visual Sourcesafe, Git является НЕ клиент / сервером.Каждый Git-репозиторий является полным и самодостаточным.

Q: Тогда зачем беспокоиться о GitHub?

A: Просто потому, что иногда полезно иметь возможность синхронизировать свой локальный репозиторий где угодно,из "облака".Или чтобы вы могли поделиться своим хранилищем с кем угодно, независимо от того, имеют ли они доступ к вашей рабочей станции.

На языке Git Github является примером "удаленного хранилища".

ПРЕДЛОЖЕНИЕ:

Попробуйте некоторые учебные пособия, иллюстрирующие основные рабочие процессы Git (регистрация, извлечение, изменения diff, создание и объединение ветвей) БЕЗ возни с Github.

Я думаюэто может быть менее запутанным и дать вам более ясное представление «Почему Git».

На самом деле, есть хорошая вводная статья в журнале Linux Magazine за этот месяц:

http://www.linux -magazine.com / Issues / 2018/216 / Version-Control-with-Git

PS:

Почему вы получаете ошибки?Ряд возможных причин.По сути, ваш пульт (Github) не синхронизирован с вашим локальным репо.Есть много способов исправить это;Ни один из них не сложный.

git status - это один из способов получить больше информации.

Но, вероятно, лучше всего просто не связываться с Github, пока вы не почувствуете себя немного более комфортно с Gitсам по себе.

...