У музыкантов на тонущем Титанике был четкий план, и какое то время все шло по плану:) так что мне нужно сделать что бы поднять свой уровень? как говорил доцент учить от сих до сих. Цель на бесплатном хостинге типа heroku или каком то еще реализовать приложение телефонный справочник. обязательно использовать в разработке git, как нибудь в демонстрационных целях привязать туда json, разобрать пример sql иньекций на руби, они вообще возможны и межсайтовый скриптинг(вообще еще 10 лет назад после универа в самой первой самописной админке для чего то там я не сделал подобную проверку и получил волшебный пен..ель от начальства)? сейчас поздний вечер 9 апреля приступаем:) 

1)Изучаем https://ru.hexlet.io/courses/intro_to_git  (изучил до 4 пункта) инициализировать репозиторий git init

Из полезного git commit -m "cooments" в виндовс 7 комментарии пишем в двойных кавычках(2.25.1.windows.1)

если просто написать  git commit для новичка начнется какая то дичь:) откроется редактор, в котором нужно написать комментарий(знак # закомментирует ваш комментарий в комментарии и ничего не получиться, так что или все удалите или начинайте с новой строчи). для выхода нажать ESC и ввести команду :wq 

когда введете git log -p и посмотрите результат для выхода нажмите "q"

 

2)Несколько команд которые я забыл на следующий день в мою записную книжку:

2.1)Очистить экран в cmd => cls

2.2)Создать файл в cmd  copy con myfile.txt  далее вводим содержимое нашего тестового файла, нажимает Enter, ctrl +Z и опять Enter. 

2.3)git add имя файла(подготовка файла к комиту), git commit -m "comment"(комит с каментом), git log(просто логи с комментариями), git log -p(что именно изменили), git diff(разница между файлом и его версией в гите)  

 

3)Вот и дошли до отката к прежней версии:)

3.1)Если удалил файл и в git log -p мы посмотрели 5 символов хеша то можем восстановить нужную нам версию файл такой командой: git checkout cc45a  5.txt 

3.2)В случае удаления файла из git прекрасной командой git rm filename.txt(мы подумали что не нужно отслеживать данный файл) делаем: 

git reset HEAD а затем git checkout HEAD filename.txt , но это работает только до того как мы выполним commit , так что будьте осторожнее:)

3.3)Так как это моя записная книжка добавлю что если мы вополнили git add filename То отменить git reset filename.

 

4)То что пойдет дальше выделю отдельным пунктом.

4.1)Создать новую ветку git branch vetka2, посмотреть какая ветка активна да и все ветки git branch переключиться git checkout vetka2

4.2)Воу воу воу полегче, то что было дальше опишу так. создал файл в ветке vetka2, выполнил команду add и commit переключаюсь на мастер а его там нет!!! переключаюсь в vetka2 вношу изменения в файл, команда add и commit переключение в мастер открываю этот файл а изменений там нет.  можно сказать что только сейчас я добрался до сути. ну продолжим дальше.

4.3)Что бы слить изменения из двух веток в одну нужно зайти в ветку куда мы будем все сливать и выполнить команду git merge ветка_от_куда_сливаем. Ну а откатить изменения можно git reset --hard хеш_коммита

4.4) git clone от_куда  куда, git clone url -b нужная_ветка (когда нужно стянуть одну ветку)
,  посмотреть зависимости в git remote -v, получить себе git pull, git push  отправит все комиты в удаленный репозиторий.

 создать этот самый удаленный репозиторий git init --bare

 

?4.5) создать удаленный репозиторий с 2-3 ветками, клонировать себе и пушить в разные ветки и тд и тп. короче не получилось. при переключении между ветками на удаленном репозитории ошибка: "this operation must be run in a work tree git" при попытке запушить в другую(не мастер) ветку на удаленном репозитори  error: "src refspec vetka2 does not match any"  и  "error: failed to push some refs to 'c:\gitrep2'" ну будем посмотреть.