Pokud v rámci GitLabu nebo GitHubu nazvete větev s prefixem WIP a mezerou, půjde na tuto větev udělat merge request, ale nebude ji možné mergnout. WIP v tomto případě znamená Work In Progress. Tato vlastnost má výhodu v tom, že můžete ukázat aktuální stav ve své větvi tak, aby ostatní viděli vaše změny (diff), ale nechcete, aby tyto změny byly sloučeny (merge). Pokud byste vytvořili merge request a pouze tam přidali komentář, je možné, že by si ho někdo z kolegů nevšiml, a vaši práci mergnul.
Git
Získání informací o Git tagu
Tag v Gitu označuje určitý (důležitý) bod v historii. Často se otagovávají releasy. Seznam všech tagů získáte příkazem git tag
. Výsledek může být prázdný, nebo také může vypadat následovně.
Smazání souboru v Gitu
V tomto příspěvku si ukážeme, jak smazat z Gitu nechtěný soubor tak, aby po něm nezůstala (ani po komitu) žádná zmínka.
Nejdříve si vytvoříme adresář a začneme jej verzovat pomocí Gitu.
$ mkdir git-reset-pokus $ cd git-reset-pokus/ git-reset-pokus$ git init Initialized empty Git repository in /home/vitfo/Documents/gitpokus/git-reset-pokus/.git/ git-reset-pokus$ ll total 12 drwxrwxr-x 3 vitfo vitfo 4096 led 30 09:28 ./ drwxrwxr-x 3 vitfo vitfo 4096 led 30 09:28 ../ drwxrwxr-x 7 vitfo vitfo 4096 led 30 09:28 .git/
Jak je vidět na výpisu adresáře, přibyla nám po inicializaci skrytá složka .git. Vytvoříme prázdný soubor a komitneme změnu.
První nastavení gitu
Základní nastavení gitu je toto:
git config --global user.name "Moje Jméno" git config --global user.email mujmail@example.cz
Pokud například nebudete mít nastaven email, nebudete moci komitovat změny:
fatal: unable to auto-detect email address
Příkaz git config -l (nebo –list) vypíše aktuální nastavení (viz zde).
Více informací o nastavení gitu: git-scm.com/book/cs…mu-Git
Git a chyba: Filename too long unable to checkout working tree
Při clonování úložiště můžete dostat chybu s hláškou "Filename too long unable to checkout working tree"
. Řešením je úprava konfigurace Gitu:
git config --system core.longpaths true
V případě, že dostanete další chybu (používáte Windows a git bash) a to "error: could not lock config file C:\Program Files\Git\mingw64/etc/gitconfig: Permission denied"
je třeba spustit textový editor jako administrátor -> otevřít soubor .gitconfig a přidat
[core] longpaths = true
Smazání několika větví najednou v Gitu
Příkaz git branch
bez volby (nebo git brach --list
) vrátí existující větve.
git branch --delete vetev
Smaže určenou větev.
git branch --delete vetev_1 vetev_2 vetev_3
Smaže všechny zadané větve.
git branch --delete `git branch | grep -E 'feature/*'`
Smaže všechny větve, jejichž název začíná na „feature/“ V případě, že někteřá z větví není zcela mergnutá, nebude vymazána (ostatní ano). Pokud si jste jisti a opravdu chcete smazat všechny je třeba zadat:
git brach --delete --force `git branch | grep -E 'feature/*'`
Volbu –delete –force je možná nahradit za -D, která má stejný význam.
Zobrazení konfigurace gitu
Pro konfiguraci Gitu se používá příkaz git config
. Pomocí přepínače -l (–list) lze zobrazit nastavené volby v konfiguračním souboru (konfiguračních souborech).
git config -l user.name=vitfo user.email=vitfo@vitfo.cz core.autocrlf=true
Ikony na počítači s otazníkem
V případě, že se vám po instalaci či práci s Gitem (Git Bash), změní ikony v počítači tak, že obsahují otazník, je to pravděpodobně způsobeno složkou .git v adresáři uživatele (C:\Users\uzivatel). Složku .git stačí odstranit či přejmenovat a restartovat počítač.
Zdroj: stackoverflow.com…/git-for-windows-all-files-have-a-question-mark-on-the-icon
Commit failed with error v Idea IDE
Pokud při commitu změn pomocí Gitu v Idea IDE dostanete hlášku "Commit failed with error, 0 files committed, 186 files failed to commit ...",
tak jedním z důvodů může být to, že změny nebyly přidány (staged) pomocí git add
. Zkuste git status
, který vám řekne více. Pokud změny nebyly přidány tak dostanete následující výpis:
Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git checkout -- ..." to discard changes in working directory) modified: ...
Pak je tedy potřeba git add *
pro přidání všech souborů a následně by měl commit proběhnout v pořádku.
Změna posledního komitu v Gitu
V případě, že jste provedli uložení změn (commit) do svého lokálního úložiště (repository), stále je možné v tomto komitu provést změny, či jej vrátit zpět.
Změna textu zprávy (message) v posledním komitu
git commit --amend
Otevře textový editor, do něž je možné zadat změněný text.
git commit --amend -m "nový text"
Provede změnu textu bez otevření editoru.
Vrácení posledního komitu
Všechny změny provedené v komitu vrátí do stavu před komitem (stanou se z nich opět změny, které mají být komitnuty – „to be commited“)
git reset --soft HEAD~1
Smazání posledního komitu a všech změn, které byly v daném komitu provedeny
git reset --hard HEAD~1