Вход Регистрация Google+

Git простыми словами

     Статья для начинающих программистов. Прежде чем перейти к основному материалу разберёмся в том что такое git, и зачем он нужен.
      git - это система контроля версия, она помагает не только работать в команде но и следить за историей своих изменений. К примеру у вас есть проект и вы хотите реализовать какую либо фичу, но в ваш проект живёт и время от времени приходиться уделять время на баг фиксинг. т.е. мы имеем две работы идущих паралельно работы которые необходимо выполнить. Для этого и существуют контроль версий одна версия с багфиксом другая с фичей.

Разберём основные команды git:

  1. git status - показывает статус проекта
  2. git init - инициализирует пустой репазиторий
  3. git add .  - добавляет всё в текущей дериктории в индекс
  4. git commit -m "коментарий" - фиксирует изменения в репозитории
  5. git branch - показать ветки
  6. git checkout - перейти куда либо
  7. git checkout -b you_branch - перейти и создать ветку
  8. git branch -d - удалить ветку
  9. git pull origin [branch] - стянуть удалёные изменения
  10. git push origin [branch] - впихнуть изменения в удалённый репазиторий

Далее расмотрим ситуацию когда мы начинаем разрабатывать фичу, мы для начала создадим новую ветку

И тут появляеться неприятный баг, который стоит срочно пофиксить, и тут срабатывает обратный алгоритм действий:

Как вы могли заметить в примере я пишу о том как работать с гитом, и о том как работать с удалёным репозиторием, и да я это делаю не спроста. В действительности установив git на сервер вы можете с лёгкостью организовать деплой проекта на сервер.

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

 Таким образом мы получаем следующий алгоритм действий:

  1. Посмотрели статус
  2. Добавили файлы в индекс
  3. Закомитили
  4. Переходим на ветку пулим или пушим в общем продолжаем работу

Не правда ли очень просто.

p.s. Если насрал в комит то можем откатить его так если это последний комит в голове:

Ваши комментарии

| 2017-06-14 10:28:05 |

Нету блядь самого главного если насрал в коммит : как отменить коммит.

| himysay 2017-06-14 10:45:37 |

Спасибо добавил как откатить коммит и изменить его

| 2017-06-14 11:50:01 |

А как отменить git commit --amend , например сделал коммит, а там был старый чужой коммит и начинает всё херится (твой коммит становится уже коммитом другого пользователя, появляются конфликты)?

| himysay 2017-06-14 12:02:11 |

у тебя есть коммит testing к примеру, ты понял что в нём что то не хватает или хочешь что то поправить, берёшь правишь файлы а дальше делаешь git add . добавляешь файлы в индекс. И git commit --amend т.е. файлы в текущем индексе добавляються в текущий коммит, и конфликтов там не может быть ибо ты правишь файлы по состоянию текущего коммита. Если ты сделал коммит, и вызвал git commit --amend то ты будешь уже менять свой текущий коммит.

| 2017-06-14 12:13:05 |

Не совсем про это. --amend изменяет предыдущий коммит, независимо от того твой он или чужой. Твой коммит будет с чужим пользователем со звёздочкой в phpstorm. Например осталась команда в истории консоли git commit --amend, которую вызвали нечайно вместо git commit или простой git commit не прошел и это не заметили, зато git commit --amend потом прошёл. В итоге всё херится.

| himysay 2017-06-14 12:22:18 |

    Это ну вообще это случай экстраординарный. Но Я бы скорее всего откатил изменения комита git reset HEAD~1 --soft потом застешил git stash, и спулил бы с орижена git pull origin branch, в итоге у нас рабочая копия c удалёного репазитория, и git stash --apply применил бы изменения и мержил. Если они не нужны то просто git reset HEAD~1 --hard, и git pull. Привёл в божеский вид и всё.
  

Наверх ^