GIT – podstawy

  git

Windows zachowuje hasła do gita.

Aby to wyłączyć, trzeba najpierw usunąć hasła z menedżera poświadczeń, następnie odpalić konsolę w trybie administratora i klepnąć:

git config --edit --system

i usunąć linijkę:

helper = manager

wyjście: esc oraz :wq

https://stackoverflow.com/questions/37182847/how-to-disable-git-credential-manager-for-windows/37185202

Przyjemnie opisany sam początek

https://help.github.com/articles/set-up-git/
https://git-scm.com/docs/gittutorial

Stworzenie lokalnego repo

wskazujesz na katalog, klikasz „git bash here” i wklepujesz

git init

dodanie wszystkich plików w katalogu do indexu

$ git add .

a następnie commit

$ git commit

sprawdzanie statusu:

$ git status

Połączenie z GitHub

najpierw na githubie tworzysz repo, bez pliku readme itd. Powinna wyskoczyć informacja, jak postępować dalej, ale w razie czego:

touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/pgrab86/githubtest.git
git push -u origin master

Ściągnięcie gotowego repo z githuba

git clone URLPobranyZgithuba

Aktualizowanie plików

git add . //dodanie wszystkich, nowych plików
git commit -a //-a pomija konieczność manualnego dodania plików, które się zmieniły

Branches

git branch experimental //stworzenie brancha
git branch //wylistowanie wszystkich branchy
git checkout experimental //przejście do brancha
git merge experimental //będąc w danym branchu meegujesz zmiany z brancha z polecenia

git diff //w przypadku konfliktów, pokazuje gdzie te konflikty się znalazły
git branch -d experimental //usunięcie brancha
git branch -m new-branch-name //change name of current branch

git fetch //pobranie informacji o nowych branchach, następnie git nie będzie jeszcze widział w git branches jakiegoś nowego, ale można odpalić to poniżej
git checkout nowyBranch

Stash

git stash /zapisuje wersję roboczą
git stash list //wyświetla listę wersji roboczych
git stash apply //zatwierdza najnowszą wersję
git stash apply stash@{2} //zatwierdza drugą wersję w kolejności

Przestawanie obserwowania pliku

git rm --cached <file>

Usunięcie niecommitniętych zmian w plikach

git reset --hard

Pull z automatycznym rozwiązywaniem konfliktów na korzyść zmian z repo zewnętrznego

git pull -X theirs

Sprawdzenie zdalnych połączeń

git remote -v

W momencie, kiedy pracujemy na czyjejś wersji i tej osoby już np nie ma i nie będzie, trzeba zmienić remoty na własne, bo inaczej wszelkie pushe i pulle będą wymagały logowania się do konta poprzedniego właściciela

Wykrywanie bugów przez git bisect

https://git-scm.com/book/en/v2/Git-Tools-Debugging-with-Git#Binary-Search

Klucz SSH

Aby wygenerować klucz, wklep w terminalu:

ssh-keygen -t rsa -C "user1" -f "/c/Users/Pawel/.ssh/user1"

Następnie w katalogu z plikami do ssh utwórz plik config a w nim:

Host bitbucket.org
     HostName bitbucket.org
     User pgrab86
     IdentityFile /c/Users/Pawel/.ssh/pgrab86
     IdentitiesOnly yes

Jeśli ustawisz passphrase do klucza, to hasło będzie wymagane za każdym razem

Zawartość klucza publicznego wrzuć na bitbuckecie do settings > SSH keys

Ukrycie .git katalogu. hide .git

w .htaccess

RedirectMatch 404 /\.git