Git - pierwszy commit, pierwszy branch

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 374 razy

Na wcześniejszej stronie tego działu zainicjalizowany został system kontroli wersji i sprawdzony został jego status poleceniem git status. Teraz przydałoby się wprowadzić jakieś zmiany do projektu i spróbować je załączyć do struktury git-a. Dodam więc plik todo.txt w folderze projektu a następnie dodam go poleceniem:

git add todo.txt
i utworzę commit-a:
git commit -m "initial commit"

Teraz mogę utworzyć pierwszego branch-a o nazwie master:

git checkout -b master

a następnie z tego branch-a można utworzyć następnego o nazwie develop:

git checkout -b develop

a na samym końcu ostatniego już:

git checkout -b 001_index_html

Nie trudno jest zauważyć, że każde wywołanie polecenia checkout powoduje wyświetlenie:

Switched to a new branch '001_index_html'

Oznacza to, że zmieniony został branch, na którym obecnie się znajdujesz. Opcja -b jest konieczna aby utworzyć branch-a. Używając znanego polecenia status można się dowiedzieć, na którym branchu się obecnie znajdujesz:

git status
On branch 001_index_html
nothing to commit, working tree clean

Czas najwyższy by dodać jakiś konkretny plik np. index.html z następującą zawartością:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> </body> </html>

Plik można utworzyć w dowolnym edytorze tekstu, ja jednak zalecam skorzystanie z Visual Studio Code, które jest dostępne na każdy system operacyjny i świetnie się sprawdza. Sam plik powinien znaleźć się w folderze inicjalizacji git-a.

W celu załączenia zmian po raz kolejny należy użyć polecenia add:

git add index.html

Wynik działania tego polecenia można sprawdzić w następujący sposób:

git status
On branch 001_index_html

Changes to be committed:
  (use "git rm --cached ..." to unstage)

        new file:   index.html

Jak widać Git cwaniaczy i pokazuje co trzeba zrobić aby zdjąć plik z listy wybranych do załączenia. Sprawdźmy czym prędzej czy pan mądre gacie ma racje:

git rm --cached index.html
rm 'index.html'

a teraz:

git status

by się przekonać, że:

On branch 001_index_html

Untracked files:
  (use "git add ..." to include in what will be committed)

        index.html

nothing added to commit but untracked files present (use "git add" to track)

I znów git podpowiada co należy zrobić aby dodać plik ponownie! Zróbmy to ale w nieco bardziej przebiegły sposób:

git add *.html

I się dodało, ja nie blefuję! Możesz sprawdzić!

git status
On branch 001_index_html

Changes to be committed:
  (use "git rm --cached ..." to unstage)

        new file:   index.html

Zapewne na twe usta ciśnie się jedno pytanie: ale jak to?! Odpowiedź jest prosta, Git pozwala na używanie prostego filtrowania. Tak więc * to dowolny ciąg znaków a więc wszystkie pliki i foldery, które kończą się na .html zostaną załączone (choć tutaj tego raczej nie zauważysz).

Możliwe jest również zastosowanie znaku ? jako filtru. Ten znak oznacza pojedynczy dowolny znak. Dla przykładu:

git add i?dex.html

Załączy pliki o nazwie: index.html, imdex.html lecz nie załączy np: inddex.html.

Dobra! Bo jak tak dalej pójdzie to nigdy nie załączymy tych plików (a raczej pliku)! Czas na pierwszego commit-a:

git commit -m "Add index.html file"

Jeżeli nic nie zostało załączone coś takiego pokaże pan mądre gacie git:

On branch 001_index_html

Untracked files:
        index.html

nothing added to commit but untracked files present

Jeśli jednak załączony został to oczom twym ukazać się powinien taki komunikat:

[001_index_html (root-commit) b74f7f0] add index.html
 1 file changed, 12 insertions(+)
 create mode 100644 index.html

Sprawdźmy co status pokaże:

On branch 001_index_html
nothing to commit, working tree clean

Nothing to commit! Working tree clean! Mądre gacie Git powiedział!. I ja mu wierzę, i ja mu wierzę na słowo pisane w konsoli!