wtorek, 21 sierpnia 2018

Git + Github jak krowie na miedzy czyli jak zacząć

Poziom bałaganu w wersjach, podwersjach, kopiach, smakach itd moich różnych skryptów w końu mnie przerósł i uznałem, że dojrzałem do używania gita i githuba. I oto co po 2 godzinach rozkminy udało mi się wykombinować na ich temat. Oczywiście trzeba się zarejestrować na github.com.
Zaczynam od utworzenia repozytorium na githubie, które reprezentuje mój projekt. Ja swój nazwałem hello
System zapoponował mi co mam z nim dalej zrobić:



Jako miłośnik command-line wybrałem bramkę nr 2 (można też nr 3, jesłi ktoś ma lokalne repozytorium gita i chce je wciśnąć w githuba) U mnie wersja nr 2 wygląda następująco:
Najpierw stworzyłem kilka plików

$ echo "# hello" >> README.md
$ git init
Initialized empty Git repository in /home/marcinek/prog/hello/.git/
$ vim hello.c
$ cat hello.c
#include <stdio.h>

int main()
{
    printf("Hello world!\n");
    return 0;
}
$ gcc -o hello hello.c
Projekt w zasadzie gotowy do zapakowania do Githuba:
 
$ git status
On branch master

No commits yet

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

    README.md
    hello
    hello.c


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

Na czerwono git zaznaczył pliki, które pojawiły się w lokalnym katalogu/repozytorium, które nie zostały do niego dodane. Żeby git raczył je śledzić, trzeba je dodać. Jeszcze nie wiem jak zrobić, żeby pliki dodawały się automatycznie, bo jakoś nie chce mi się wierzyć, żę Linus z palca dodał każdy z kilkuset tysięcy plików kernela, ale na razie robię to ze wspomnianego palca:

$ git add *
$ git status
On branch master

No commits yet

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

    new file:   README.md
    new file:   hello
    new file:   hello.c


Teraz jest już lepiej. Można zacomitować:

$ git commit -m "Pierwszy comit"
[master (root-commit) 11ac7dc] Pierwszy comit
 3 files changed, 8 insertions(+)
 create mode 100644 README.md
 create mode 100755 hello
 create mode 100644 hello.c

Ale to jeszcze nie poszło w świat. Jest teraz w gałęzi: master:

$ git status
On branch master
nothing to commit, working tree clean


No to można spróbować wypchnąć repozytorium w świat:

$ git remote add origin https://github.com/stecenator/hello.git
$ git push -u origin master
Username for 'https://github.com': stecenator    
Password for 'https://stecenator@github.com':
Counting objects: 5, done.
Delta compression using up to 12 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 2.56 KiB | 2.56 MiB/s, done.
Total 5 (delta 0), reused 0 (delta 0)
To https://github.com/stecenator/hello.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.



I gotowe!
A potem to już jest czysta zabawa:
  • Praca na wielu komputerach
  • Tworzenie rozgałęzień (branch)
  • Pull requesty (pewnie jest dużo ciekwiej, jak kilka osób pracuje nad jednym projektem)
  • Merge.
Może to kiedyś opiszę ? 

Brak komentarzy:

Prześlij komentarz