Установка git Windows

Содержание

Установка git в Windows (на этот раз подробно)

Установка git Windows

Судя по всему, многие из посетителей приходят на этот блог в поисках руководства по установке Git в Windows. И, что самое печальное, всё что они находят — куцая страничка со ссылкой на англоязычный скринкаст. Пришло время исправить это недоразумение

Источник: https://kuroikaze85.wordpress.com/2009/12/16/git-on-windows/

Простая установка сервера GIT на Windows

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

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

Нам предложили «временно» переехать на любой из серверов общего назначения.

А теперь внимание! Только мы одни во всей фирме работаем на Линуксе, а все остальные сидят исключительно на Windows и сервера у нас тоже под управлением серверных редакций ОС от Билла Гейтса.

И если перенос базы Redmine не вызывает особых вопросов, то задача поднять на сервере Windows сервер для Git меня сразу поставила в тупик. Но несколько часов потраченных на поиски дали мне простое работающее решение.

Изучение матчасти

Первым делом я обратился к документации по Git'у, где вычитал следующее:
Git умеет работать с четырьмя сетевыми протоколами для передачи данных: локальный, Secure Shell (SSH), Git и HTTP. Первый вариант я не стал рассматривать, так как он подразумевает наличие сетевой шары открытой для общего доступа. Допустим, что с помощью групповых политик домена можно обезопасить данные от случайного удаления продавцем-стажером.

Но как работать из дому? Ради нескольких «коммитов выходного дня» поднимать VPN? Читаем далее и видим: SSH — единственный из сетевых протоколов, предоставляющий доступ и на чтение, и на запись. Два других сетевых протокола (HTTP и Git) в большинстве случаев дают доступ только на чтение, поэтому даже если они вам доступны, вам всё равно понадобится SSH для записи.

Путь к конечной цели уже стал менее туманным: сначала требуется поставить сервер SSH, а далее установить одну из многочисленных сборок Git для Windows (официальную msysgit, Git Extensions, TortoiseGit, QGit и т.д.)  

Выбор сервера SSH для Windows

Воспользовавшись поисковиком по сети Internet, я сделал небольшую подборку текущих реализаций SSH под Windows. Не претендую на то, что смог найти все решения в этой области, но самые популярные точно не пропустил. Итак:

Cygwin.

В рамках проекта переноса функциональности Linux на Windows был портирован в том числе и OpenSSH. Библиотека проекта cygwin1.dll с реализацией SSH так же используются в большинстве других решений. Простую инструкцию с картинками по установке и настройке можно посмотреть тут.

А так же рекомендую к прочтению статью из журнала «Windows IT Pro» № 7 за 2001 год — SSH в Windows.

freeSSHd. Лидер среди упоминается на форумах. Характеризуется как легкий в использовании. Лицензия позволяет бесплатно использовать в коммерческих целях. Нашел инструкцию по установке и настройке на Win2008.

WInSSHD. Самое богатое по функциональности из увиденных мною реализаций. Это хорошее профессиональное решение для обеспечения безопасности. Но для моего гвоздя — это микроскоп. Если кого-то продукт заинтересовал, то у них есть 30-дневная ознакомительная полная версия и возможность бесплатного частного использования.

KpyM Telnet/SSH Server. Плохих отзывов не заметил. Но меня смущает, что их сайт не обновляется с 2009 года, а так же на официальном форуме как-то безжизненно. С другой стороны, если продукт бесплатный и выполняет свою работу, то нет смысла заниматься развитием. Понравилось наличие в их FAQ списка других решений для SSH под Windows. Рекомендую заглянуть.

Copssh. Продукт от норвежской компании ITeF!X, в котором они к windows-реализации OpenSSH добавили красивый GUI-интерфейс администратора и некие «best practices». Именно это решение, более всего рекомендуется в обсуждении поднятия сервера Git под Windows на StackOverflow.

 

Случайная находка

Собственно под впечатлением ответов на StackOverflow я уже расслабился и решил было пойти проторенной моими предшественниками дорожкой. Но при изучении сайта компании ITeF!X я обнаружил, что у них есть и более подходящий для моих целей продукт — gitwin. Это оказался тот самый требуемый мне сервер Git под Windows.

Я вначале не поверил глазам — если такой чудо продукт существует, то почему о нем до сих пор не трубят на каждом шагу. Ответ нашелся в новостях компании — как оказалось программный продукт только полмесяца назад (11 октября 2013 года) выложили в общий доступ. Точнее на днях выложили бесплатную для использования версию.

Платная существовала и раньше, но видимо не пользовалась особым спросом (с января 2012 года на официальном форуме компании всего две созданные темы в разделе gitwin).

Итак, что же собой представляет этот gitwin? В состав свободной версии входят:

  • Cygwin версии 1.7.25
  • OpenSSH версии 6.3
  • Git версии 1.8.4
  • Инсталятор от Itefix

На сайте целый раздел посвящен установке пакета. Кроме описания словами процесса «запуск инсталятора» -> «далее» -> «далее» -> «готово», представители компании не поленились записать все это еще на видео и выложили на . Не совсем понятно зачем это сделано и самое главное не понятно для кого?

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

 

Установка, настройка и тестирование сервера Git

Я установил на наш сервер gitwin редакции «free edition» и могу поделится только этим опытом.

1. Начинаем со скачивания инсталятора со странички продукта.

2. Запускаем инсталятор и нас спрашивают куда устанавливать продукт. Я оставил по-умолчанию в «C:\Program Files (x86)\ICW». Зачем может понадобится менять путь? Дело в том, что этот каталог станет корнем для линуксовых утилит и домашний каталог пользователя git тоже будет создан тут же «C:\Program Files (x86)\ICW\home\git\». Если есть предчувствие проблем с правами доступа, то можете поменять на менее проблемный для вас каталог. 3. В процессе установки выводятся сообщения о создании двух пользователе «SvcCOPSSH» и «git». Под первым пользователем будет работать служба «OpenSSHServer», а второй нужен собственно для обслуживания репозиториев. Пароли к этим пользователям можно узнать в конце процесса установки, если нажать на «Show details». Советую по правому щелчку скопировать вывод в буфер и сохранить на всякий случай. 3.1. Перепроверка состава пользователей показала, что инсталятор втихую создал еще одного пользователя — «sshd» с описанием «copSSH privilege separation user» и сам же отключил его. Не понятно и подозрительно… 4. Скорее всего из-за редакции «free edition» дальнейшие шаги отличались от описанных на сайте. Вместо консоли администрирования в меню Пуск/copssh поместили два пункта «01. Activate a user» и «02. Deactivate a user». Но суть процесса от этого не изменилась. Запускаем «01. Activate a user» и указываем пользователя для активации (в моем случае все тот же git), выбираем командную оболочку (выбор из bash, sftponly и false) и ставим опциональные галочки. Тут читаем внимательно: 4.1. Если нам нужна пара ключей, то оставляем включенную по-умолчанию «Create keys for public key authentication». При парольной авторизации можете снять… 4.2. Если у пользователя планируется использование его родного пользовательского каталога из C:\Users\ (или может у кого-то до сих пор C:\Documents and Settings\) тогда оставляем включенные по-умолчанию галочки «remove copssh home directory if it exists» и «Create link to user's real home directory». Я рискнул их снять и таким образом все репозитории у меня будут запрятаны глубоко в системном каталоге Program Files. 5. После активации пользователя и создания ключей можем протестировать всю систему на работоспособность. Выбираем в меню Пуск/copssh пункт «03. Start a Unix BASH Shell» и создаем пустой репозиторий. Я не стал блистать остроумием и повторил команду с официального сайта: $ git init —bare /home/git/repo-a
Initialized empty Git repository in /home/git/repo-a/ 6. Далее тестирование переехало на мой рабочий ноут. Я успешно склонировал пустой репозиторий, закинул в него несколько файлов и запушил назад. Проблем не возникло. Перешел в другой каталог и снова склонировал репозиторий — на этот раз он был уже не пустой и содержал мой коммит с файликами. Таким образом с моей рабочей станции различия между работой с репозиторием Git на предыдущем сервере Ubuntu и на новом сервере Windows замечено не было!  

Заключение

Удачно найденный gitwin оказался именно тем решением, которое я искал — запускается под Windows и создает иллюзию для пользователей, что они работают с полноценным удаленным репозиторием. Глюков пока не заметил. Но если обнаружу, то обязательно дополню данную статью. Надеюсь, что собранные материалы окажутся кому-нибудь полезными.

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

Ведь если бы я изначально зашел на StackOverflow и выполнил все по детальному пошаговому руководству от Тима Дэвиса, то не узнал бы о существовании более короткого пути, когда вся инфраструктура поднимается и настраивается буквально в десяток кликов мышкой. Успехов!  

Установка и использование системы контроля версий Git в Windows

Установка git Windows

В инструкции описан процесс загрузки, установки системы контроля версий Git на сервера с операционной системой Windows и подключения к удаленному репозиторию GitHub.

Что это такое?

Git — одна из самых популярных систем контроля версий, используется разработчиками, для контроля изменений в своих разработках и проектах. Изначально создан для использования на Linux-подобных операционных системах, но позднее, из-за удобства и популярности для Windows был написан специальный эмулятор, поддерживающий функционал Git’a.

   

Загрузка и установка

Загрузите установщик с официального сайта. Загрузка начнется автоматически.

   

Перейдите в папку “Downloads” и запустите на исполнение загруженный файл.

Читайте также  Что делать после установки Windows 10?

   

Укажите путь до каталога в который будет установлен Git.

   

Чтобы на рабочем столе была иконка Git, на следующем шаге отметьте галочкой “On the Desktop”.

   

Введите имя директории, которая будет создана в Start Menu. При необходимости можно изменить путь с помощью кнопки Browse.

   

Выберете способ использования из командной строки:

  • Use Git from Git Bash only — использование только из командной строки Bash.
  • Use Git from the Windows Command Prompt — использование командной строки Bash, а также минимальный набор команд Git из консоли Windows.
  • Use Git and optional Unix tools from the Windows Command Prompt — использование Git и утилит Unix из командной строки Windows, в этом случае будут перезаписаны некоторые утилиты Windows, например find и sort.

   

Выберете библиотку, которая будет использована при подключении по протоколу HTTPS:

  • OpenSSL — сертификаты сервера будут проверяться с использованием Unix-файла ca-bundle.crt.
  • Windows Secure Channel — сертификаты сервера будут проверяться с использованием стандартной библиотеки Windows.

   

Убедитесь, что вы выбрали способ обработки окончания строк «Checkout Windows-style, commit Unix-style line endings». Это значение гарантирует, что Git преобразует LF в CRLF при проверке текстовых файлов. При выполнении текстовых файлов CRLF также преобразуется в LF. Это мера совместимости для защиты новых строк в текстовых файлах, что позволяет легко работать с текстовыми файлами в Windows и на платформах Unix.

Примечание: LF и CRLF — управляющий символ для переноса строки в Unix и Windows соответственно.

   

Далее необходимо сконфигурировать используемый терминал:

  • MinTTY — терминал Unix;
  • Windows — стандартный терминал Windows.

   

Отметьте галочками нужные вам дополнительные функции:

  • File system caching — кэширование файловой системы.
  • Git Credential Manager — включить менеджер учетных данных.
  • Symbolic links — разрешить символьные ссылки.

Нажмите кнопку Install.

   

Начнется процесс установки.

   

Подключение к удаленному репозиторию

Откройте каталог с файлами, которые необходимо отслеживать в системе контроля версий и выложить на GitHub. В пустую часть каталога нажмите правой кнопкой мыши и выберете Git Bash Here.

   

Перед вами откроется приглашение командной строки в зависимости от настроек.

   

Для настройки необходимо указать ваше имя и электронную почту:

git config —global user.email «you@example.com»
git config —global user.name «Ваше имя»

Для того чтобы начать отслеживать содержимое папки в системе, выполните команды:

git init
git add

Выполните первый коммит:

git commit -m «Init»

Чтобы добавить изменения, например, на github выполните действие:

git remote add origin https://github.com/пользователь/репозиторий.git
git push -u origin master

На GitLab:

git remote add gitlab https://server/namespace/project.git
git push -u gitlab master

Перед вами откроется окно входа (консольное или стандартное окно Windows). В качестве пользователя укажите ваш логин на GitHub, репозиторий — название существующего репозитория.

     

Аутентификация по SSH-ключам

Выполнить подключение к удаленному репозиторию можно по протоколу SSH с помощью приватного и публичного ключа. Чтобы сгенерировать пару, выполните команду в консоли GitBash, указав ваш реальный почтовый адрес:

ssh-keygen -t rsa -b 4096 -C «email@example.com»

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

   

Запустите ssh-агент:

eval $(ssh-agent -s)

Вы увидите идентификатор процесса.

Добавьте ключи к ssh-агенту:

ssh-add ~/.ssh/id_rsa

Теперь нужно добавить ключ к удаленному серверу Git. Заходим на сервер Git и в настройках добавляем SSH-ключ.

Например, на сервере GitHub это можно сделать следующим образом: откройте Settings -> SSH and GPG keys,нажмите New SSH key. В поле Title введите понятное название, в поле Key вставьте публичный ключ (содержимое файла ~/.ssh/id_rsa.pub). Нажмите Add SSH key.

   

В результате у вас появится новый ключ.

   

Для проверки настроек выполните команду:

ssh -T git@

Например:

ssh -T git@github.com

Если все настроено верно, то вы увидите следующее сообщение.

   

Источник: https://1cloud.ru/help/windows/sistemy-kontrolya-versij-git-v-windows

Git для начинающих. Часть 2. Установка Git

Установка git Windows

Для того, чтобы начать работать с системой контроля версий Git ее необходимо предварительно установить. Рассмотрим варианты установки этой VCS под MS Windows и Linux.

Установка Git под Windows

Для установки Git под Windows необходимо предварительно скачать дистрибутив. Для этого перейдите на страницу https://git-scm.com/

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

Для того чтобы скачать Git нужно нажать на кнопку Downloads for Windows, расположенную в правой части окна.

Процесс дальнейшей установки Git выглядит так.

4. Указать способ использования Git

В этом окне доступны три возможных варианта:

  • Use Git from Git Bash only

Переменная PATH не модифицируется и работа с Git возможна только через специализированную оболочку, которая называется Git Bash.

  • Use Git from the Windows Command Prompt

В этом случае происходит минимальная модификация переменной окружения PATH, которая позволит работать с Git через командную стоку Windows. Работа через Git Bash также возможна.

  • Use Git and optional Unix tools from the Windows Command Prompt

В переменную PATH вносится значительное количество модификаций, которые позволят, в рамках командной строки Windows, использовать как Git так и утилиты Unix, которые поставляются вместе с дистрибутивом Git.

Наша рекомендация: опция Use Git from the Windows Command Prompt.

5. Настройка правил окончания строки

Существует два варианта формирования конца строки в текстовых файлах – это Windows стиль и Unix стиль. Данное окно позволяет выбрать одну из опций, определяющих правило формирования окончания строки:

  • Checkout Windows-style, commit Unix-style line endings

Checkout (операция извлечения документа из хранилища и создания рабочей копии) производится в Windows стиле, а commit (операция отправки изменений в репозиторий) в Unix стиле.

  • Checkout as-is, commit Unix-style line endigns

Checkout производится в том формате, в котором данные хранятся в репозитории, а commit осуществляется в Unix стиле.

  • Checkout as-is, commit as-is

Checkout и commit производятся без дополительных преобразований.

Наша рекомендация: опция Checkout Windows-style, commit Unix-style line endings.

6. Выбор эмулятора терминала, который будет использован с Git Bash

Возможен выбор из двух вариантов:

  • Use MinTTY (the defaul terminal of MSYS2)

Git Bash будет использовать в качестве эмулятора терминала MinTTY.

  • Use Windows’ default console window

Git будет использовать Windows консоль (“cmd.exe”).

Наша рекомендация: опция Use MinTTY (the defaul terminal of MSYS2).

7. Настройка дополнительных параметров

Доступны следующие параметры:

  • Enable file system caching

Включение операции кэширования при работе с файлами. Эта опция позволит значительно повысить производительность.

  • Enable Git Credential Manager

Предоставляет возможность работы с защищенным хранилищем.

Активирует работу с символьными ссылками.

Наша рекомендация: опции Enable file system caching и Enable Git Credential Manager.

8. Завершение установки

После нажатия на кнопку Install будет произведена установка Git на Windows, по окончании установки пользователь получит соответствующее сообщение.

Установка Git под Linux

Для установки Git под Linux, также необходимо зайти на сайт  https://git-scm.com/ и перейти в раздел Downloads. В зависимости от используемой вами версии операционной системы Linux необходимо выбрать тот или иной способ установки Git.

Debian/Ubuntu

> apt-get install git

Fedora
(Fedora 21)

> yum install git

(Fedora 22)

> dnf install git

Gentoo

> emerge —ask —verbose dev-vcs/git

Arch Linux

> pacman -S git

openSUSE

> zypper install git

Mageia

> urpmi git

FreeBSD

> pkg install git

Solaris 9/10/11 (OpenCSW)

> pkgutil -i git

Solaris 11 Express

> pkg install developer/versioning/git

OpenBSD

> pkg_add git

Alpine

> apk add git

Рекомендуем классный курс по git от GeekBrains, перейдите по ссылке и найдите в разделе “Курсы” курс “Git. Быстрый старт”. Это бесплатный видеокурс, зарегистрируйтесь и начинайте получать новые знания.

>

Источник: https://devpractice.ru/git-for-beginners-part-2-install-git/

Git за полчаса: руководство для начинающих

Установка git Windows

В последние годы популярность git демонстрирует взрывной рост. Эта система контроля версий используется различными проектами с открытым исходным кодом.

Новичков часто пугает большое количество замысловатых команд и сложных аргументов. Но для начала все они и не нужны. Можно начать с изучения наиболее часто используемых команд, и после этого постепенно расширять свои знания. Именно так мы и поступим в этой статье. Поехали!

Основы

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

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

Вы, возможно, о них слышали: SVN, Mercurial, Perforce, CVS, Bitkeeper и другие.

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

Установка

Установить git на свою машину очень просто:

  • Linux — нужно просто открыть терминал и установить приложение при помощи пакетного менеджера вашего дистрибутива. Для Ubuntu команда будет выглядеть следующим образом:
  • Windows — мы рекомендуем git for windows, так как он содержит и клиент с графическим интерфейсом, и эмулятор bash.
  • OS X — проще всего воспользоваться homebrew. После его установки запустите в терминале:

Если вы новичок, клиент с графическим интерфейсом(например GitHub Desktop и Sourcetree) будет полезен, но, тем не менее, знать команды очень важно.

Настройка

Итак, мы установили git, теперь нужно добавить немного настроек. Есть довольно много опций, с которыми можно играть, но мы настроим самые важные: наше имя пользователя и адрес электронной почты. Откройте терминал и запустите команды:

git config —global user.name «My Name» git config —global user.email myEmail@example.com

git config —global user.name «My Name»git config —global user.email myEmail@example.com

Теперь каждое наше действие будет отмечено именем и почтой. Таким образом, пользователи всегда будут в курсе, кто отвечает за какие изменения — это вносит порядок.

Создание нового репозитория

Как мы отметили ранее, git хранит свои файлы и историю прямо в папке проекта. Чтобы создать новый репозиторий, нам нужно открыть терминал, зайти в папку нашего проекта и выполнить команду init. Это включит приложение в этой конкретной папке и создаст скрытую директорию .git, где будет храниться история репозитория и настройки.
Создайте на рабочем столе папку под названием git_exercise. Для этого в окне терминала введите:

$ mkdir Desktop/git_exercise/ $ cd Desktop/git_exercise/ $ git init

$ mkdir Desktop/git_exercise/$ cd Desktop/git_exercise/

Командная строка должна вернуть что-то вроде:

Initialized empty Git repository in /home/user/Desktop/git_exercise/.git/

Initialized empty Git repository in /home/user/Desktop/git_exercise/.git/

Это значит, что наш репозиторий был успешно создан, но пока что пуст. Теперь создайте текстовый файл под названием hello.txt и сохраните его в директории git_exercise.

Определение состояния

status — это еще одна важнейшая команда, которая показывает информацию о текущем состоянии репозитория: актуальна ли информация на нём, нет ли чего-то нового, что поменялось, и так далее. Запуск git status на нашем свежесозданном репозитории должен выдать:

$ git status On branch master Initial commit Untracked files: (use «git add …» to include in what will be committed) hello.txt

(use «git add …» to include in what will be committed)

Сообщение говорит о том, что файл hello.txt неотслеживаемый. Это значит, что файл новый и система еще не знает, нужно ли следить за изменениями в файле или его можно просто игнорировать. Для того, чтобы начать отслеживать новый файл, нужно его специальным образом объявить.

Читайте также  Ошибка 0х80070057 при установке Windows 7

Подготовка файлов

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

Если нам нужно добавить все, что находится в директории, мы можем использовать

Проверим статус снова, на этот раз мы должны получить другой ответ:

$ git status On branch master Initial commit Changes to be committed: (use «git rm —cached …» to unstage) new file: hello.txt

(use «git rm —cached …» to unstage)

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

Коммит(фиксация изменений)

Коммит представляет собой состояние репозитория в определенный момент времени. Это похоже на снапшот, к которому мы можем вернуться и увидеть состояние объектов на определенный момент времени.
Чтобы зафиксировать изменения, нам нужно хотя бы одно изменение в области подготовки (мы только что создали его при помощи git add), после которого мы может коммитить:

$ git commit -m «Initial commit.»

$ git commit -m «Initial commit.»

Эта команда создаст новый коммит со всеми изменениями из области подготовки (добавление файла hello.txt). Ключ -m и сообщение «Initial commit.» — это созданное пользователем описание всех изменений, включенных в коммит. Считается хорошей практикой делать коммиты часто и всегда писать содержательные комментарии.

Удаленные репозитории

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

1. Подключение к удаленному репозиторию

Чтобы загрузить что-нибудь в удаленный репозиторий, сначала нужно к нему подключиться. В нашем руководстве мы будем использовать адрес https://github.com/tutorialzine/awesome-project, но вам посоветуем попробовать создать свой репозиторий в GitHub, BitBucket или любом другом сервисе.

Регистрация и установка может занять время, но все подобные сервисы предоставляют хорошую документацию.
Чтобы связать наш локальный репозиторий с репозиторием на GitHub, выполним следующую команду в терминале. Обратите внимание, что нужно обязательно изменить URI репозитория на свой.

# This is only an example. Replace the URI with your own repository address. $ git remote add origin https://github.com/tutorialzine/awesome-project.git

# This is only an example. Replace the URI with your own repository address.$ git remote add origin https://github.com/tutorialzine/awesome-project.git

Проект может иметь несколько удаленных репозиториев одновременно. Чтобы их различать, мы дадим им разные имена. Обычно главный репозиторий называется origin.

2. Отправка изменений на сервер

Сейчас самое время переслать наш локальный коммит на сервер. Этот процесс происходит каждый раз, когда мы хотим обновить данные в удаленном репозитории.
Команда, предназначенная для этого — push. Она принимает два параметра: имя удаленного репозитория (мы назвали наш origin) и ветку, в которую необходимо внести изменения (master — это ветка по умолчанию для всех репозиториев).

$ git push origin master Counting objects: 3, done. Writing objects: 100% (3/3), 212 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To https://github.com/tutorialzine/awesome-project.git * [new branch] master -> master

Counting objects: 3, done.Writing objects: 100% (3/3), 212 bytes | 0 bytes/s, done.Total 3 (delta 0), reused 0 (delta 0)To https://github.com/tutorialzine/awesome-project.git* [new branch] master -> master

В зависимости от сервиса, который вы используете, вам может потребоваться аутентифицироваться, чтобы изменения отправились. Если все сделано правильно, то когда вы посмотрите в удаленный репозиторий при помощи браузера, вы увидете файл hello.txt

3. Клонирование репозитория

Сейчас другие пользователи GitHub могут просматривать ваш репозиторий. Они могут скачать из него данные и получить полностью работоспособную копию вашего проекта при помощи команды clone.

$ git clone https://github.com/tutorialzine/awesome-project.git

$ git clone https://github.com/tutorialzine/awesome-project.git

Новый локальный репозиторий создается автоматически с GitHub в качестве удаленного репозитория.

4. Запрос изменений с сервера

Если вы сделали изменения в вашем репозитории, другие пользователи могут скачать изменения при помощи команды pull.

$ git pull origin master From https://github.com/tutorialzine/awesome-project * branch master -> FETCH_HEAD Already up-to-date.

From https://github.com/tutorialzine/awesome-project* branch master -> FETCH_HEAD

Так как новых коммитов с тех пор, как мы склонировали себе проект, не было, никаких изменений доступных для скачивания нет.

Ветвление

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

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

1. Создание новой ветки

Основная ветка в каждом репозитории называется master. Чтобы создать еще одну ветку, используем команду branch

$ git branch amazing_new_feature

$ git branch amazing_new_feature

Это создаст новую ветку, пока что точную копию ветки master.

2. Переключение между ветками

Сейчас, если мы запустим branch, мы увидим две доступные опции:

$ git branch amazing_new_feature * master

master — это активная ветка, она помечена звездочкой. Но мы хотим работать с нашей “новой потрясающей фичей”, так что нам понадобится переключиться на другую ветку. Для этого воспользуемся командой checkout, она принимает один параметр — имя ветки, на которую необходимо переключиться.

$ git checkout amazing_new_feature

$ git checkout amazing_new_feature

3. Слияние веток

Наша “потрясающая новая фича” будет еще одним текстовым файлом под названием feature.txt. Мы создадим его, добавим и закоммитим:

$ git add feature.txt $ git commit -m «New feature complete.”

$ git commit -m «New feature complete.”

Изменения завершены, теперь мы можем переключиться обратно на ветку master.

Теперь, если мы откроем наш проект в файловом менеджере, мы не увидим файла feature.txt, потому что мы переключились обратно на ветку master, в которой такого файла не существует. Чтобы он появился, нужно воспользоваться merge для объединения веток (применения изменений из ветки amazing_new_feature к основной версии проекта).

$ git merge amazing_new_feature

$ git merge amazing_new_feature

Теперь ветка master актуальна. Ветка amazing_new_feature больше не нужна, и ее можно удалить.

$ git branch -d awesome_new_feature

$ git branch -d awesome_new_feature

Дополнительно

В последней части этого руководства мы расскажем о некоторых дополнительных трюках, которые могут вам помочь.

1. Отслеживание изменений, сделанных в коммитах

У каждого коммита есть свой уникальный идентификатор в виде строки цифр и букв. Чтобы просмотреть список всех коммитов и их идентификаторов, можно использовать команду log:

$ git log commit ba25c0ff30e1b2f0259157b42b9f8f5d174d80d7 Tutorialzine Date: Mon May 30 17:15:28 2016 +0300 New feature complete commit b10cc1238e355c02a044ef9f9860811ff605c9b4 Tutorialzine Date: Mon May 30 16:30:04 2016 +0300 Added content to hello.txt commit 09bd8cc171d7084e78e4d118a2346b7487dca059 Tutorialzine Date: Sat May 28 17:52:14 2016 +0300 Initial commit

commit ba25c0ff30e1b2f0259157b42b9f8f5d174d80d7Date: Mon May 30 17:15:28 2016 +0300commit b10cc1238e355c02a044ef9f9860811ff605c9b4Date: Mon May 30 16:30:04 2016 +0300Added content to hello.txtcommit 09bd8cc171d7084e78e4d118a2346b7487dca059Date: Sat May 28 17:52:14 2016 +0300

Источник: https://proglib.io/p/git-for-half-an-hour/

How to install and use Git on Windows

Установка git Windows

Updated: 01/31/2019 by Computer Hope

By default, Git is installed on Linux and macOS computers as a command line option. However, Microsoft Windows does not include a Git command. Below are the steps on how to install and use Git and GitHub on Microsoft Windows.

  1. Open the Git website.
  2. Click the Download link to download Git. The download should automatically start.
  3. Once downloaded, start the installation from the browser or the download folder.
  4. In the Select Components window, leave all default options checked and check any other additional components you want installed.
  5. Next, in the Choosing the default editor, used by Git unless you're familiar with Vim we highly recommend using a text editor you're comfortable using. If Notepad++ is installed, we suggest using it as your editor. If Notepad++ is not installed, you can cancel the install and install Notepad++ and then restart the GitHub install.
  6. Next, in the Adjusting your PATH environment, we recommend keeping the default Use Git from the command line and also from 3rd-party software as shown below. This option will allow you to use Git from either Git Bash or the Windows Command Prompt.
  1. Next in the, we recommend leaving the default selected as Use OpenSSH.
  2. Next, in Choosing HTTPS transport backend, leave the default Use the OpenSSL library selected.
  3. In the Configuring the line ending conversions, select Checkout Windows-style, commit Unix-style line endings unless you need other line endings for your work.
  4. In the Configuring the terminal emulator to use with Git Bash window, select Use MinTTY (the default terminal of MSYS2).
  5. On the Configuring extra options window, leave the default options checked unless you need symbolic links.
  6. Click the Install button
  7. Once completed, you can check the option to Launch Git Bash if you want to open a Bash command line or, if you selected the Windows command line, run Git from the Windows command line.

Tip

We highly recommend you use Git from the command line and not use a GUI interface. You'll only be using the command line to interface with Git to manage the files. Editing can still be done through a text editor or IDE of your choice. If you're new to the command line, you can find help with navigating the Windows command line and Linux (Bash) through the links below.

  • How to use the Windows command line (DOS).
  • Linux shell tutorial.

Configuring and connecting to a remote repository

In our example, we will be using GitHub as a storage for our remote repository. Below are the steps on how you can connect to a GitHub repository. If you are new to GitHub, you can follow our steps on how to create a new GitHub repository if you need additional help.

  1. From the command line, move to the directory you want to contain your Git repository.
  2. Type the following command to configure your Git username, where will be your GitHub username.

git config —global user.name «»

  1. After entering the above command, you should be returned to the command prompt. Next, enter your e-mail address by typing the following command, where is your e-mail address.

git config —global user.email «»

  1. Once the above steps have been completed, you'll be ready to connect to a remote repository. To find the repository address, go to a repository on GitHub and click the Clone or download repository link to get the address. For example, we've created a repository called «example» that can be found at the https://github.com/Computerhope/example.git address. Copy the address to your clipboard.
  2. Once copied go back to the command line and type the following command, where is the address you copied. To paste that address into the command line right-click in the command line window and click paste.

git clone

  1. Once the Git repository is created, you'll have a new directory in your current directory with the name of the Git repository.
  2. Once the Git remote repository is cloned to your local repository, you should have a new folder in the current directory with the name of the Git repository. For example, in our «example» Git we would have a new directory called «example». Use the cd command to change into the new directory.
  3. Once in the new directory, type the following command to list the remote repositories.
Читайте также  Как запустить Linux с флешки без установки?

git remote

  1. If successful, you should see «origin» that is the name of your master Git branch. To see the aliases (URL or path), type the following command.

git remote -v

Running each of the above commands give you an output similar to what is shown in our example below.

Now that you've connected to a remote repository on GitHub you're ready to start working on the files and pushing and pulling files as you update the files.

Working in your local repository and pushing files

After following the above steps and cloning a remote repository, you can work on the files as you normally would. You can create new files or edit existing files from the command line or your favorite text editor. Below we will go through the steps in creating a new file and pushing that new file as well as editing an existing file and pushing the update.

Creating a new file and pushing to remote repository

  1. Create a new file in the Git directory by typing the following command from either the Bash or Windows command line. The following command will open and create a file called example.txt in Notepad. In Git Bash, you could also use the touch command to create a blank new file and then type «start » to open the file in your favorite text editor.

start notepad example.txt

  1. In the text editor, enter some text into the file and save and exit the file.

  2. Back at the command line type the following command to get the current status of your branch and untracked files.

git status

  1. Git displays a window similar to the example shown below, showing that the file we created is new and untracked by Git.
  1. As mentioned in the notes and seen in the picture, we'll now want to add this file to Git to be tracked by typing the following command. If your file is not named «example.

    txt,» you'd want to change the text to the name of your file.

git add example.txt

  1. After entering the above command, the file will be added as a new file also known as staging. Typing git status again shows you in green that the file is a new file that is ready to be committed.
  2. Next, type the following command to commit the changes made in the local workspace to the local repository.

    In the example below, our notes «First example» should be notes that will make sense to you and anyone else who may be working with you on your project.

git commit -m «First example»Note

You can also type git commit with no additional tags or options. However, when doing this it will open a vim editor that can be difficult for those not familiar with the vim to use.

If you type this command press «i» to enter insert mode and type the notes for the commit on the first line, press Esc, and then type «:wq» to save, exit, and commit. We suggest using the above command because it's easier for more people to use.

  1. Finally, now that changes have been moved from your workspace into your local repository it is ready to be pushed to the remote repository. Type the following command to push all changes to the remote repository.

Tip

If you want to follow the progress, you can type git status again to see the current status. You can also type git log to see a log of changes.

git pushNote

You'll be asked for your GitHub username and password if your computer has not logged into Git from the command line.

Once the file is pushed, it will appear in your GitHub remote repository and will also be available to everyone else who're working with the same repository.

Modifying a file and pushing to remote repository

  1. Edit and modify one or more files in your Git.
  2. Type git status to get see the status of all the files that have not yet been committed from the workspace to the local repository.
  3. Type the following command to add all files.

    The single period indicates that you want all files to be added to the local repository. Some people may also use git add -A to add all.

Tip

You can also use wildcards instead of a period. For example, if you wanted to add all text files you could type *.

txt instead of a single period to only add text files.

git add .

  1. Once the files have been added, type the following command to commit. Change the notes to apply to your commit.

git commit -m «Second update»

  1. Finally, type git push to push the commit to the remote repository.

Tip

If you're working with a lot of other people, we'd recommend that you pull (explained below) before committing. If your local repository is not the same as the remote repository (excluding your new changes), the commit will fail. For example, if someone has added new files to the remote repository while you've been working and you try commiting it will fail until you pull.

Pulling or fetching updates from the remote repository

If it's been awhile since you've committed any work, perform the git pull command to get the latest updates from the remote repository and merge them into your local repository. By pulling all of the updates from a repository before commiting, you can make sure your local repository and the remote repository are the same to help prevent merge conflicts.

To get all changes without merging, run the git fetch command to grab all of the latest updates from the remote repository without merging any of the new changes.

How to deal with a Git merge conflict

When multiple people are working with the same files, you're going to encounter merge conflicts. When a conflict occurs, Git will modify your local files and it is up to you to manually fix the files with the conflicts.

Tip

Use the git status command to see the status and merge conflict information.

Open the file with the conflict to start correcting the errors. In the example file below, we had a text file with one line of text and in the local repository we added the text «update1» to the file. However, during the same time, the remote repository file was modified and added «update2» to the file on the same line. Git marks conflicts with «>< hash >» to represent the end of the conflict.

Another file that is uploaded in-between pulls. > 62ee0eeba2e5b94d10574c1a6a68216e9b392e4c

To resolve this merge conflict, we would need to decide what text we wanted to keep, update, or remove. In this example, we want to keep «update1» and «update2» in the order they're listed so we would only need to remove the Git markings to make the file resemble the following example.

Another file that is uploaded in-between pulls. update1 update2Note

If you're working with a big file, it's a good idea to search the file for «HEAD» because it is possible that there may be more than one conflict.

Once the changes are made in the file, we could save the file and then perform the following git commands to update the fixes.

git add .git commit -m «Fixed the merge conflict»git push origin master

The example given in this merge conflict is a very basic example. When dealing with a file that has more than a few lines of text or has big sections of code conflicting dealing with a merge conflict can get a lot more confusing. To make it easier to deal with merge conflicts, you can use the command git mergetool to use a merge tool, such as WinMerge or another popular merge tool.

Creating a Git branch

Creating a branch allows you to create a duplicate of the master (trunk) and make several updates without affecting the master. For example, if you were developing a program and needed to work on fixing a bug that could take weeks or months to fix, you could create a branch of the master to work on fixes. Once you've fixed the bug, you could merge your branch back into the master.

To create a branch in your local repository, follow the steps below.

  1. In the Git master directory, type the following command, where «» is where you would put the name of the new branch name. For example, we could call the branch «examplebranch».

git branch

  1. Next, type the following command to switch to the branch.

git checkout

  1. After entering the above command, the prompt (in Git Bash) will change from «master» to the name of the branch as an indication that you're working in a branch and not the master.
  2. From this point, you can continue to use Git and modify the files how you have in the past.
  3. To see all available branches, you can use the git branch command. For example, typing git branch displays your local repository branches. Typing git branch -a displays all local and remote repositories.
  4. If you need to push the branch to the remote repository, you can run the following command.

git push —set-upstream origin

  1. Finally, if you need to switch back to the master branch, you can type the following command.

git checkout master

How to merge a branch back into the master

After you've completed your work in a branch, you'll want to merge it back into the master or another branch by following the steps below.

  1. Move into the branch you want to merge into. For example, if you wanted to merge back into the master, type the following command.

git checkout master

  1. Once in the master, type the following command to merge the branch.

git merge

  1. Once the merge is performed, add the files.
  2. Next, commit the changes.
  3. Once merged and committed, push the merge by typing the following command. If you get conflicts during the merge, see our how to deal with merge conflicts section.

git push

How to delete a local and remote branch

If after merging a branch you no longer want to keep the local or remote branch, you can perform the following commands.

To delete the local branch, type the following command.

git branch -d

To delete the remote branch, type the following command.

git push origin —delete

Additional information

Источник: https://www.computerhope.com/issues/ch001927.htm