суббота, 6 июля 2013 г.

Цикл создания репозитория git

mkdir myrepo
cd myrepo
git config --global user.name "John Smith"
git config --global user.email "example@stanford.edu"
git init
# Initialized empty Git repository in /home/ubuntu/myrepo/.git/
git status
echo -e ’line1\nline2’ > file.txt
git status
git add file.txt
git status
git commit -m "Added first file"
git log
echo -e "line3" >> file.txt
git status
git diff file.txt
git add file.txt
git commit -m "Added a new line to the file."
git log
git log -p
git log -p --color


Интересная вещь, что хешки есть не только у комита и у каждого файла
myrepo$ git ls-tree 5c8c9efc99ad084af617ca38446a1d69ae38635d
100644 blob 83db48f84ec878fbfb30b46d16630e944e34f205 file.txt


И по этому хешки мы можем просмотреть из конкретного комита файл не перезаливая весь репозиторий
$ git cat-file -p 83db48f84ec878fbfb30b46d16630e944e34f205
line1
line2
line3

Теперь если мы хотим залить наш локальный репозиторий на удаленный, то мы должны определиться с гит-хостингом.
Например если мы остановились на гитхабе, то мы заходим к ним на сайт и создаем удаленный репозиторий, получаем на него там урл.
Теперь нам по этому урлу нужно добавить удаленный репозиторий на локальный сервер гит. У каждого ремоута есть имя, имя по-умолчанию origin, если мы явно не указываем на какой удаленный репозиторий мы хотим запушить данные, подразумевается origin.
Допустим мы решили залить наш новосозданный проект myrepo, заходим в него и делаем
$ git remote add origin git@github.com:startup-class/myrepo.git
$ git push -u origin master
Здесь мы явно указали ремоут и бранч которые так называются по-умолчанию, или они называются основными, но можно в таком случае и не указывать.

Но в этом конкретном случае, гитхаб не разрешить заливаться, потому что он хочет от вас ssh sha1 public ключ, чтобы быть уверенным что именно тот, кто зарегистрировал репозиторий или имеет к нему доступ, хочет на него что-то залить.

Поэтому 
cd $HOME
ssh-keygen -t  rsa -C "my@email.com"
cd .ssh/
cat id_rsa.pub
Результат копируем и вставляем в панель управления на гитхобе, регистрирую таким образом хост для работы с удаленным репозиторием.

Теперь чтобы проверить что у нас есть соединение делаем:
ssh -T git@github.com
Hi your_github_username! You are successfully authenticated, but GitHub does not provide shell access.

Все теперь снова
cd ~/myrepo
git push -u origin master # will work after Add Key

Комментариев нет:

Отправить комментарий