Git: различия между версиями

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску
(Создание нового проекта)
 
(не показана 1 промежуточная версия этого же участника)
Строка 1: Строка 1:
=Установка=
+
Инструкция по использованию git в качестве "машины времени" для фалов в текущем каталоге.
  
aptitude install git-core
+
* при каждом изменении делается коммит
 +
* всегда можно посмотреть список коммитов
 +
* в любое время можно переключиться на любой предыдущий коммит и все фйлы в каталоге автоматически изменят свое состояние на момент создания коммита
 +
* всегда можно вернуться к последнему по времени MASTER-коммиту
 +
* переключения между коммитами делаются по хэшам этих коммитов (из списка коммитов)
  
=Создание нового проекта=
+
 
 +
1. Активируем git в текущем каталоге
 +
git init
 +
Инициализированный пустой репозиторий Git в /home/administrator/git-test/.git/
 +
2. Добавляем все файлы из текущего каталога в список подготовленных к комиту
 +
git add .
 +
3. Просматриваем состояние файлов, подготовленных к коммиту
 +
git status
 +
  В ветке master
 +
 
 +
  Заглавный коммит
 
   
 
   
  mkdir sandbox
+
  Изменения для закрепления:
cd sandbox
+
    (используйте "git rm --cached <file>..." чтобы убрать из буфера)
  git init
+
 
  git config --global user.email "pupkin@vasya.ru"
+
        new file:  gateway-client
  git config --global user.name "vasya pupkin"
+
    new file:  nginx.conf
  git config receive.denyCurrentBranch ignore
+
  new file:  test.txt
echo 'First File' > readme.txt
+
3.1 В случае с появлением временных файлов, которые удалились после выполнение git add . удалите их командой
git add *
+
  git rm <filename>
git status
+
4. Делаем коммит
git commit
+
  git commit -m "First commit"
 +
  [master (root-commit) 78e180f] First commit
 +
  3 files changed, 216 insertions(+)
 +
  create mode 100644 gateway-client
 +
  create mode 100644 nginx.conf
 +
  create mode 100644 test.txt
 +
5. При каждом изменении файла в каталоге делаем коммит
 +
nano test.txt
 +
git add .
 +
commit -m "Added some lines to test.txt"
 +
  [master 47e2f1a] Added some lines to test.txt
 +
  1 file changed, 4 insertions(+)
 +
nano test.txt
 +
  git add .
 +
git commit -m "Some more lines"
 +
  [master 866354d] Some more lines
 +
  1 file changed, 6 insertions(+)
 +
6. Просмотреть список всех коммитов можно коммандой
 +
git log --pretty=oneline
 +
  866354dc0e13d97137d2dec471c1eb4f9da37f07 Some more lines
 +
  47e2f1adc0da8761c7d75eb366f8842b2505b83b Added some lines to test.txt
 +
  78e180f4bee99494af50721be1d79fa7b1ca1fb6 First commit
 +
7. GIT использует два указателя на коммит
 +
* HEAD - это плавающий указатель, определяющий из какого коммита состояние файлов доступно сейчас в каталоге
 +
* MASTER - указатель "статичный", по которому всегда можно вернуться к последнему "по времени" коммиту. Если изменить положение указателя MASTER, то все коммиты "правее"="Новее" будут потеряны.
 +
Для смены текущего состояния каталога следует менять положение указателя HEAD, а возвращаться к последнему состоянию следует переключением указателя HEAD на MASTER
 +
 
 +
7.1 Гуляем ко коммитам. Указываем нужный коммит по части хэша (весь хэш писать не обязательно)
 +
  git checkout 78e180
 +
  Note: checking out '78e180'.
 +
 
 +
  You are in 'detached HEAD' state. You can look around, make experimental
 +
  changes and commit them, and you can discard any commits you make in this
 +
  state without impacting any branches by performing another checkout.
 +
 
 +
  If you want to create a new branch to retain commits you create, you may
 +
  do so (now or later) by using -b with the checkout command again. Example:
 +
 
 +
      git checkout -b new_branch_name
 +
 
 +
  HEAD is now at 78e180f... First commit
 +
 
 +
7.2 Возвращаемся к последнему состоянию
 +
  git checkout master
 +
    Предыдущая позиция HEAD была 78e180f... First commit
 +
    Перешел к ветке 'master'

Текущая версия на 11:29, 16 ноября 2015

Инструкция по использованию git в качестве "машины времени" для фалов в текущем каталоге.

  • при каждом изменении делается коммит
  • всегда можно посмотреть список коммитов
  • в любое время можно переключиться на любой предыдущий коммит и все фйлы в каталоге автоматически изменят свое состояние на момент создания коммита
  • всегда можно вернуться к последнему по времени MASTER-коммиту
  • переключения между коммитами делаются по хэшам этих коммитов (из списка коммитов)


1. Активируем git в текущем каталоге

git init 
Инициализированный пустой репозиторий Git в /home/administrator/git-test/.git/

2. Добавляем все файлы из текущего каталога в список подготовленных к комиту

git add .

3. Просматриваем состояние файлов, подготовленных к коммиту

git status
  В ветке master
  
  Заглавный коммит 

  Изменения для закрепления:
    (используйте "git rm --cached <file>..."  чтобы убрать из буфера)
 
     	  new file:   gateway-client
 	  new file:   nginx.conf
	  new file:   test.txt

3.1 В случае с появлением временных файлов, которые удалились после выполнение git add . удалите их командой

git rm <filename>

4. Делаем коммит

git commit -m "First commit"
  [master (root-commit) 78e180f] First commit
  3 files changed, 216 insertions(+)
  create mode 100644 gateway-client
  create mode 100644 nginx.conf
  create mode 100644 test.txt

5. При каждом изменении файла в каталоге делаем коммит

nano test.txt
git add .
commit -m "Added some lines to test.txt"
  [master 47e2f1a] Added some lines to test.txt
  1 file changed, 4 insertions(+)
nano test.txt 
git add .
git commit -m "Some more lines"
  [master 866354d] Some more lines
  1 file changed, 6 insertions(+)

6. Просмотреть список всех коммитов можно коммандой

git log --pretty=oneline
  866354dc0e13d97137d2dec471c1eb4f9da37f07 Some more lines
  47e2f1adc0da8761c7d75eb366f8842b2505b83b Added some lines to test.txt
  78e180f4bee99494af50721be1d79fa7b1ca1fb6 First commit

7. GIT использует два указателя на коммит

  • HEAD - это плавающий указатель, определяющий из какого коммита состояние файлов доступно сейчас в каталоге
  • MASTER - указатель "статичный", по которому всегда можно вернуться к последнему "по времени" коммиту. Если изменить положение указателя MASTER, то все коммиты "правее"="Новее" будут потеряны.

Для смены текущего состояния каталога следует менять положение указателя HEAD, а возвращаться к последнему состоянию следует переключением указателя HEAD на MASTER

7.1 Гуляем ко коммитам. Указываем нужный коммит по части хэша (весь хэш писать не обязательно)

git checkout 78e180
  Note: checking out '78e180'.
  
  You are in 'detached HEAD' state. You can look around, make experimental
  changes and commit them, and you can discard any commits you make in this
  state without impacting any branches by performing another checkout.
  
  If you want to create a new branch to retain commits you create, you may
  do so (now or later) by using -b with the checkout command again. Example:
  
     git checkout -b new_branch_name
 
  HEAD is now at 78e180f... First commit

7.2 Возвращаемся к последнему состоянию

 git checkout master
   Предыдущая позиция HEAD была 78e180f... First commit
   Перешел к ветке 'master'