Работа с git и github

Сделал неправильный коммит, и хочу откатиться

1. откатываемся на нужный коммит (переключается локальный HEAD)

$ git reset remote origin 88f06ac7b0fbda3d2b994970547871c921319926

2. применяем локальные действия (переключаем удаленный HEAD)

$ git push origin +master

Заставим гит игнорировать изменения в определенном файле

git update-index --assume-unchanged <file>

а если вдруг снова понадобится следить за изменениями в этом файле, то:

git update-index --no-assume-unchanged <file>

Сабмодули

Если хотите обновить список сабмодулей, выполните команду:

git submodule update

если при этом получите ошибку:

No submodule mapping found in .gitmodules for path 'vendor/hwi/oauth-bundle/HWI/Bundle/OAuthBundle'

то выполните:

git rm --cached vendor/hwi/oauth-bundle/HWI/Bundle/OAuthBundle

это должно помочь.

Git не добавляет содержимое директории

Опять же, дело в том, что эта директория является сабмодулем и git про это знает, поэтому выполняем команды:

mv vendor/yapro/lib/.git /tmp

git rm --cached vendor/yapro/lib/ -f

теперь git увидит все, что есть в директории vendor/yapro/lib/

Тэги

Посмотреть все теги можно так:

git tag -l

Например, я вижу, что в настоящий момент последняя версия 1.7-rc2, поэтому переключусь на нее:

git checkout tags/1.7-rc2

Настройки ~/.gitconfig

Чтобы пушить текущую ветку в одноименнюу удаленную ветку я применяю такую настройку:

[push]
        default = current

напомню, что значение этой настройки может быть одним из следующих:

  • nothing: do not push anything

  • matching: push all matching branches

    All branches having the same name in both ends are considered to be matching.

    This is the default in Git 1.x.

  • upstream: push the current branch to its upstream branch (tracking is a deprecated synonym for upstream)

  • current: push the current branch to a branch of the same name

  • simple: (new in Git 1.7.11) like upstream, but refuses to push if the upstream branch's name is different from the local one

Поиск коммита в котором содержался указанный текст

ситуация: когда-то был метод enableDatravel в файле Х, кто-то удалил, вопрос: как найти коммит, в котором этот метод был удален?

git grep <regexp> $(git rev-list --all)

пример:

git grep enableDatravel $(git rev-list --all)

аналог с подробным выводом diff-ов:

git log -p -SenableLogging

Возврат к коммиту

git reset --hard 4f49cc580d3624db19ce8b055becc26a7d5c1b2b

Создание и синхронизация удаленной ветки в git

Надо добавить удаленную ветку, чтобы она синхронизировалась через pull/push.

Сначала надо создать удаленную ветку:

git push origin origin:refs/heads/newbranch

притянуть ее

git pull origin

посмотреть появилась ли в списке удаленных веток:

git branch -r

создать локальную ветку и закрепить ее за удаленной

git checkout --track -b newbranch origin/newbranch

На других рабочих компьютерах надо посмотреть удаленные ветки

git branch -r

и сделать checkout

git checkout --track -b newbranch origin/newbranch

Удалить удаленную ветку можно так

git push origin :heads/newbranch

Если не знаете, что такое stash, то советую почитать про него и всем удачки! :)

Источник: 1

Оцени публикацию:
  • 1,5
Оценили: 1
Теги : git, github, игнорирование, следить

Предложения и пожелания:

 

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2019 YaPro.Ru

Лебеденко Николай Николаевич
Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter