Doka avatar

Журнал Эмбеддед-Инженера

О микроэлектронике, радиотехнике и хобби

git cheatsheet

Шпаргалка по гиту

Dmitry Murzinov

2 минут чтения

Шпаргалка по гиту. В основном самому себе (чтобы через месяц не гуглить тоже самое второй раз).

Мои alias для молниеносной работы с гитом из консоли

Если файл добавлен, но еще не закоммичен (и надо откатить)..

и надо откатить добавление, чтобы переключить ветку на нужную, например:

git reset <filename>

Если файл закоммичен и надо откатить коммит

$ git commit -m "Something terribly misguided" # (0: Your Accident)
$ git reset HEAD~                              # (1)
# === If you just want to undo the commit, stop here! ===
[ edit files as necessary ]                    # (2)
$ git add .                                    # (3)
$ git commit -c ORIG_HEAD                      # (4)

Pull latest changes for all git submodules

If it’s the first time you check-out a repo you need to use --init first:

git submodule update --init --recursive

For git 1.8.2 or above, the option --remote was added to support updating to latest tips of remote branches:

git submodule update --recursive --remote

Merge двух разных репо

Если вы коммитили в ветку мастер, а потом разбежались с мейнтейнером основного репо и теперь кроме как с конфликтами не можете смержиться, то план таков:

Источники:

git clone https://github.com/iDoka/wavedrompy
cd wavedrompy
git clone https://github.com/wallento/wavedrompy ../wavedrompy-vanilla
git switch master
git remote add wavedrompy-vanilla ../wavedrompy-vanilla
git fetch wavedrompy-vanilla --tags
git merge --allow-unrelated-histories wavedrompy-vanilla/master
git remote remove wavedrompy-vanilla
git status

git diff wavedrom/__init__.py
git diff wavedrom/bitfield.py

*** manually resolve merge conflicts ***

ga wavedrom/__init__.py wavedrom/bitfield.py
git commit -m "Manually resolved merge conflict with https://github.com/wallento/wavedrompy"
git log
git push

Последние записи

Разделы