1 / 18

Локальные и централизованные СУВ

Локальные и централизованные СУВ. Схема локальной СУВ. Схема централизованной СУВ. Распределенная СУВ. Различия Git и остальных СУВ. Другие системы хранят данные как изменения к базовой версии для каждого файла (патчи). Git хранит данные как слепки состояний проекта во времени.

henryrobert
Download Presentation

Локальные и централизованные СУВ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Локальные и централизованные СУВ Схема локальной СУВ. Схема централизованной СУВ.

  2. Распределенная СУВ

  3. Различия Git и остальных СУВ Другие системы хранят данные как изменения к базовой версии для каждого файла (патчи) Git хранит данные как слепки состояний проекта во времени

  4. Рабочий каталог, область подготовленных файлов, каталог Git

  5. Начало работы $ git config --global user.name "Your Name" $ git config --global user.email "your_email@whatever.com" Создание нового репозитория $ git init Индексация и фиксация изменений $ git add *.c $ git add README $ git commit -m 'initial project version' Клонирование существующего репозитория: $ git clone git://github.com/schacon/grit.git

  6. Жизненный цикл состояния ваших файлов

  7. Определение состояния файлов $ git status # On branch master nothing to commit (working directory clean) Добавляем простой файл README $ vim README $ git status # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # README nothing added to commit but untracked files present (use "git add" to track)

  8. Отслеживание новых файлов $ git add README $ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: README # Изменим файл benchmarks.rb $ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: README # # Changed but not updated: # (use "git add <file>..." to update what will be committed) # # modified: benchmarks.rb #

  9. Отслеживание новых файлов $ git add benchmarks.rb $ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: README # modified: benchmarks.rb #

  10. Изменение проиндексированного файла $ vim benchmarks.rb $ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: README # modified: benchmarks.rb # # Changed but not updated: # (use "git add <file>..." to update what will be committed) # # modified: benchmarks.rb #

  11. Игнорирование файлов $ cat .gitignore # комментарий – эта строка игнорируется *.a # не обрабатывать файлы, имя которых заканчивается на .a !lib.a # НО отслеживать файл lib.a, несмотря на то, что мы игнорируем все .a файлы с помощью предыдущего правила /TODO # игнорировать только файл TODO находящийся в корневом каталоге, не относится к файлам вида subdir/TODO build/ # игнорировать все файлы в каталоге build/ doc/*.txt # игнорировать doc/notes.txt, но не doc/server/arch.txt

  12. Просмотр индексированных и неиндексированных изменений $ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: README # # Changed but not updated: # (use "git add <file>..." to update what will be committed) # # modified: benchmarks.rb # $ git diff diff --git a/benchmarks.rb b/benchmarks.rb index 3cb747f..da65585 100644 --- a/benchmarks.rb +++ b/benchmarks.rb @@ -36,6 +36,10 @@ def main @commit.parents[0].parents[0].parents[0] end + run_code(x, 'commits 1') do + git.commits.size + end + run_code(x, 'commits 2') do log = git.commits('master', 15) log.size

  13. Сравнение индексированных изменений с последним коммитом $ git diff --cached diff --git a/README b/README new file mode 100644 index 0000000..03902a1 --- /dev/null +++ b/README2 @@ -0,0 +1,5 @@ +grit + by Tom Preston-Werner, Chris Wanstrath + http://github.com/mojombo/grit + +Grit is a Ruby library for extracting information from a Git rep

  14. Фиксация изменений $ git commit # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: README # modified: benchmarks.rb ~ ~ ~ ".git/COMMIT_EDITMSG" 10L, 283C Или (можно добавить -m): $ git commit -m "Story 182: Fix benchmarks for speed" [master]: created 463dc4f: "Fix benchmarks for speed" 2 files changed, 3 insertions(+), 0 deletions(-) create mode 100644 README

  15. Игнорирование индексации $ git commit -a -m 'added new benchmarks' [master 83e38c7] added new benchmarks 1 files changed, 5 insertions(+), 0 deletions(-)

  16. Просмотр истории коммита $ git log commit 2f95134938d71665bdd40f9626fcb142c904d048 Author: Alexander Dmitriev <golostos@yandex.ru> Date: Wed Oct 5 01:32:13 2011 +0400 Updated index.html commit e2e24f36cffcba3705692d2602af3f3784934ecf Author: Alexander Dmitriev <golostos@yandex.ru> Date: Wed Oct 5 01:30:49 2011 +0400 Hello uses style.css $ git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short * 2f95134 2011-10-05 | Updated index.html (HEAD, style, master) [Alexander Dmitriev] * e2e24f3 2011-10-05 | Hello uses style.css [Alexander Dmitriev]

  17. Удаление файлов Если просто удалить, то файл становится измененным, но непроиндексированным $ rmgrit.gemspec $ git status # On branch master # # Changes not staged for commit: # (use "git add/rm <file>..." to update what will be committed) # # deleted: grit.gemspec # $ gitrmgrit.gemspec rm 'grit.gemspec' $ git status # On branch master # # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # deleted: grit.gemspec # После следующего коммита файл исчезнет и больше не будет отслеживаться.

  18. Перемещение файлов $ gitmvfile_fromfile_to $ gitmv README.txt README $ git status # On branch master # Your branch is ahead of 'origin/master' by 1 commit. # # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # renamed: README.txt -> README # Однако, это эквивалентно выполнению следующих команд: $ mv README.txt README $ gitrm README.txt $ git add README

More Related