Git system kontroli wersji – komendy

Przyszła pora na jakże znany i chyba lubiany system kontroli wersji czyli GIT. Dlaczego akurat ten? jest jednym z dwóch najpopularniejszych i jest darmowy! To bardzo praktyczne narzędzie, dzięki któremu można łatwiej pracować z projektami. Jak on działa? Upraszczając – działa jak rozbudowany system ctr+z tylko, że z nieograniczoną ilością cofnięć i podglądem zmian, które pamiętane są cały czas. Dopóki chcemy. Dopóki nie zabraknie nam miejsca na dysku. 🙂

GIT

System GIT jest standardowo zainstalowany na praktycznie każdym systemie operacyjnym linux. Na Mac’u również nie ma z nim problemu. Jeśli chodzi o Windowsa mamy tu możliwość korzystania z konsoli oraz programu okienkowego. Oczywiście w przypadku wcześniejszych systemów również dostępne są programy graficzne – jednak w nich użytkowanie konsoli jest bardziej praktyczne. To oczywiście kwestia gustu. My jednak zabierzmy się do pracy. Pokaże jak pracować w konsoli linuxowej. Jednak warto zauważyć, że wszystkie komendy programu git są takie same dla każdej konsoli czy Mac/Linux/Windows.

Zaczynamy!

System kontroli wersji git jest dostępny na stronie: git-scm.com. A nie jak niektórzy myślą github.com. To drugie to usługa, która udostępnia serwer git’a gdzie możemy przesyłać repozytoria i udostępniać je innym na swoim koncie. Jeśli zapłacimy (obecnie 7$ US dolar / miesiąc) będziemy mieli do dyspozycji kilka prywatnych repozytoriów do zapisu na ich przestrzeni serwerowej gita.

Jeśli mamy już zainstalowanego GIT’a – otwieramy konsole i tworzymy przykładowy projekt.

mkdir projekt-test1
mkdir projekt-test1/css
mkdir projekt-test1/js
mkdir projekt-test1/gfx
mkdir projekt-test1/bd

Następnie (czego nie będę już pokazywał) tworzymy pliki i umieszczamy je w odpowiednich katalogach: index.html (w głównym), screen.css w CSS, script.js w JS. W  plikach warto już na wstępnie np. w html uzupełnić kodem chociażby tym:

<!DOCTYPE html>
<html lang="pl"> 
<head>
 <meta charset="UTF-8">
 <meta name="description" content=""> 
 <title>Tytuł strony</title>
 <!--[if lt IE 9]>
 <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
 <![endif]-->
 
 <!-- CSS /-->
 <link rel="stylesheet" href="css/screen.css">
 
 <!-- JavaScript Library OutSite/-->
 <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js"></script> 
 <!-- Scripts Library Local /-->
 <script src="js/jquery.min.js"></script>
 <script src="js/scripts.js"></script>
<body>
<h1> Moja strona wersja 1.0.</h1>
</body>
</html>

Dodatkowo tworzymy sobie dwa pliki tekstowe o nazwie dupa.txt i README.txt w głównym katalogu projektu. Oczywiście możesz utworzyć katalog z dowolnym typem projektu z skryptami pythona, basha – nie koniecznie musi to być projekt strony www. Ja będę pracował na nim dlatego pokazuje strukturę na której będę pokazywał komendy.

Kiedy mamy już katalog projekt-test1 pełen różnych plików i rozpoczynamy pracę nad projektem test1, to jest właściwa pora by uruchomić git’a.

Pierwsza konfiguracja lokalna GIT’a

# określenie autora, maila i kolorowanie:

git config --global user.name "Dominik Piestrzynski"
git config --global user.email "twoj@email.com"
git config --global color.ui true

# utworzenie repozytorium – gdy jesteś w tym katalogu /projekt-test1

 git init

# sprawdzenie statusu

 git status

# dodanie do śledzenia

 git add nazwapliku.txt

# lub całego katalogu

 git add .

# usuwanie

 git rm --cached nazwapliku.txt

# dodawanie i zapisywanie do bazy

 git commit

# otwarcie notatnika systemowego i zapis notatek dot. zmian.
# lub dodanie i commit równocześnie.

 git commit -m "komentarz"
 git commit -am "komentarz"

# sprawdzenie logów

 git log
 git log --oneline
 git log --oneline --graph

Jak to wygląda w konsoli?

git-command-line

 

# przywracanie stanu z przed commit’a

# komenda hashCommitu — nazwapliku

 git checkout bc59d154362496cd73f1a01b341eb4829556bfd2 -- nazwapliku.txt

# lokalnie przed commitem – przywrócenie

 git checkout -- nazwapliku.txt

# podgląd różnicy / wprowadzonych zmian

 git diff

# po dodaniu do staged można zmiany sprawdzić:

 git diff --staged / --cached

# porownanie z konkretnym commitem

 git diff -cached fsdjfs8df78sd8fsdfsds -- nazwapliku.txt

Gałęzie

# sprawdzenie gałęzi

 git branch

# tworzenie gałęzi

# przejście do niej i utworzenie.

 git branch nazwa_galezi
 git branch -b nazwa_galezi

# zmiana gałęzi

 git checkout nazwa_galezi

# usuwanie gałęzi

 git branch -d nazwa_galezi

# Łączenie gałęzi

git merge nazwa_galezi

Ignorowane pliki w repozytorium

Jeśli chcemy by część plików nie była przesyłana do repozytorium musimy utworzyć plik .gitignore (w katalogu projektu) i umieścić tam nazwy ignorowanych plików dla przykładu:

*.txt
!README.txt

W powyższym przykładzie: będą ignorowane wszystkie pliki textowe prócz README.txt.

 

To wszystko co warto wiedzieć – jeśli chodzi o podstawowe komendy do pracy z GIT na lokalnym komputerze. W kolejnym wpisie pokaże jak to się robi z serwerem 🙂  Poznamy też graficzne opcje dla Linux’a i może na Windowsa!

 

5/5 - (6 votes)

Autor

Dominik

Zajmuje się tworzeniem stron internetowych i realizacją działań SEO na rzecz dużych i małych przedsiębiorstw. Pracowałem między innymi dla Semahead czy wydawnictwa HELION. Prowadzę szkolenia z zakresu HTML5 i SEO. Każdego dnia odkrywam nowe możliwości, tak by rozwijać Twój biznes w sieci.

3 komentarze do “Git system kontroli wersji – komendy”

  1. Czy da się edytować commity git – chodzi mi o ich „metadane” tak by zrobić sobie „historię” w git do „tyłu”

      1. Nie, po prostu chciałbym przenieść nie IT rzeczy do GIT – umowy. Bo jednak operowanie na umowie z 40 aneksami (umowa wieloletnia) + wersje negocjacyjne (by wiedzieć skąd się jaki zapis wziął), a najlepiej jeszcze zachować prawidłową stępkę czasu wymaga jednak trochę artystycznego podejścia do GIT.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *


The reCAPTCHA verification period has expired. Please reload the page.