GitHub это очередная гиковская придумка позволяющая делиться исходными кодами своих программ. проект GitHub взял за основу распределенную систему контроля версий написанную Линусом и сделали хостинг исходных кодов: размещение своего кода в отрытом доступе – бесплатно, закрытый репозитарий – за деньги.
ни для кого ни секрет, что программы с открытым исходным кодом остаются основным двигателем развития информационных технологий, с появлением GitHub совместное владение open-source проектами стало еще проще.
Одно из преимуществ open-source проектов обязано одному из «Законов Линуса»: «При достаточном количестве глаз все ошибки лежат на поверхности». Глубокой ошибкой называется та, которую трудно найти. Однако, если достаточно много людей ищет ошибки, то все они выходят на поверхность.
Как опубликовать свой проект на GitHub
- На https://github.com создаем свой новый бесплатный аккаунт https://github.com/YourAccountName/
- Устанавливаем Git на локальную машину:
sudo apt-get install git
- Устанавливаем глобальные переменные под которыми будут происходить все изменения
git config --global user.name
"John Smith"
git config --global user.email john.smith@example.com - Проверяем, что переменные Гита установились:
git config --list
- Создаем директорию MyNewGitProject своего нового проекта с файлами которые мы хотим выложить на GitHub. в принципе это могут быть любые файлы, но распространенный случай – исходные тексты программ. Переходим в директорию MyNewGitProject
- Создаем файл README.md (распространенная практика на GitHub)
echo "# MyNewGitProject" >> README.md
- Инициируем наш Git проект,
git init
- в MyNewGitProject появляется поддиректория .git
- Добавляем файлы которые будут отслеживаться Git-ом:
git add README.md
или “добавить все”
git add .
- Добавляем новую версию в репозитарий с комментарием “first commit”
- Редактируем файлы, добавляем файлы в очередь на комит (стэйджинг)
- git add .
-
git commit -m "first commit"
- Добавляем новую версию в удаленный репозиторий
git remote add origin https://github.com/YourAccountName/MyNewGitProject.git
- Синхронизируем все с удавленным репозиторием
git push -u origin master
Теперь ваш проект доступен в общем доступе на GitHub
- “Достать” проект из GitHub-а:
git clone https://github.com/YourAccountName/MyNewGitProject.git
cd MyNewGitProject
mvn install
-
Запустить “мавенизированный” проект из GitHub:
java -cp target/MyNewGitProject-1.0-SNAPSHOT.jar com.anorange.App
- To run tests in ‘MyNewGitProject’ directory type:
mvn test
Некоторые полезные команды Git
-
git add . - добавить все в репозитарий
-
git clean -fd - !!удалить все файлы!! и директории из репозитария и из проекта!
-
git rm file1.txt file2.txt- удалить один файл из репозитариз
-
git rm -r --cached folder - удалить директорию из Git
-
git commit -m "remove file1.txt" - "закомитить" избранне (staged, git add) файлы в репозитарий
-
git commit -a -m "remove file1.txt" - "закомитить" ВСЕ измененные файлы в репозитарий
-
git status - проверить статус
-
git diff - что изменилось по файлам
-
git log --stat - стстистика изменений
-
git log --pretty
=
oneline - список изменений -
git log --pretty
=
format:"%h - %an, %ar : %s" - "красивый"
список изменений -
git remote -v - показать сконфигурированные репозитарии
-
git remote add remoteRepoName https://github.com/johnsmith/orange_repo - добавить удаленный репозитарий
-
git fetch remoteRepoName - вытащить файлики из удаленного репозитария
- git pull – вытащить файлики и смерджить
-
git push origin master - запихать файлики в удаленный репозитарий
-
git remote show origin - показать, что твориться на удаленном репозитарии
- git tag – показать используемые тэги
-
git tag -a v1.4 -m
"my version 1.4" - добавить тэг "Моя версия 1.4"
-
git show tagName - показать, что было закомичено puпод этим тэгом
git push origin [tagname] - закинуть тэго на удаленный сервер
-
git branch testing - создаем новую ветку проекта, без перехода в эту новую ветку
-
git checkout testing - переходим в новую ветку, а там можно колбаситься как обычно
-
git branch iss53 + git checkout iss53 = git checkout -b iss53
-
git checkout master - возвращаемся в "домашнюю" ветку, там будут все старые файлики
- в
- в
Про Git без фигни: http://rogerdudler.github.io/git-guide/
* * *