Difference between revisions of "Git"
(21 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
git - the stupid content tracker | git - the stupid content tracker | ||
+ | ==Инсталиране на git== | ||
+ | apt-get install git-all | ||
+ | ==Създаване на проект== | ||
+ | ===Папка на проекта=== | ||
+ | |||
+ | *В '''''home''''' директорията си създайте папка '''''email''''' | ||
+ | |||
+ | |||
+ | Тук ще се намират всички файлове на програмния проект. Както и служебните/конфигурационни файлове на проекта и на git. Последните най-вероятно имат "." за първи символ. Файловете и директориите, които започват с ".", в последствие няма да бъдат индексирани (за Linux тези файлове са скрити). | ||
+ | |||
+ | ===Програмен код=== | ||
+ | |||
+ | В папката създайте файлове '''''email.php''''' и '''''README''''' | ||
+ | touch email.php | ||
+ | touch README | ||
+ | |||
+ | |||
+ | ===Инициализация на проекта=== | ||
+ | Създаване на работните/конфигурационните файлове на git. | ||
+ | *Направете текуща папката на проекта и изпълнете | ||
+ | git init | ||
+ | |||
+ | Добавяне на програмните файловете, които ще бъдат следени от git | ||
+ | git add *.php | ||
+ | git add README | ||
+ | git commit -m "Нов проект" | ||
+ | |||
+ | '''''commit''''' - създаване "снимка" на текущото състояние на файловете / запис на промените | ||
+ | |||
+ | Редактиране на конфигурационния файл | ||
+ | git config --global --edit | ||
+ | Промяна автор и пощенски адрес | ||
+ | git commit --amend --reset-author | ||
+ | |||
+ | ===Направете следните промени=== | ||
+ | |||
+ | *добавяне на нов файл (test.php) | ||
+ | *редактирайте email.php | ||
+ | |||
+ | ===Маркиране на файла за завършена промяна (staging)=== | ||
+ | |||
+ | Пробвайте | ||
+ | git status | ||
+ | git diff | ||
+ | |||
+ | Маркиране на файла за завършена промяна | ||
+ | git add email.php | ||
+ | |||
+ | |||
+ | ===Записване на промените в нова версия (commit)=== | ||
+ | |||
+ | git commit | ||
+ | |||
+ | ===Разглеждане на историята=== | ||
+ | |||
+ | git log | ||
+ | |||
+ | === Възстановяване на файл (undoing) === | ||
+ | |||
+ | Връщане на файл от последния запис | ||
+ | git checkout -- README | ||
+ | |||
+ | Връщане на файл от редактиран преди 7 дни | ||
+ | |||
+ | git checkout 'master@{7 days ago}' -- README | ||
+ | |||
+ | Връщане на файл от определен commit | ||
+ | git checkout abcde README | ||
+ | |||
+ | |||
+ | ...On practical level you need to first find out when and how the file has changed to choose the right commit you want to use (abcde). To do that use git log file/to/restore or if the file changes a lot git log --abbrev-commit --pretty=oneline file/to/restore to see the history of this file only | ||
+ | |||
+ | == Клонове (Branches) == | ||
+ | |||
+ | HEAD | ||
+ | | | ||
+ | branch | ||
+ | master | ||
+ | | | ||
+ | commit -> commit -> commit -> commit -> commit | ||
+ | axax99 ayay11 ayay22 22ay11 zzay11 | ||
+ | | | ||
+ | commit -> commit | ||
+ | sdsd99 aysd11 | ||
+ | | | ||
+ | branch | ||
+ | testing | ||
+ | |||
+ | |||
+ | https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell#Creating-a-New-Branch | ||
+ | |||
+ | === Създаване на клон === | ||
+ | *Създаване на клон testing | ||
+ | git branch testing | ||
+ | |||
+ | Показалецът (пойнтерът) HEAD съхранява активния клон, този който редактираме в момента. '''''Създаването на клон НЕ го прави автоматично активен.''''' | ||
+ | |||
+ | === Преместване на друг клон=== | ||
+ | git checkout testing | ||
+ | |||
+ | |||
+ | === Движение по новия клон === | ||
+ | Променяте файл (email.php) добавяте втори получател и дата след subject-a. | ||
+ | git add . %преместване в stage на всички промени | ||
+ | git commit %запис на промените | ||
+ | |||
+ | === Връщане на стария клон === | ||
+ | git checkout master | ||
+ | |||
+ | Да се провери съдържанието на email | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | 2.4. | ||
*You modify files in your working directory. | *You modify files in your working directory. | ||
*You stage the files, adding snapshots of them to your staging area. | *You stage the files, adding snapshots of them to your staging area. | ||
Line 9: | Line 124: | ||
*saved changes are called commits. | *saved changes are called commits. | ||
+ | |||
+ | == Конфигуриране на git server == |
Latest revision as of 10:38, 6 December 2017
git - the stupid content tracker
Contents
Инсталиране на git
apt-get install git-all
Създаване на проект
Папка на проекта
- В home директорията си създайте папка email
Тук ще се намират всички файлове на програмния проект. Както и служебните/конфигурационни файлове на проекта и на git. Последните най-вероятно имат "." за първи символ. Файловете и директориите, които започват с ".", в последствие няма да бъдат индексирани (за Linux тези файлове са скрити).
Програмен код
В папката създайте файлове email.php и README
touch email.php touch README
Инициализация на проекта
Създаване на работните/конфигурационните файлове на git.
- Направете текуща папката на проекта и изпълнете
git init
Добавяне на програмните файловете, които ще бъдат следени от git
git add *.php git add README git commit -m "Нов проект"
commit - създаване "снимка" на текущото състояние на файловете / запис на промените
Редактиране на конфигурационния файл
git config --global --edit
Промяна автор и пощенски адрес
git commit --amend --reset-author
Направете следните промени
- добавяне на нов файл (test.php)
- редактирайте email.php
Маркиране на файла за завършена промяна (staging)
Пробвайте
git status git diff
Маркиране на файла за завършена промяна
git add email.php
Записване на промените в нова версия (commit)
git commit
Разглеждане на историята
git log
Възстановяване на файл (undoing)
Връщане на файл от последния запис
git checkout -- README
Връщане на файл от редактиран преди 7 дни
git checkout 'master@{7 days ago}' -- README
Връщане на файл от определен commit
git checkout abcde README
...On practical level you need to first find out when and how the file has changed to choose the right commit you want to use (abcde). To do that use git log file/to/restore or if the file changes a lot git log --abbrev-commit --pretty=oneline file/to/restore to see the history of this file only
Клонове (Branches)
HEAD | branch master | commit -> commit -> commit -> commit -> commit axax99 ayay11 ayay22 22ay11 zzay11 | commit -> commit sdsd99 aysd11 | branch testing
https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell#Creating-a-New-Branch
Създаване на клон
- Създаване на клон testing
git branch testing
Показалецът (пойнтерът) HEAD съхранява активния клон, този който редактираме в момента. Създаването на клон НЕ го прави автоматично активен.
Преместване на друг клон
git checkout testing
Движение по новия клон
Променяте файл (email.php) добавяте втори получател и дата след subject-a.
git add . %преместване в stage на всички промени git commit %запис на промените
Връщане на стария клон
git checkout master
Да се провери съдържанието на email
2.4.
- You modify files in your working directory.
- You stage the files, adding snapshots of them to your staging area.
- You do a commit, which takes the files as they are in the staging area and stores that snapshot permanently to your Git directory.
- saved changes are called commits.