Skip to content
Menu
Witold Ciżmowski Witold Ciżmowski
  • knowledge
  • kontakt
  • o mnie
Witold Ciżmowski Witold Ciżmowski

Share Buttons

Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

Git – zaawansowane działania – część I

Posted on 8 czerwca 20179 czerwca 2017 by admin
Share this...
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

Słowem wstępu…

U nas co prawda wszyscy świetnie Gita znają, ale są pewnie i tacy, którzy niekiedy muszą bardziej zaawansowane rzeczy z nim zrobić. Artykuł ten jest wstępem do szkolenia jakie z Kamilem Ciesielskim będę organizował w pracy. Nazwaliśmy je "Git share #1". Tak, będą na nim różne sztuczki zaprezentowane ;-). Artykuł ten natomiast jest też jak widać częścią I, ponieważ w przyszłości będą omawiane różne kolejne, ciekawe tematy, będą kolejne części.  Po lekturze zapraszam do wzięcia udziału w Ankiecie, która jest na końcu. Pomimo iż mamy tylko rzeczy niebanalne omawiać, podam ogólne cechy Gita : Dobre wsparcie dla rozgałęzionego procesu tworzenia oprogramowania: jest dostępnych kilka algorytmów łączenia zmian z dwóch gałęzi, a także możliwość dodawania własnych algorytmów Praca off-line: każdy programista posiada własną kopię repozytorium, do której może zapisywać zmiany bez połączenia z siecią; następnie zmiany mogą być wymieniane między lokalnymi repozytoriami. Wsparcie dla istniejących protokołów sieciowych: dane można wymieniać przez HTTP(S), FTP, rsync, SSH. Efektywna praca z dużymi projektami: system Git według zapewnień Torvaldsa, a także według testów fundacji Mozilla, jest o rzędy wielkości szybszy niż niektóre konkurencyjne rozwiązania Każda rewizja to obraz całego projektu: w przeciwieństwie do innych systemów kontroli wersji, Git nie zapamiętuje zmian między kolejnymi rewizjami, lecz kompletne obrazy. Z jednej strony wymaga to nieco więcej pracy aby porównać dwie rewizje, z drugiej jednak pozwala np. na automatyczną obsługę zmian nazw plików  

 

 

 

 

 

 

 

 

 

 

Git-bash-prompt

Teraz trochę dla tych wszystkich, którzy pracują w trybie linii komend. Czyli o rewelacyjnym Git-bash-prompt. Jest to mały soft usprawniający nam działania, przede wszystkim wyświetlający status w repozytoriach. Pobieramy stąd: https://github.com/magicmonty/bash-git-prompt Instalacja: cd ~ git clone https://github.com/magicmonty/bash-git-prompt.git .bash-git-prompt –depth=1 następnie dodanie do ~/.bashrc: GIT_PROMPT_ONLY_IN_REPO=1 source ~/.bash-git-prompt/gitprompt.sh Nie będę się rozwodził z teorią, podam od razu różne przykłady wyświetlania stanu w linii komend, z objaśnieniami:

  • (master↑3|✚1): branch master, 3 pliki do commit, 1 jeden plik zmieniony ale niezaindekownay (ang.unstaged)
  • (status|●2): w branch o nazwie status, 2 pliki zaindeksowane (ang. staged)
  • (master|✚7…): branch master, 7 plików zmienionych, niektóre nieśledzone
  • (master|2✚3): branch master, 2 konflikty, 3 pliki zmienione
  • (master|⚑2): branch master, 2 pliki w schowku (ang.stash)
  • (experimental↓2↑3|): branch experimental; w branchu oczekują 3 commity, zdalnie 2 commity; repo czyste
  • (:70c2952|): w żadnym branchu; commit hash 70c2952; repo czyste

Symbole c.d.:

  • Symbole lokalne

     

     

     

     

    • : „czyste” repozytorium
    • ●n: n plików zaindeksowanych (ang.staged)
    • n: n plików w konflikcie merge
    • -n: n plików zaindeksowanych wayting for removal
    • ✚n: n plików zmienionych ale stan niezaindeksowane (ang.unstaged)
    • …n: n plików nie śledzonych (ang.untracked)
    • ⚑n: n plików w schowku (ang. stash)

Dostępne poprzez ustawienie GIT_PROMPT_SHOW_UPSTREAM=1

Skórki

Większość ustawień jest przechowywana w plikach skórek. Aby wybrać skórkę, ustaw zmienną GIT_PROMPT_THEME na odpowiednią nazwę nazwę : /themes without the extension .bgptheme ,np.: GIT_PROMPT_THEME=Solarized Jeśli ustawisz GIT_PROMPT_THEME na Custom, wówczas użyty zostanie .git-prompt-colors.sh z katalogu domowego. plik ten może zostać wygenerowany przy użyciu komendy: git_prompt_make_custom_theme [].

 

Kilka ciekawych komend.

Wyświetlenie pomocy Git

git help everyday  

Wyświetlenie spisu pomocników

git help -g  

Szybkie przełączenie na poprzedniego brancha

git checkout –  

Usunięcie branchy które zostały zmergowane z master

git branch –merged master | grep -v '^\*' | xargs -n 1 git branch -d  

Listowanie wszystkich branchy i ich ostatnich commitów

git branch -vv  

Cofnięcie commita poprzez utworzenie nowego

git revert  

Wyświetlenie wszyskich ignorowanych plików

git ls-files –others -i –exclude-standard  

Drzewko wersji

git log –pretty=oneline –graph –decorate –all  

Eksport brancha z historią do pliku

git bundle create  

 

Perełki w sieci.

Adresy, które powinniście znać: https://git-scm.com/book/pl/v1/Pierwsze-kroki-Wprowadzenie-do-kontroli-wersji https://github.com/git-tips/tips  

Dodaj komentarz Anuluj pisanie odpowiedzi

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

Tagi

alien (1) bootstrap (1) bootstrap 4 (1) branch (1) chmod (2) darmowe szablony (1) deb (1) dropbox (1) dystrybucje linux (1) ECDSA (1) ElasticSearch (1) elk (1) FielZilla install Linux (1) FileZilla (2) Filezilla install (1) gałąź (1) git (2) git extras (1) htaccess (1) http (1) https (1) ilość plików (1) kod (1) konwersje (1) Linux (9) Log stash (1) monitoring systemu (1) montowanie dysku (1) montowanie katalogu (1) montowanie zasobu (1) no password (1) opensuse (1) password (1) php (5) php 5.x to 7.x (1) php7 (1) php 7. (1) php 7.3 (1) php 7.x (2) pliki (1) prawa plików (1) programowanie (1) rpm (1) ssh (2) szablony stron www (1)

kategorie

  • Bez kategorii (4)
  • Cloud computing (2)
  • devops (6)
  • git (1)
  • Linux (34)
  • Nowe technologie (7)
  • Ogólne (28)
  • php (2)
  • PhpStorm (5)
  • Programowanie (23)
  • Projektowanie (5)
  • Web Dev (10)
  • Windows 10 (1)
  • Wszystkie wpisy (59)

Tagi

alien bootstrap bootstrap 4 branch chmod darmowe szablony deb dropbox dystrybucje linux ECDSA ElasticSearch elk FielZilla install Linux FileZilla Filezilla install gałąź git git extras htaccess http https ilość plików kod konwersje Linux Log stash monitoring systemu montowanie dysku montowanie katalogu montowanie zasobu no password opensuse password php php 5.x to 7.x php7 php 7. php 7.3 php 7.x pliki prawa plików programowanie rpm ssh szablony stron www
©2022 Witold Ciżmowski | Powered by WordPress & Superb Themes