Skip to content

Instantly share code, notes, and snippets.

@dnclive
Last active January 13, 2022 20:26
Show Gist options
  • Save dnclive/8399055 to your computer and use it in GitHub Desktop.
Save dnclive/8399055 to your computer and use it in GitHub Desktop.
Git notes
http://www.prolinux.org/node/185
http://gitready.com/advanced/2009/02/25/keep-either-file-in-merge-conflicts.html
# отменить не удачное слияние, например загрузку из orign не в ту ветку и тд
git reset --merge ORIG_HEAD
# отменить все текущие изменения до последнего комита в текущей ветке
git reset --hard HEAD
# временно перейти к комиту с хешем
git checkout 0d1d7fc32
# взять в рабочий каталог файл/файлы по маске из коммита, возможно другой ветки
# если указать просто ветку то будет взят из head ветки
git checkout other-branch-name -- src/folder/src_file.rb
git checkout 93js0j020jgb -- src/folder/*
# создать новый комит такой же как третий назад от головы текущей ветки
git revert HEAD~3
# применить к текущему состоянию изменения принятые комитами ветки мастер с 5 по 2 назад
git revert -n master~5..master~2
# *** ПОИСК ***
# найти файл в любой ветке в любом коммите
git log --all -- somefile
# *** Работа с MERGE ***
# взять файлы из HEAD ветки branch в текущую ветку
git merge branch
# если при этом возникли конфликты то отменить начатое объединение можно так
git merge --abort
# техника theirs
# сливаем ветку branch в текущую при этом при конфликте файлы из другой нити в приоритете
1
git merge branch
2
# если нужно просто взять файлы файлы из ветки branch
git checkout --theirs путь/к/файлам
# взять свой файл
git checkout --ours index.html
# если конфликт - удалено в текущей ветке
git add новый/файл/из/ветки/branch
#если файл есть у нас но удален в branch remove конфликт - удаляем у себя
git rm файл
#когда все конфликты разрешены
git commit
# если сделать hard reset на предыдущий коммит или на несколько назад
# то все что были после него теряются
# невероятный гит позволяет восстановить потерянные комиты
#находит потерянные
git fsck --lost-found
# показывает инфу о найденных
git reflog
# применяем изменения к текущей позиции из указанного коммита
# чтобы восстановить последовательность применяем последовательно снизу вверх
# рабочий каталог должен быть чистым git stash в помощь
git cherry-pick 12944d8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment