Uživatelské nástroje

Nástroje pro tento web


git

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
git [2019/03/23 18:13] – [Checkout] djbuldoggit [2025/08/28 10:09] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 39: Řádek 39:
 git config [--global] user.email "first.last@example.com" git config [--global] user.email "first.last@example.com"
 </code> </code>
 +
 +===== Nastavení =====
 +
 +  * ukládání credential (cache = dočasně, store = trvale)
 +
 +  git config [--global] credential.helper "cache"
 +
  
 ===== Commit ===== ===== Commit =====
Řádek 83: Řádek 90:
 </code> </code>
  
 +==== Změny ====
 +
 +  * message u posledního commit lze změnit příkazem
 +
 +  git commit --amend
 +
 +  * pokud byl commit už odeslán na vzdálený repozitář, je třeba použít přepínač force ''-force-with-lease''
 +    * pokud už někdo navázal na tento commit, akce se neprovede
 +
 +  git push --force-with-lease [repository] [branch]
 ===== Vracení změn ===== ===== Vracení změn =====
  
Řádek 88: Řádek 105:
  
   * vracení změn přidaných do staging area   * vracení změn přidaných do staging area
 +  * zrušení všech necommitovaných lokálních změn
   * zrušení lokálních commitů   * zrušení lokálních commitů
  
 <code> <code>
 git reset [cesta] git reset [cesta]
 +git reset --hard
 git reset <rezim> [revize] git reset <rezim> [revize]
 </code> </code>
Řádek 108: Řádek 127:
 ==== Checkout ==== ==== Checkout ====
  
-  * revertování změn souborů+  * revertování lokálních změn souborů
   * přepnutí na jinou větev (vytvoření)   * přepnutí na jinou větev (vytvoření)
 +  * získání souboru z jiné větve
  
 <code> <code>
 git checkout [revize] [cesta] git checkout [revize] [cesta]
 git checkout [vetev] git checkout [vetev]
 +git checkout [vetev] [cesta]
 </code> </code>
  
Řádek 124: Řádek 145:
 ==== Revert ==== ==== Revert ====
  
-  * vrácení zpět na revizi vytvoření nového commitu+  * vrácení změn provedené zadaným commitem provedení nového commitu
  
 <code> <code>
-# Vrátí všechny změny provedené commitem a4f2bb8 +git revert [commit]
-git revert a4f2bb8+
 </code> </code>
  
-<code> 
-# Umožní upravit zprávu nového commitu 
-git revert -e a4f2bb8 
-</code> 
  
 ===== Odkládání změn ===== ===== Odkládání změn =====
Řádek 226: Řádek 242:
  
   * jsou podstatou gitu   * jsou podstatou gitu
-  * slouží jako kopie projektu+  * slouží jako kopie projektu (workspace)
   * hlavní větev se většinou označuje jako master   * hlavní větev se většinou označuje jako master
   * další větve vznikají libovolně, využívají se například pro   * další větve vznikají libovolně, využívají se například pro
     * merge requests (po akceptování merge do hlavní větve se zdrojová zahodí)     * merge requests (po akceptování merge do hlavní větve se zdrojová zahodí)
     * nezávislý vývoj nových feature     * nezávislý vývoj nových feature
 +  * dělí se na 
 +    * lokální - před prvním push se musí nastavit/založit odpovídající vzdálená větev
 +    * vzdálené - nelze přímo upravovat, ze vzdálené se vytvoří nejprve lokální větev
  
 ==== Informace ==== ==== Informace ====
Řádek 251: Řádek 270:
   * Vytvoří novou větev s názvem new_feature, neprovede ale přepnutí (checkout)   * Vytvoří novou větev s názvem new_feature, neprovede ale přepnutí (checkout)
  
-<code> +  git branch new_feature
-git branch new_feature +
-</code>+
  
   * Vytvoří větev a přepne se do ní (provede checkout)   * Vytvoří větev a přepne se do ní (provede checkout)
  
-<code> +  git checkout -b new_feature
-git checkout -b new_feature +
-</code>+
  
-  * Vymaže větev pouze, pokud pokud je mergnutá do jiné větve +  * Přepnutí do existující větve
  
-<code> +  git checkout master 
-git branch -d new_feature + 
-</code>+  * Vymaže lokální větev (pokud je mergnutá do jiné větve) 
 + 
 +  git branch -d new_feature 
 + 
 +  * Odstraní lokální reference na vzdálené větve, které byly na vzdálené straně odstraněny 
 + 
 +  git fetch --prune
  
   * Přejmenuje aktuální větev    * Přejmenuje aktuální větev 
  
-<code> +  git branch -m awesome_feature
-git branch -m awesome_feature +
-</code>+
  
-  * Přepnutí do existující větve 
- 
-<code> 
-git checkout master 
-</code> 
  
 ===== Tagy ===== ===== Tagy =====
Řádek 392: Řádek 406:
 git diff master..origin/master git diff master..origin/master
 </code> </code>
 +
 +  * zobrazení všech změn externím nástrojem (meld) mezi aktuální branch a zadanou
 +
 +  git difftool --dir-diff origin/moje-branch
 +
  
 ===== Externals ===== ===== Externals =====
Řádek 476: Řádek 495:
  
  
 +====== Workflow ======
 +
 +===== GitLab =====
 +
 +  * Ruby projekt pro projekty v Git
 +
 +  * Fork
 +    * celý projekt patří jednomu uživateli
 +    * pokud chce někdo provést změnu, vytvoří si fork celého projektu
 +    * následně vytvoří merge request do původního projektu ze svého
 +
 +  * Větve
 +    * projekt má více členů
 +    * hlavní větve jsou protected proti přímé editaci
 +    * pokud chce někdo provést změnu, vytvoří si novou větev z cílové
 +    * následně vytvoří merge request do původní větve
 +
 +===== Řešení konfliktů při merge =====
 +
 +<code>
 +VER_FROM=<version_from>
 +VER_TO=<version_to>
 +
 +git fetch origin
 +git checkout ${VER_FROM}
 +git pull
 +git branch -D merge-${VER_FROM}-to-${VER_TO}
 +git checkout -b merge-${VER_FROM}-to-${VER_TO} origin/${VER_TO}
 +git merge --no-ff ${VER_FROM}
 +git mergetool
 +
 +git commit -m "Resolve conflicts"
 +git push origin merge-${VER_FROM}-to-${VER_TO}
 +</code>
 +
 +  * dobrý mergetool (lze nastavit) je meld
 +    * levé okno je FROM
 +    * pravé okno je TO
 +    * prostřední je výsledek merge
 ====== Git HTTPS server ====== ====== Git HTTPS server ======
  
git.1553361233.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki