как создать локальный репозиторий git linux
Как пользоваться GitHub на компьютере с Linux
GitHub — один из используемых сервисов размещения проектов для совместной разработки. Он поддерживает контроль версий, возможность отслеживания изменений кода, сравнение строк, а также он бесплатен.
В данной статье приведены примеры использования сервиса на компьютере под управлением операционных систем семейства Linux. Мы рассмотрим, как создать проект на локальном компьютере и залить его на сервис с помощью командной строки. Рассмотренные варианты использования git также можно применять на desktop системах, запустив окно терминала.
Установка git
Управление выполняется с помощью приложения git. Если его нет в системе, установку можно выполнить из репозитория.
Если используем CentOS / Red Hat:
yum install git-core
Если используем Ubuntu / Debian:
apt-get install git
Если мы хотим воспользоваться сервисом с компьютера Windows или Mac OS, необходимо скачать и установить desktop версию с официального сайта.
Синтаксис
Команды имеют следующий синтаксис:
* полный перечень опций, команд и аргументов можно получить командой man git.
Создание проекта на локальном компьютере
Прежде чем отправить проект на GitHub, создаем его на нашем компьютере. Для этого переходим в каталог с файлами проекта:
Инициализируем проект для git:
Мы получим ответ похожий на:
Initialized empty Git repository in /projects/.git/
Это означает, что репозиторий git создан.
Теперь добавим файлы в репозиторий:
* данной командой мы добавили папку и ее содержимое в репозиторий git.
Отправка данных на GitHub
Теперь можно отправить данные на сервис. Для этого у нас должна быть зарегистрированная учетная запись и создан репозиторий на GitHub.
Создание репозитория
Переходим на портал github.com и входим в систему или проходим несложную регистрацию:
Проходим процесс подтверждения, что мы не робот. Затем завершаем несколько шагов регистрации, нажимая Submit. В итоге мы получим письмо на адрес электронной почты, которую указали при регистрации. Необходимо будем подтвердить email, перейдя в письме по кнопке Verify email address.
Создаем репозиторий. Для этого кликаем по иконке профиля и переходим в раздел Your repositories:
И кликаем по кнопке New. В следующем окне даем название репозиторию и нажимаем Create repository:
Мы увидим страницу с путем к репозиторию:
Заливаем проект в репозиторий на GitHub
Добавляем комментарий к нашему проекту:
* где Очередное изменение проекта — произвольный комментарий; параметр -a указывает, что комментарий нужно применить ко всем измененным файлам.
Теперь подключаемся к созданному репозиторию:
git remote add origin https://github.com/dmosktest/project1.git
* где dmosktest — логин, который был указан при регистрации на github, а project1 — название, которое мы задали, когда создавали репозиторий.
* удалить удаленный репозиторий можно командой git remote rm origin.
Закидываем проект на GitHub:
git push origin master
* где master — ветка проекта (веток может быть несколько).
В нашем проекте на GitHub должны появиться файлы проекта:
Получение файлов с GitHub
Для загрузки на компьютер файлов, создаем каталог с проектом и переходим в него:
Проводим начальную настройку локального репозитория:
Подключаемся к удаленному репозиторию:
git remote add origin https://github.com/dmosktest/project1.git
Скачиваем проект командой:
git pull https://github.com/dmosktest/project1.git master
Клонирование проекта
Например, использую наш репозиторий:
git clone https://github.com/dmosktest/project1.git
* данная команда создаст в текущей папке каталог project1 и инициализирует его как локальный репозиторий git. Также загрузит файлы проекта.
Возможные ошибки
1. При попытке отправить данные на GitHub, получаем ошибку:
error: src refspec master does not match any.
error: failed to push some refs to ‘https://github.com/dmosktest/project1.git’
* где dmosktest/project1.git — путь к нашему репозиторию.
Причина: проект ни разу не был зафиксирован (закоммичен).
Решение: добавляем комментарий к нашему проекту:
Если вы хотите начать работать с Git, прочитав всего одну главу, то эта глава — то, что вам нужно. Здесь рассмотрены все базовые команды, необходимые вам для решения подавляющего большинства задач, возникающих при работе с Git. После прочтения этой главы вы научитесь настраивать и инициализировать репозиторий, начинать и прекращать контроль версий файлов, а также подготавливать и фиксировать изменения. Мы также продемонстрируем вам, как настроить в Git игнорирование отдельных файлов или их групп, как быстро и просто отменить ошибочные изменения, как просмотреть историю вашего проекта и изменения между отдельными коммитами (commit), а также как отправлять (push) и получать (pull) изменения в/из удалённого (remote) репозитория.
Создание Git-репозитория
Обычно вы получаете репозиторий Git одним из двух способов:
Вы можете взять локальный каталог, который в настоящее время не находится под версионным контролем, и превратить его в репозиторий Git, либо
Вы можете клонировать существующий репозиторий Git из любого места.
В обоих случаях вы получите готовый к работе Git репозиторий на вашем компьютере.
Создание репозитория в существующем каталоге
Если у вас уже есть проект в каталоге, который не находится под версионным контролем Git, то для начала нужно перейти в него. Если вы не делали этого раньше, то для разных операционных систем это выглядит по-разному:
а затем выполните команду:
Если вы хотите добавить под версионный контроль существующие файлы (в отличие от пустого каталога), вам стоит добавить их в индекс и осуществить первый коммит изменений. Добиться этого вы сможете запустив команду git add несколько раз, указав индексируемые файлы, а затем выполнив git commit :
Мы разберем, что делают эти команды чуть позже. Теперь у вас есть Git-репозиторий с отслеживаемыми файлами и начальным коммитом.
Клонирование существующего репозитория
Как создать новый репозиторий в Git
В данной статье мы рассмотрим, как создать новый пустой Git репозиторий. Мы создадим локальный репозиторий, а также рассмотрим, как создать удаленный репозиторий на примере Github.
Как создать новый пустой репозиторий
Создайте пустую директорию для вашего будущего репозитория и перейдите в нее:
Теперь, чтобы создать в нашей директории новый репозиторий, выполните команду:
В результате будет создан новый локальный пустой репозиторий. На экран будет выведено сообщение вида:
Как создать репозиторий из существующих файлов
Предположим, что у вас уже есть какой-то проект, для которого вы хотите создать Git репозиторий. Создание репозитория выполняется точно также, как описано выше. Перейдите в папку проекта:
Теперь можно добавить все файлы в индекс и сделать первый коммит:
Как создать удаленный репозиторий (на примере Github)
Вы создали локальный репозиторий, теперь, например, вам нужно добавить его на Github, тем самым вы фактически создадите удаленный репозиторий.
Перейдите на https://github.com и войдите в свой аккаунт. Нажмите кнопку New repository (Новый репозиторий). На открывшейся странице введите имя репозитория (Repository name) и нажмите кнопку Create repository.
В своем локальном репозитории теперь выполните команду:
Вам нужно будет ввести логин и пароль аккаунта в Github. Результат команды будет примерно следующим:
Как создать локальный репозиторий git linux
GitHub — всемирно известный сервис, предоставляющий хостинг для IT проектов, также заявляет о себе как социальной сети для разработчиков.
В статье рассмотрено как создать репозиторий на github, подключиться к нему с локального компьютера и работать с проектом. Используется Ubuntu — с github можно работать также с любой другой Unix машины или Windows.
Установка git и создание локального репозитория
Работаем от имени пользователя root. Прежде всего устанавливаем git
Заходим на https://github.com и создаем пользовательский аккаунт, также создаем в графическом интерфейсе первый репозиторий (называем его test)
В консоли Ubuntu задаем имя пользователя, работающего с git и его адрес электронной почты.
git config —global user.name «exampleuser»
git config —global user.email «exampleuser@example.com»
Создаем локальный каталог, который будет служить репозитоирем
переходим в каталог
Initialized empty Git repository in /home/admin/IT/python/py/.git/
Как создать репозиторий на github и подключиться к нему
git remote add origin https://github.com/exampleuser/test.git
Далее пробуем передать дынные из локального репозитория в удаленный
При этом возникает ошибка:
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Из ее текста следует, что не добавлен SSH ключ и подключение к удаленному репозиторию невозможно.
Сгенерируем ключ и добавим его на github
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Вводим путь к ключу на сервере
Enter passphrase (empty for no passphrase):
Вывод аналогичный приведенному выше будет означать, что ключ сгенерирован
Identity added: /root/.ssh/id_rsa (rsa w/o comment)
Копируем ключ, начинающийся с ssh-rsa и вставляем его в соответствующее поле в личном кабинете на github
Выбираем «SSH and GPG keys»
Далее New SSH key (на скриншоте ключ уже добавлен)
После этого вновь пробует отправить данные
Все получилось — данные были успешно переданы в удаленный репозиторий.
Проверяем, создаем файл и добавляем в него произвольный текст (в данном случае добавлен «some text»)
Добавляем измененный файл
Файлы можно добавлять по одному, можно добавлять все сразу — команду можно выполнить вслед за предыдущей она ее продублирует
Здесь система попросит ввести логин пользователя на github и его пароль
Username for ‘https://github.com’: exampleuser
Password for ‘https://exampleuser@github.com’:
Как только мы это сделаем отображаются следующая информация:
Теперь меняем содержимое единственного файла в репозитории — добавляем еще одну строку
и снова передаем информацию на github
В интерфейсе аккаунта на сайте можно видеть добавленный файл, коммиты и комментарии
При невыполнении предложенного порядка действий будут возникать ошибки, информация корректно передаваться не будет.
перед коммитом можно увидеть следующее сообщение, выделенное в консоли красным цветом:
On branch master
Changes not staged for commit:
modified: FILE.txt
no changes added to commit
Все системные сообщения очень информативны — в частности, при попытке «пушнуть» на github неизмененные файлы возникает сообщение «Everything up-to-date»
Username for ‘https://github.com’: exampleuser
Password for ‘https://exampleuser@github.com’:
Everything up-to-date
Создаем файл password и добавляем в него произвольное содержимое
[master c2a671f] added one more file
2 files changed, 2 insertions(+), 1 deletion(-)
create mode 100644 password
Отправляем информацию на удаленный репозиторий
Отмена коммитов с отменой изменений, внесенных в файлы, и без них
Рассмотрим возможность отмены сделанных коммитов до момента передачи данных на github. Меняем содержимое файла убирая, для примера, один символ
[master dded43f] new one
1 file changed, 1 insertion(+), 1 deletion(-)
Отменяем последний коммит следующей командой
Просматриваем файл и убеждаемся в том, что изменения в нем сохранились несмотря на отмену коммита
Делаем коммит снова
Сейчас отменяем его с ключом —hard, его использование означает, что будет отменен коммит и изменения, внесенные в файл
HEAD is now at c2a671f added one more file
Отправляем данные на github
Клонирование репозитория с Github
Идем на другую машину (в тестовой среде был просто сменен пользователь командой su mailer, затем выполнен переход в его домашний каталог cd /home/mailer)
git clone https://github.com/exampleuser/test.git
Cloning into ‘test’…
remote: Counting objects: 10, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 10 (delta 0), reused 10 (delta 0), pack-reused 0
Unpacking objects: 100% (10/10), done.
Checking connectivity… done.
Переходим в каталог test
Редактируем файл password
git config —global user.email «testuser2017@mail.ru»
git config —global user.name «testuser2017»
Отправляем на github
Проверяем, что на github появилась информация о сделанном коммите, а файл обновился
Теперь авторизуемся на сервере с реквизитами пользователя от имени которого работа велась изначально и выполняем команду git pull origin master
Просматриваем файл password — видим, что изменения сделанные и закоммиченные другим пользователем сохранились
Работаем с репозиториями в Git
Одна из самых распространенных систем управления версиями – Git. Ее ядро добавляет в систему ряд консольных команд, предназначенных для управления репозиториями. В самих же репозиториях хранятся важные каталоги, конфигурационные файлы, журналы и прочие связанные элементы.
Далее я расскажу, как создать, клонировать и удалить эти репозитории.
Следующие инструкции предназначены для тех, кто уже установил Git на свой сервер. Если вы еще не сделали этого, используйте руководство с GitHub, которое поможет разобраться с выполнением поставленной задачи.
Создание Git-репозитория
Сначала рассмотрим создание репозитория. Представим, что у вас уже есть папка для хранения файлов, но она еще не находится под контролем Git.
Откройте «Командную строку» (Windows) или Терминал (Linux/macOS) и перейдите по пути данной папки.
В Linux выполните команду:
В macOS :
В Windows:
Остается только ввести нижеуказанную команду, чтобы завершить первый этап.
Теперь у вас есть Git-репозиторий со всеми необходимыми составляющими и отслеживаемыми файлами.
Клонирование существующего репозитория
При использовании упомянутой команды вы получаете клоны всех версий файлов, а значит, можете использовать любые из них, если что-то пойдет не так. Это же пригождается, когда требуется вернуть предыдущую версию проекта, что осуществимо благодаря файлам, помещенным под версионный контроль.
При использовании вышеуказанной команды репозиторий клонируется с текущим названием. Если же оно должно отличаться, используйте следующую вариацию команды:
Завершим этот раздел статьи описанием содержимого, которое появляется в консоли при выполнении команды. Данный вывод соответствует успешному клонированию:
Удаление локального Git-репозитория
Если с созданием и клонированием репозиториев все понятно, то как быть, когда папка с проектом уже существует, но в нее нужно поместить новые данные, удалив предыдущие, или когда Git-репозиторий на сервере больше не нужен. В таком случае осуществляется стандартное удаление.
В корне каталога с проектом необходимо избавиться от папки .git, о которой уже шла речь выше. Так вы удаляете только ту информацию, которая связана с Git, но сам проект остается. В Linux через Терминал вы должны перейти к каталогу с проектом и ввести следующую команду:
Еще один вариант – удаление .gitignore и .gitmodules в случае их наличия. Тогда команда меняет свой вид на:
Только что мы разобрались с основами создания, клонирования и удаления Git-репозитория. Удачи!