пятница, 9 июня 2017 г.

Работа с Git - Краткая последовательность ввода команд

===========================================

Основные команды сразу после установки Git.

===========================================

1) Получение подсказки по командам Git.

git help

------------------------------------------------------------------------------

2) Получение версии Git.

git --version

===========================================

Работа с Git в локальной папке проекта.

===========================================

1) Создание репозитория в папке проекта.

git init

------------------------------------------------------------------------------

2) Конфируация Git в папке проекта.

git config --local user.name "Dmitry"
git config --local user.email my@mail.ru

Файл с настройками "config" расположен в папке проекта ".git/config".
Его содержимое можно изменять в редакторе вручную.

------------------------------------------------------------------------------

3) Просмотр списка настроек Git в папке проекта.

git config --list

------------------------------------------------------------------------------

4) Создание файла ".gitignore" в папке проекта для игнорировани папкок и файлов, которые не должен видеть Git.

Содержимое файла ".gitignore":

node_modules/
dist/
npm-debug.log
*.log
[._]*.s[a-w][a-z]
src/**/*.js

------------------------------------------------------------------------------

5) Работа с файлами: создание, изменение, удаление файлов.

------------------------------------------------------------------------------

6) Опеределение текущего состояния учета нахождения файлов в локальном репозитории Git.

git status

git status --short

------------------------------------------------------------------------------

7) Добавление файлов перед локальным коммитом.

Добавление всех новых файлов.

git add .

Добавление конкретного файла.

git add file.txt

Добавление списка файлов.

git add *.txt

------------------------------------------------------------------------------

8) Удаление файлов перед локальным коммитом.

git rm file.txt

------------------------------------------------------------------------------

9) Перемещение или переименование файлов перед локальным коммитом.

git mv file1.txt file2.txt

------------------------------------------------------------------------------

10) Отмена внесенных изменений при работе с файлом.

git reset file.txt

------------------------------------------------------------------------------

11) Сброс ВСЕХ изменений файлов до последнего коммита.

git reset --hard HEAD

или

git checkout HEAD

или

git rebase --skip

------------------------------------------------------------------------------

12) Удаление всех лишних файлов из локальной папки, которых нет в репозитории.

git clean --force

------------------------------------------------------------------------------

13) Создание текущего коммита с тэгом.

git tag -a my_tag_name

------------------------------------------------------------------------------

14) Коммит внесенных изменений в локальный репозиторий в папке проекта.

git commit -m "Мой первый коммит файлов."

------------------------------------------------------------------------------

15) Удаление последнего коммита через создание нового коммита, в котором отсутсвтуют текущие изменения.

git revert HEAD

------------------------------------------------------------------------------

16) Просмотр логов о все коммитах в Git.

git log --decorate --graph --all

------------------------------------------------------------------------------

17) Просмотр разницы между файлами в текущей папке и файлами в последнем коммите.

git diff

git diff file1.txt file2.txt

------------------------------------------------------------------------------

18) Создание новой ветки для коммитов

git branch develop/PROJECT-2017

------------------------------------------------------------------------------

19) Просмотр какая из веток для комитов текущая.

git branch

------------------------------------------------------------------------------

20) Переключение в конкретную ветку и обновление всех файлов в локальной папке из неё.

git checkout develop/PROJECT-2017

------------------------------------------------------------------------------

21) Просто обновление всех файлов в локальной папке из текущей ветки.

git checkout

git checkout -- file.txt

------------------------------------------------------------------------------

22) Переливание и слияние файлов в текущую папку из репозитория с учетом порядка всех коммитов.

git merge develop/PROJECT-2017


В случае конфликта вручную исправить код файла, а после этого еще раз добавить его в репозиторий Git.

git add file.txt

После этого сделать новый коммит.

git commit -m "Merged"

------------------------------------------------------------------------------

23) Переливание и слияние файлов в текущую папку из репозитория в единый коммит.

git merge --squash develop/PROJECT-2017

------------------------------------------------------------------------------

24) Перемещение и слияние файлов в текущую папку из репозитория без учета порядка всех коммитов.

git rebase develop/PROJECT-2017

------------------------------------------------------------------------------

25) Запуск своей программы для проведения мерджа вручную.

git mergetool

------------------------------------------------------------------------------

26) Пометка файла с разрешенным конфликтом.

git add my-resolved-file.txt
git rm my-resolved-file.txt

===========================================

Работа с удаленным Git.

===========================================

1) Просмотр списка известных репозиториев.

git remote -v

------------------------------------------------------------------------------

2) Добавление удаленного репозитория в список известных репозиториев.

git remote add mygithub http://username@site.com/repo.git

------------------------------------------------------------------------------

3) Копирование содержимого удаленного репозитория в папку проекта.

git clone http://username@site.com/repo.git

------------------------------------------------------------------------------

4) Получение списка всех последних изменений в удаленном репозитории Git.

git fetch mygithub

------------------------------------------------------------------------------

5) Выкачка ревизии из удаленного репозитория в папку проекта.

git pull mygithub develop/PROJECT-2017

------------------------------------------------------------------------------

6) Закачка коммита из локального репозитория в удаленный репозиторий.

git push mygithub develop/PROJECT-2017

пятница, 30 сентября 2016 г.

GitHub with Git Help

0*. Настройка глобальной информации об авторе коммитов.

git config --global user.name "John Doe"
git config --global user.email johndoe@example.com

0. Создать новый пустой репозиторий в GitHub.

1. Открыть командную строку cmd.

2. Перейти в папку с проектом.
cd C:\work\project

3. Выключить проверку SSL

git config --global http.sslVerify false

4. Инициализировать репозиторий Git

git init

4*. Или вместо инициализации склонировать в папку теущий проект из GitHub

git clone https://github.com/ovsyannikov/http-proxy-server.git

5. Создать в папке с проектом файлы и добавить их в Git для коммита

git add .

или

git add filename.txt

6. Закоммитить добавленные файлы в локальный Git

git commit -m "Commit message"

7*. Добавить ссылку на внеший репозиторий проекта в GitHub, если он не был склонирован, а был создан командой git init

git remote add origin https://github.com/ovsyannikov/http-proxy-server.git

8. Проверить, что внеший репозиторий проекта в GitHub существует и к нему есть доступ

git remote -v

9. Протолкнуть коммит из локального репозитория Git в GitHub

git push origin master

10. Выкачать изменения из последнего коммита в GitHub в локальную папку

git pull

11. Удалить файл

git rm filename.txt

и далее закоммитить изменения.

Основные команды Git:

git help - показать подсказку по командам Git

Начало работы с Git
    clone - склонировать удаленный репозиторий в текущую директорию
    init - создать пустой репозиторий в текущей директории

Работа с файлами
    add - добавить файл для коммита (add . - добавить все файлы)
    rm - удалить файл из коммита
    mv - переместить или переименовать файл или папку (git mv file_from file_to)
    reset - сбросить текущую ревизию до конкретного состояния

Просмотр истории изменений
    status - показать текущий статус коммита
    log - показать логи коммитов
    show - показать различные типы объектов
    bisect - используя бинарный поиск найти коммит, в котором содержится баг
    grep - вывести линии, содержащие конкретный паттерн

Работа с коммитами
    commit - сделать коммит в репозиторй Git
    branch - сделать коммит с ответвлением или удалить ответвление
    checkout - сделать переключение между ветками коммитов
    diff - показать разнличия между текущим коммитом и другим коммитом в Git
    merge - влить содержимое из одного коммита в другой коммит
    rebase - переформировать коммит
    tag - моздпть или удалить метку - тэг для коммита

Проталкивание и вытягивание коммитов
    push - протолкнуть коммит в репозиторий Git
    pull - вытянуть и переключиться на коммит из репозитория Git
    fetch - скачать сведения о последних коммитах из репозитория Git

среда, 27 января 2016 г.

Как сделать Force Push в TortoiseHg

In TortoiseHG, you can disable the setting as follows:
  1. Go to the "Synchronize" screen via the menu View -> Synchronize or by clicking this button in the toolbar:
    toolbar
  2. Click the "Options" button under the list of commits:
    options button
  3. In the options window, there's a checkbox for the "force push" setting:
    force push settings

By the way, when force is enabled, you should already see this below the "Options" button in step two:
enter image description here
После этого делаем обычный Push, который протолкнет файлы в хранилище.

понедельник, 27 мая 2013 г.

Обучающее руководство по работе с Hg

Показ подсказки по командам Hg

hg help

Переход в папку прокта

cd project

Создание локального репозитория Hg в папке проекта

hg init

Создание нового файла в папке проекта

touch index.html

Пометка нового файла на запись в локальный репозиторий Hg


hg add index.html

Просмотр файлов только что помеченных для добавления в локальный репозиторий Hg


hg status

Запись файлов проекта в локальный репозиторий Hg

hg commit -m "Initial import"

Просмотр лога всех внесенных изменений


hg log

Добавление нового файла в папку проекта

touch index2.html

Пометка нового файла на запись в локальный репозиторий Hg

hg add index2.html

Пометка нового файла на удаление из локального репозитория Hg
hg rm index2.html

Отмена внесенных изменений

hg revert index2.html

Показать разницу между файлами в текущей папке и файлами в локальной версии репозитория Hg

hg diff

Выгрузка файлов проекта из локального репозитория Hg в локальную папку

mkdir /home/dovsyannikov/Work/versions/test
cd /home/dovsyannikov/Work/versions/test

hg clone file:///home/dovsyannikov/Work/versions/project

Обучающее руководство по работе с Git

Показ подсказки по командам Git
git help

Переход в папку прокта

cd project

Создание локального репозитория Git в папке проекта
git init

Создание нового файла в папке проекта

touch index.html

Пометка нового файла на запись в локальный репозиторий Git

git add index.html

Просмотр файлов только что помеченных для добавления в локальный репозиторий Git

git status

Запись файлов проекта в локальный репозиторий Git


git commit -m "Initial import"

Просмотр лога всех внесенных изменений

git log

Добавление нового файла в папку проекта

touch index2.html

Пометка нового файла на запись в локальный репозиторий Git

git add index2.html

Пометка нового файла на удаление из локального репозитория Git

git rm index2.html

Отмена внесенных изменений

git reset index2.html

Показать разницу между файлами в текущей папке и файлами в локальной версии репозитория Git

git diff

Выгрузка файлов проекта из локального репозитория Git в локальную папку

mkdir /home/dovsyannikov/Work/versions/test
cd /home/dovsyannikov/Work/versions/test

git clone file:///home/dovsyannikov/Work/versions/project

Обновление файлов в локальной папке


git checkout -- file.txt

Работа с удаленным репозиторием GitHub


Зарегистрируйтесь на репозитории GitHub


Создайте новый репозиторий в  GitHub

Перенос проекта во внешний репозиторий GitHub
cd /home/dovsyannikov/Work/versions/project

git remote add origin git@github.com:<username>/my_new_app.git
git push -u origin master

Добавление новых файлов во внутренний и внешний репозиторий


touch index3.html

git add index3.html

git commit -m 'New commit'

git push

Выгрузка файлов из внешнего репозитория GitHub в локальную папку проекта


git pull origin master

git checkout master

Обучающее руководство по работе с SVN

Показ подсказки по командам SVN

svn help

Создание локального репозитория SVN

1. Создание папки репозитория SVN

mkdir versions
cd versions
mkdir svn

2. Создание репозитория внутри папки

svnadmin create /home/dovsyannikov/Work/versions/svn

3. Создание папки проекта

mkdir project
cd project

4. Создание структуры папок для хранения проекта внутри репозитория (на самом деле структура файлов может быть любой)

mkdir brunches
mkdir tags
mkdir trunk

5. Добавление папки с файлами проекта в структуру папок для репозитория

cd trunk
mkdir dir1
touch index.html

6. Первоначальный иморт всей структуры папкок внутрь репозитория SVN

svn import /home/dovsyannikov/Work/versions/project file:///home/dovsyannikov/Work/versions/svn -m "Initial commit"

Просмотр файлов только что записанных в локальный репозиторий SVN

svn ls file:///home/dovsyannikov/Work/versions/svn

Изменение структуры папок внутри локального репозитория

Добавление папки внутрь репозитория SVN

svn mkdir file:///home/dovsyannikov/Work/versions/svn/my -m "Created dumb directory"

Просмотр файлов только что записанных в локальный репозиторий SVN

svn ls file:///home/dovsyannikov/Work/versions/svn

Удаление папки из структуры внутри локального репозитория SVN

svn rm file:///home/dovsyannikov/Work/versions/svn/my -m "Removed dumb directory"

Просмотр файлов только что записанных в локальный репозиторий SVN

svn ls file:///home/dovsyannikov/Work/versions/svn

Просмотр лога всех внесенны изменений

svn log file:///home/dovsyannikov/Work/versions/svn

Запись (импортирование) файлов проекта в локальный репозиторий SVN

svn import /home/dovsyannikov/Work/versions/project/ file:///home/dovsyannikov/Work/versions/svn/project/trunk -m "Initial import"

Удаление папки с проектом для тестирования

rm -rf /home/dovsyannikov/Work/versions/project

Выгрузка файлов проекта из локального репозитория SVN в локальную папку

mkdir /home/dovsyannikov/Work/versions/project
cd /home/dovsyannikov/Work/versions/project

svn checkout file:///home/dovsyannikov/Work/versions/svn (На самом деле папка внутри репозитория SVN может быть любой, например, cvn/trunk/dir1)

Просмотр папок записанных в папку project из локального репозитория SVN

cd /home/dovsyannikov/Work/versions/project
ls -a

Просмотр последней информации по изменениям в локальной копии репозитория SVN

svn info file:///home/dovsyannikov/Work/versions/svn

Работа над проектом

Добавим в проект новые файлы

cd /home/dovsyannikov/Work/versions/project/svn/trunk/dir1
touch add.html

Пометим файл на добавление к локальный репозиторий SVN

svn add add.html

Посмотрим статус внесенных изменений

cd /home/dovsyannikov/Work/versions/project/svn/trunk/

svn status

Перенос созданного файла в локальный репозиторий SVN

svn commit -m "Added new file"

Выгрузка файлов проекта особой версии из локального репозитория SVN в локальную папку

Создадим тестовую локальную папку для выгрузки версии 3 файлов из локального репозитория SVN

cd /home/dovsyannikov/Work/versions
mkdir test
cd test

Выгрузим версию ревизии 3 коммита файлов из локального репозитория SVN в созданную папку

svn checkout -r 3 file:///home/dovsyannikov/Work/versions/svn

Посмотрим информацию по выгруженному файлу из ревизии 3

svn info /home/dovsyannikov/Work/versions/test/svn/trunk/dir1/index.html

Создание папки внутри локальной версии репозитория SVN и копирование туда файлов из любой ревизии

Переход в папку проекта

cd /home/dovsyannikov/Work/versions/project/svn/trunk/dir1

Создание в папке проекта папки tags

svn mkdir tags

Копирование папки dir1 в папку tags

svn copy /home/dovsyannikov/Work/versions/project/svn/project/trunk/trunk/dir1 /home/dovsyannikov/Work/versions/project/svn/trunk/dir1/tags

Перенос папки tags с папкой dir1 внутри в локальный репозиторий SVN

svn commit -m "Tagged version"

Выгрузка папки dir1 из папки tags из локального репозитория SVN

cd /home/dovsyannikov/Work/versions/test

svn checkout file:///home/dovsyannikov/Work/versions/svn/trunk/dir1/tags/dir1

Пометка файлов на удаление из локального репозитория SVN

cd /home/dovsyannikov/Work/versions/test/dir1

svn rm index.html

Добавление новых файлов

touch index2.html
touch index3.html

Пометка файлов на добавление в локальный репозиторий SVN

svn add index2.html
svn add index2.html

Переименование файла

svn rename index3.html index4.html

Отмена внесенных изменений

svn revert index.html
svn revert index2.html

Перенос всех внесенных в проекте изменений в локальный репозиторий SVN

svn commit -m "Modified files"

Выгрузка последней ревизии из локального репозитория SVN в локалбную папку с целью обновления файлов в ней

cd /home/dovsyannikov/Work/versions/test/dir1

svn update

Показать разницу между файлами в текущей папке и файлами в локальной версии репозитория SVN

svn diff

Посмотреть какой номер ревизии был последний

svnlook youngest /home/dovsyannikov/Work/versions/svn

Восстановление поврежденных данных в SVN

svnadmin recover /home/dovsyannikov/Work/versions/svn

Перемещение папки локального репозитория SVN в другое место

svnadmin dump /home/dovsyannikov/Work/versions/svn > /tmp/mydumpfile.db (перемещаем базу данных SVN)

svnadmin create /home/dovsyannikov/Work/versions/newsvn (создаем новую папку для локального репозитория SVN)

svnadmin load  /home/dovsyannikov/Work/versions/newsvn < /tmp/mydumpfile.db (перемещаем базу данных SVN в новую папку репозитория)

Работа с удаленным репозиторием SVN через SVN+SSH

svn checkout svn+ssh://url.of.another.computer/home/dovsyannikov/Work/versions/svn/trunk/dir1/tags