Skip to main content

CMD

git config​

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

Переименование коммитов​

amend​

Если вам нужно изменить только последнее сообщение коммита:

git commit --amend

Save and Close the Editor Push the Amended Commit:

git push --force-with-lease

rebase​

git rebase -i HEAD~5

Потом надо будет поменять pick на reword для каждого коммита.

После редактирования Git завершит rebase. Если возникнут конфликты, Git остановится и позволит вам разрешить их. После разрешения конфликтов (если таковые имеются) выполните:

git rebase --continue

После надо принудительно отправить изменения в удаленный репозиторий:

git push --force-with-lease

Undo a commit​

git reset HEAD~

Git Squash​

Это прием, который помогает взять серию коммитов и уплотнить ее.

Например, предположим: у вас есть серия из N коммитов и вы можете путем сжатия преобразовать ее в один-единственный коммит. Сжатие через git squash в основном применяется, чтобы превратить большое число малозначимых коммитов в небольшое число значимых. Так становится легче отслеживать историю Git.

Делается с помощью либо UI, либо git rebase

https://medium.com/nuances-of-programming/как-сжимать-коммиты-в-git-с-помощью-git-squash-8a84b9f62734

git remote​

git remote -v
# output:
# origin https://github.com/andreasblaze/tech-notes.git (fetch)
# origin https://github.com/andreasblaze/tech-notes.git (push)
  • origin: Это имя удаленного репозитория. По соглашению origin — это имя по умолчанию, которое присваивается удаленному репозиторию при клонировании репозитория или добавлении нового удаленного репозитория.
  • https://github.com/andreasblaze/tech-notes.git: Это URL-адрес удаленного репозитория. Это место, где ваш репозиторий размещен на GitHub.
  • (fetch): Это URL-адрес, используемый для загрузки изменений из удаленного репозитория в ваш локальный репозиторий. Когда вы запускаете такие команды, как git fetch или git pull, Git будет использовать этот URL-адрес для получения обновлений.
  • (push): Это URL-адрес, используемый для отправки изменений из локального репозитория в удаленный репозиторий. Когда вы запускаете такие команды, как git push, Git будет использовать этот URL-адрес для отправки ваших изменений в удаленный репозиторий.

Common Names for Remotes​

  • origin: по умолчанию, когда вы клонируете репозиторий, Git называет удаленный репозиторий origin. Это основной репозиторий, из которого вы клонировали, и это наиболее часто используемое удаленное имя.
  • upstream: если вы работаете с ответвлением репозитория, upstream часто используется для обозначения исходного репозитория, из которого был создан ваш форк. Это позволяет вам получать обновления из исходного репозитория, чтобы поддерживать ваш форк в актуальном состоянии.

Add a New Remote​

git remote add origin https://github.com/user/repo.git

Здесь origin — это имя удаленного сервера, а URL — это местоположение репозитория.

Remove a Remote​

git remote remove origin

Эта команда удаляет удаленный репозиторий.

Rename a Remote​

git remote rename origin upstream

Эта команда переименовывает существующий origin в upstream.

Show Information About a Remote​

git remote show origin
# output:
# * remote origin
# Fetch URL: https://github.com/andreasblaze/tech-notes.git
# Push URL: https://github.com/andreasblaze/tech-notes.git
# HEAD branch: main
# Remote branches:
# gh-pages new (next fetch will store in remotes/origin)
# main tracked
# Local branch configured for 'git pull':
# main merges with remote main
# Local ref configured for 'git push':
# main pushes to main (up to date)

Эта команда показывает подробную информацию о конкретном удаленном репозитории.

git clone-remote issue​

Если ранее репозиторий был склонирован путем https, а сейчас требует ssh:

git remote set-url origin <repo_url>

git branch​

git add​

git commit​

git push​

git pull​

git fetch​

git show​

git blame​

git revert​

This creates a new commit that undoes the changes from the problematic commit(s), preserving your history:

git revert <commit-hash>
git push origin master

git diff​

git log​

Use the Git log to find the commit hash of the last stable state:

git log --oneline

Незакоммиченные изменения​

Либо коммитить

git add
git commit
git checkout

либо:

git stash​

Переключить ветки без фиксации изменений (коммита):

git stash
git checkout master

Позже можно вернуть изменения с помощью:

git stash pop

Если мы хотим отказаться от изменений и вернуть файлам исходное состояние:

git restore <path-to-file-1> <path-to-file-2>
git checkout master

git status​

git tag​

To make rolling back easier in the future, consider tagging stable commits:

git tag -a stable -m "Stable version of Alertmanager config"
git push origin stable
git reset --hard stable
git push origin master --force

git checkout​

If you just need to deploy the stable commit temporarily without making changes to master:

git checkout <commit-hash>
git checkout master

git reset​

Remove the last commit locally:

git reset --hard HEAD~1

Force push the changes:

git push origin SRE-33572-update-to-use-vault-secrets --force

Use the Git log to find the commit hash of the last stable state:

git log --oneline

This will completely reset your branch to the specified commit and discard any changes made after it:

git reset --hard <commit-hash>
git push origin master --force

Undo a commit & redo​

# Source - https://stackoverflow.com/a
# Posted by Esko Luontola, modified by community. See post 'Timeline' for change history
# Retrieved 2025-12-05, License - CC BY-SA 4.0

$ 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)
  1. git reset is the command responsible for the undo. It will undo your last commit while leaving your working tree (the state of your files on disk) untouched. You'll need to add them again before you can commit them again.
  2. Make corrections to working tree files.
  3. git add anything that you want to include in your new commit.
  4. Commit the changes, reusing the old commit message. reset copied the old head to .git/ORIG_HEAD; commit with -c ORIG_HEAD will open an editor, which initially contains the log message from the old commit and allows you to edit it. If you do not need to edit the message, you could use the -C option.

Alternatively, to edit the previous commit (or just its commit message), commit --amend will add changes within the current index to the previous commit.

To remove (not revert) a commit that has been pushed to the server, rewriting history with git push origin main --force[-with-lease] is necessary. It's almost always a bad idea to use --force; prefer --force-with-lease instead, and as noted in the git manual:

You should understand the implications of rewriting history if you amend a commit that has already been published.