Skip to content

Instantly share code, notes, and snippets.

@alexprivalov
Forked from AgiosAndreas/repo-full-copy.sh
Last active August 29, 2015 14:09
Show Gist options
  • Save alexprivalov/f1ee54e2bebf0690412b to your computer and use it in GitHub Desktop.
Save alexprivalov/f1ee54e2bebf0690412b to your computer and use it in GitHub Desktop.
# Клонируем исходный репозиторий без рабочего каталога (--bare)
git clone --bare https://github.com/exampleuser/old-repository.git
cd old-repository.git
# Делаем mirror-push(будут скопированы все ветки и тэги) в новый репозиторий
git push --mirror https://github.com/exampleuser/new-repository.git
cd ..
# Удаляем папку с репозиторием
rm -rf old-repository.git
############################################################################
# Создать новый репозиторий:
git init project-name
# Запушить локально созданый репозиторий на сервер
git remote add origin git@github.com:account_name/repository_name.git
git push -u origin master
# Клонировать репозиторий с удаленной машины:
git clone git@bitbucket.org:afiskon/hs-textgen.git
# Добавить файл в репозиторий:
git add text.txt
# Удалить файл:
git rm text.txt
# Текущее состояние репозитория (изменения, неразрешенные конфликты и тп):
git status
# Сделать коммит:
git commit -a -m "Commit description"
# Сделать коммит, введя его описание с помощью $EDITOR:
git commit -a
# Замерджить все ветки локального репозитория на удаленный репозиторий:
git push origin
# Аналогично предыдущему, но делается пуш только ветки master:
git push origin master
# Запушить текущую ветку, не вводя целиком ее название:
git push origin HEAD
# Замерджить все ветки с удаленного репозитория:
git pull origin
# Аналогично предыдущему, но накатывается только ветка master:
git pull origin master
# Накатить текущую ветку, не вводя ее длинное имя:
git pull origin HEAD
# Скачать все ветки с origin, но не мерджить их в локальный репозиторий:
git fetch origin
# Аналогично предыдущему, но только для одной заданной ветки:
git fetch origin master
# Начать работать с веткой some_branch (уже существующей):
git checkout -b some_branch origin/some_branch
# Создать новый бранч (ответвится от текущего):
git branch some_branch
# Переключиться на другую ветку (из тех, с которыми уже работаем):
git checkout some_branch
# Получаем список веток, с которыми работаем:
git branch # звездочкой отмечена текущая ветвь
# Просмотреть все существующие ветви:
git branch -a # | grep something
# Замерджить some_branch в текущую ветку:
git merge some_branch
# Удалить бранч (после мерджа):
git branch -d some_branch
# Просто удалить бранч (тупиковая ветвь):
git branch -D some_branch
# Последние изменения:
git log
# История конкретного файла:
git log file.txt
# Аналогично предыдущему, но с просмотром сделанных изменений:
git log -p file.txt
# История с именами файлов и псевдографическим изображением бранчей:
git log --stat --graph
# Изменения, сделанные в заданном коммите:
git show d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4
# Посмотреть, кем в последний раз правилась каждая строка файла:
git blame file.txt
# Удалить бранч из репозитория на сервере:
git push origin :branch-name
# Откатиться к конкретному коммиту (хэш смотрим в «git log»):
git reset --hard d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4
# Аналогично предыдущему, но файлы на диске остаются без изменений:
git reset --soft d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4
# Попытаться обратить заданный commit (но чаще используется branch/reset + merge):
git revert d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4
# Просмотр изменений (суммарных, а не всех по очереди, как в «git log»):
git diff # подробности см в "git diff --help"
# Используем vimdiff в качестве программы для разрешения конфликтов (mergetool) по умолчанию:
git config --global merge.tool vimdiff
# Отключаем диалог «какой mergetool вы хотели бы использовать»:
git config --global mergetool.prompt false
# Разрешение конфликтов (когда оные возникают в результате мерджа):
git mergetool
# Создание тэга:
git tag some_tag # за тэгом можно указать хэш коммита
# Удаление untracked files:
git clean -f
# «Упаковка» репозитория для увеличения скорости работы с ним:
git gc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment