среда, 22 марта 2017 г.

Мой Git-конспект

Введение

В работе с Git я пользуюсь прекрасной оболочкой GitExtensions, а также расширениями к текстовым редакторам и IDE.

Поэтому помнить команды Git обычно нет никакой нужды – достаточно нажимать на кнопочки и горячие клавиши.

Есть лишь несколько команд и возможностей Git, выходящих за рамки GitExtensions, которые я постоянно забываю и каждый ищу заново и интернете. Чтобы сэкономить себе время, буду собирать их здесь.

Создание bare-репозитория

Bare-репозиторий – это репозиторий, в который не предполагается делать коммиты, а только пуши. Он предназначен не для работы, а для хранения изменений, сделанных в других (локальных) репозиториях. Обычно bare-репозиторий расположен на сервере, а локальные – на клиентах.

Для своих небольших проектов я создаю bare-репозитории в папке на DropBox. А локальные репозитории для работы – в специальном месте на каждой машине (иногда даже на RAM-диске, чтобы все просто летало).

Создаем bare-репозиторий:

  1. Создаем папку для него, например:
C:\Users\I\Dropbox\Rep\MyProject.git

Имя папки оканчивается на .git в силу соглашения об именовании bare-репозиториев. Из его имени сразу видно, что это не рабочий, а bare-репозиторий.

  1. Идем в консоль Git:
cd C:/Users/I/Dropbox/Rep/MyProject.git
git init --bare
exit

Обращаю внимание на прямые слеши вместо обратных в пути.

Все, bare-репозиторий – создан.

  1. Задаем в настройках GitExtensions «Внешний репозиторий» путь к нашему bare-репозиторию (имя указываем origin) и пушим туда наш проект.

Удаление из индекса ранее проиндексированных файлов

Если какое-то время мы работали и сохраняли в Git историю изменений некоторых файлов, а затем решили записать их в .gitignore, то они игнорироваться не станут, т.к. являются проиндексированными. Их надо убрать из индекса:

git rm --cached `git ls-files -i --exclude-from=.gitignore`

Или так, (это лучше работает):

git ls-files -i -z --exclude-from=.gitignore | xargs -0 git rm --cached

1 комментарий:

  1. Do you realize there's a 12 word sentence you can tell your crush... that will induce intense emotions of love and impulsive attraction to you deep within his heart?

    Because deep inside these 12 words is a "secret signal" that fuels a man's impulse to love, admire and care for you with his entire heart...

    =====> 12 Words That Fuel A Man's Love Impulse

    This impulse is so hardwired into a man's genetics that it will drive him to try harder than before to make your relationship the best part of both of your lives.

    Matter-of-fact, fueling this all-powerful impulse is so mandatory to having the best ever relationship with your man that once you send your man one of these "Secret Signals"...

    ...You'll instantly notice him expose his soul and mind to you in such a way he's never expressed before and he'll see you as the only woman in the galaxy who has ever truly tempted him.

    ОтветитьУдалить