Skip to content

Instantly share code, notes, and snippets.

@ValeriiVasyliev
Last active October 22, 2021 10:01
Show Gist options
  • Save ValeriiVasyliev/2e918166fe33cc8ec639b5c35121fc60 to your computer and use it in GitHub Desktop.
Save ValeriiVasyliev/2e918166fe33cc8ec639b5c35121fc60 to your computer and use it in GitHub Desktop.
GIT commands

GIT commands

Add one or more files to staging (index)

git add <filename>

git add *

Commit changes to head (but not yet to the remote repository)

git commit -m "Commit message"

Send changes to the master branch of your remote repository

git push origin master

Log

set LC_ALL=C.UTF-8 ;windows bug

git log -p -count

-p ; diff
-count ; last commits

Resolve conflict



git checkout master
git merge origin/master --allow-unrelated-histories

Resolve conflict, then

git add -A .
git commit -m "Upload"
git push


Cherry pick

git checkout master
	
git pull origin master

git cherry-pick eb042098a5

git push origin master

git log -n 1 dev

Merge

git checkout master git merge <имяветки>

Branches

git checkout -b <имяветки> // создание ветки

git branch // активная ветка

git branch -a //все ветки

git push -u origin <branch> //обновление в ветку

https://confluence.atlassian.com/bitbucketserver/basic-git-commands-776639767.html

http://dev-lab.info/2013/08/%D1%88%D0%BF%D0%B0%D1%80%D0%B3%D0%B0%D0%BB%D0%BA%D0%B0-%D0%BF%D0%BE-git-%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5-%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B-%D1%81%D0%BB%D0%B8%D1%8F%D0%BD/

git cherry-pick

Команда git cherry-pick используется для того чтобы взять изменения, внесённые каким-либо коммитом, и попытаться применить их заново в виде нового коммита наверху текущей ветки. Это может оказаться полезным чтобы забрать парочку коммитов из другой ветки без полного слияния с той веткой.

Мы продемонстрировали работу этой команды в главе Rebasing and Cherry Picking Workflows.

git rebase

git rebase — это "автоматизированный" cherry-pick. Он выполняет ту же работу, но для цепочки коммитов, тем самым как бы перенося ветку на новое место.

Мы в деталях разобрались с механизмом переноса веток в главе Перебазирование, включая рассмотрение потенциальных проблем переноса опубликованных веток при совместной работе.

Мы использовали эту команду на практике для разбиения истории на два репозитория в главе Замена, наряду с использованием флага --onto.

В главе Rerere мы рассмотрели случай возникновения конфликта во время переноса коммитов.

Также мы познакомились с интерактивным вариантом git rebase, включающемся с помощью опции -i, в главе Изменение сообщений нескольких коммитов.

git revert

Команда git revert — полная противоположность git cherry-pick. Она создаёт "антикоммит" для указанного коммита, таким образом отменяя изменения, внесённые в нём..

Мы использовали её в главе Отмена коммита чтобы отменить коммит слияния (merge commit).

https://git-scm.com/book/ru/v2/Appendix-C%3A-%D0%9A%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B-Git-%D0%92%D0%BD%D0%B5%D1%81%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B8%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B9

Git: rebasing workflow and resolving merge conflicts

http://clubmate.fi/git-rebasing-workflow-and-resolving-merge-conflicts/

http://clubmate.fi/category/blog/webdev/

Resolving a merge conflict using the command line

https://help.github.com/articles/resolving-a-merge-conflict-using-the-command-line/

Delete branch

git checkout master

git branch -d branch_name

git push origin --delete branch_name

Checkout remote branch

git fetch git checkout

Force pull

think this is the right way:

git fetch --all

Then, you have two options:

git reset --hard origin/master

OR If you are on some other branch:

git reset --hard origin/<branch_name>

Conflicts

git diff --name-only --diff-filter=U

git diff --check

git config --global alias.lol “log --graph --decorate --pretty=oneline --abbrev-commit --all”

git lol -3

git reset --hard commit-hash

обновление локальной ветки при наличии в ней незакомиченных изменений

  • git stash
  • git pull
  • git stash pop

как делать cherry-pick если все изменния из master заливать в prod нет надобности по тем или иным причинам (нет уверенности в стабильносит master, например), тогда можно выборочно перенести коммит следующим образом:

  • скопировать хэш нужного комита (git checkout master, git log -10)
  • переключиться на ветку prod (git checkout prod)
  • “затянуть” в prod комит из master (git cherry-pick 44f72ad6)
  • запушить prod (git push origin prod)

для выкладки проекта в бой заходим в папку с проектом и делаем git pull. если версия сломана, тогда делаем откат на рабочую версию: git reset --hard HEAD~1

git reset --hard origin/dev

git push --force origin master

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment