Difference between revisions of "Git"

From Ilianko
 
(7 intermediate revisions by the same user not shown)
Line 31: Line 31:
  
 
'''''commit''''' - създаване "снимка" на текущото състояние на файловете / запис на промените
 
'''''commit''''' - създаване "снимка" на текущото състояние на файловете / запис на промените
 +
 +
Редактиране на конфигурационния файл
 +
git config --global --edit
 +
Промяна автор и пощенски адрес
 +
git commit --amend --reset-author
  
 
===Направете следните промени===
 
===Направете следните промени===
Line 37: Line 42:
 
*редактирайте email.php
 
*редактирайте email.php
  
===Маркиране на файла за завършена промяна (stage)===
+
===Маркиране на файла за завършена промяна (staging)===
  
 
Пробвайте  
 
Пробвайте  
Line 43: Line 48:
 
  git diff
 
  git diff
  
Маркиране на файла за завършена промяна (staging)
+
Маркиране на файла за завършена промяна
  git add ...
+
  git add email.php
  
  
===Записване на промените в нова версия===
+
===Записване на промените в нова версия (commit)===
  
 
  git commit
 
  git commit
Line 70: Line 75:
 
...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
 
...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
 
                                           HEAD
Line 78: Line 83:
 
                                           |
 
                                           |
 
  commit -> commit -> commit -> commit -> commit
 
  commit -> commit -> commit -> commit -> commit
  axax99    ayay11    ayay22 -> 22ay11    zzay11
+
  axax99    ayay11    ayay22   22ay11    zzay11
 
                                           |
 
                                           |
 
                                         commit -> commit  
 
                                         commit -> commit  
Line 84: Line 89:
 
                                                     |
 
                                                     |
 
                                                   branch
 
                                                   branch
                                                    test    
+
                                                  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
 +
 
 +
  
  

Latest revision as of 10:38, 6 December 2017

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 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.

Конфигуриране на git server