abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 14:22 | Nová verze

    HollowByte je zranitelnost typu Denial of Service (DoS) v kryptografické knihovně OpenSSL. Útočník může odesíláním škodlivého payloadu o velikosti pouhých 11 bajtů zaplnit paměť serveru. OpenSSL před ověřením dat vyhradí nepřiměřený blok paměti (až 131 KB). Server pak čeká na data, která nepřišla. Zranitelnost je opravena ve verzích OpenSSL 4.0.1, 3.6.3, 3.5.7, 3.4.6 a 3.0.21.

    Ladislav Hagara | Komentářů: 1
    včera 13:44 | Komunita

    Ve španělské A Coruñě probíhá GUADEC 2026, tj. letošní konference vývojářů a uživatelů desktopového prostředí GNOME. Videozáznamy přednášek jsou k dispozici na YouTube.

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Komunita

    Společnost Collabora ve spolupráci s Valve vyvíjí Holo Core, tj. port Arch Linuxu pro ARM64 procesory (AArch64), který bude pohánět VR headset Steam Frame. Pro testování Arch Linuxu pro AArch64 jsou k dispozici binární balíčky, zdrojové kódy i kontejner pro Docker nebo Podman.

    Ladislav Hagara | Komentářů: 2
    včera 13:00 | IT novinky

    Mikroprocesor Zilog Z80 byl oficiálně uveden na trh před 50 lety, tj. v červenci 1976. Výroba mikroprocesoru skončila v roce 2024.

    Ladislav Hagara | Komentářů: 1
    včera 02:55 | Bezpečnostní upozornění

    Výzkumníci ze společnosti ESET objevili 11 zapomenutých UEFI shim zavaděčů, které byly podepsány společností Microsoft, a které umožňují útočníkům obejít ochranu UEFI Secure Boot na většině zařízení. Microsoft je zneplatnil (přidal jejich hash do databáze dbx) v rámci aktualizace Patch Tuesday dne 9. června 2026. Uživatelé Linuxu mohou databází aktualizovat pomocí LVFS. Ověřit zneplatnění zavaděčů lze pomocí skriptu uefi-dbx-audit. Jedná se o CVE-2026-8863 a CVE-2026-10797.

    Ladislav Hagara | Komentářů: 4
    17.7. 16:55 | Zajímavý software

    pico-usb-wifi je open source firmware pro Raspberry Pi Pico W, který jej promění v USB Wi-Fi adaptér. Po připojení k počítači se objeví jako zařízení USB CDC-NCM.

    Ladislav Hagara | Komentářů: 1
    17.7. 16:00 | IT novinky

    Americká společnost Google ze skupiny Alphabet bude muset podle nových požadavků Evropské unie umožnit společnosti OpenAI i dalším konkurentům v oblasti umělé inteligence (AI) a internetových vyhledávačů přístup ke svým službám. Ve svém rozhodnutí o tom včera informovala Evropská komise (EK). Opatření má zajistit dodržování pravidel, jejichž cílem je omezit v EU tržní sílu velkých technologických firem. Google s tím nesouhlasí.

    … více »
    Ladislav Hagara | Komentářů: 0
    17.7. 04:55 | Komunita

    Nové verze webových prohlížečů Chrome a Firefox jsou vydávány každé 4 týdny. Aktuální verze Chrome je 150. Aktuální verze Firefoxu je 152. V březnu bylo oznámeno, že od září přejde Chrome na dvoutýdenní cyklus vydávání verzí. To by znamenalo, že Chrome v číslování verzí Firefox brzy přeskočí. Vývojáři Firefoxu proto také od září přecházejí na dvoutýdenní cyklus vydávání verzí. :-)

    Ladislav Hagara | Komentářů: 7
    17.7. 00:22 | Zajímavý software

    Microsoft Comic Chat (Wikipedie), tj. grafický IRC klient z devadesátek, který převáděl konverzace na IRC do podoby komiksových panelů, a který zpopularizoval font Comic Sans, je dnešním dnem open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 3
    16.7. 19:55 | Nová verze

    Byla vydána (𝕏) nová verze 26.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 26.7 je Xenial Xenops. Přehled novinek v příspěvku na fóru.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (7%)
     (2%)
     (17%)
     (30%)
     (5%)
     (6%)
     (2%)
     (15%)
     (24%)
    Celkem 2176 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník
    Štítky: není přiřazen žádný štítek

    git – jak udělat commit dílčí změny

    4.11.2021 13:30 | Přečteno: 1546× | Za vším hledej Linux | poslední úprava: 4.11.2021 13:32

    Potřeboval jsem po delším čase přejet nějaké soubory přes svůj skript djvutool, když tu na mě začala konzole opět pindat, že příkaz tempfile je deprecated, tak abych místo něj použil mktemp. Ok. Tak jsem skočil do repozitáře kde ho mám a zjistil, že jsem do něj už v minulosti udělal několik drobných změn, které jsem ale necommitoval. Byly to drobné úpravy, ale vzájmně nesouvisely. Tak jsem je chtěl commitnout samostatně.

    Nebylo to poprvé, co jsem někde něco ladil a při tom nadělal víc změn, které by zasluhovaly samostatný commit. Ostatně, víc jsem se o tom rozkecal v blogpostu na téma Počítačová archeologie. Zkrátka jsem se dopálil, že takhle už to dál nejde a obrátil se na Pavla Píšu, který má přeci jenom s gitem víc zkušeností než já.

    Zajímalo mne vyloženě konzolové řešení a tak mne překvapilo, že pro commitování takových dílčích změn používá git gui. Nicméně do háje mne neposlal, nýbrž odkázal na stránku Git Tools - Interactive Staging, kde bylo přesně to co jsem hledal.

    Jako obvykle, je to stupidně prosté a z mého pohledu dokonce mnohem lepší řešení než přes grafické klikátko. Takže to popíšu jen několika slovy a odkážu na ilustrační screenshot v příloze.

    1. Dílčí změny lze přidávat v interaktivním režimu, který se aktivuje volbou -i
      $ git add -i
    2. Pokud čekají na commit nějaké změny, spustí se automaticky příkaz [s]tatus, který vypíše přehled souborů ve kterých jsou nějaké změny co čekají na commit.
      Stiskem klávesy p, nebo odentrováním čísla 5, se spustí příkaz [p]atch, který opět vypíše přehled souborů, ve kterých jsou změny.

      Po uvedení pořadového čísla souboru a jeho odklepnutí, začne vypisovat dílčí rozdílové soubory, s tím, že se pokaždé zeptá co s tím. Na ilustračním screenshotu tak můžete vidět, že jsem přeskočil všechny změny, až na tu poslední, kterou jsem vložil do stage

      Před ukončením jsem příkazem [d]iff překontroloval, že změna připravená ve stage, obsahuje to co jsem chtěl commitnout. A protože vše bylo ok, mohl jsem interaktivní mód pro přidání změn ukončit příkazem [q]uit.
    3. Ještě jsem se ujistil, že se bude commitovat pouze část změn.
      $ git status
      On branch master
      Your branch is ahead of 'github/master' by 15 commits.
        (use "git push" to publish your local commits)
      
      Changes to be committed:
        (use "git restore --staged <file>..." to unstage)
              modified:   djvutool
      
      Changes not staged for commit:
        (use "git add <file>..." to update what will be committed)
        (use "git restore <file>..." to discard changes in working directory)
              modified:   djvutool
      
      Untracked files:
        (use "git add <file>..." to include in what will be committed)
              COPYING
              djvu_foreground_encoding_examples.txt
              djvuchanges.txt
              djvutosvg_poznamky.txt
              historie_djvu_wiki.txt
              wiki-djvu.txt
      
      
      A teprve pak přišel na řadu commit připravené stage
           

    Hodnocení: 67 %

            špatnédobré        

    Obrázky

    git – jak udělat commit dílčí změny, obrázek 1

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    4.11.2021 15:21 jiwopene | skóre: 31 | blog: Od každého trochu…
    Rozbalit Rozbalit vše Re: git – jak udělat commit dílčí změny
    Toto používám celkem často (nadělám změny třeba ve více nesouvisejících souborech a až potom je po kouskách commituji). Pokud ale třeba mám necommitované změny a chci provést jinou, nesouviseící, změnu, tak používám git stash (uložení rozpracovaného stavu na zásobník, vrátí se to git stash pop) a commituji potom.
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky.
    4.11.2021 16:36 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: git – jak udělat commit dílčí změny
    Tak tohle je určitě dobré při práci. Mně se častěji stává – a netýká se to zrovna programování zdrojového kódu – že něco dělám, přijde někdo kdo mne vyruší s tím, že mám jít udělat něco jiného a pak už ten commit neudělám protože se k tomu nedostanu, nebo na to zapomenu. Když o nic nejde, commitnu to pak později i s jinými změnami. Také se mi nechce commitovat každou dílčí změnu. Dřív jsem to takhle dělal ale pak už jsem se ztrácel v tom, která změna byla ok, a která se ukázala jako slepá cesta.
    4.11.2021 18:11 podlesh
    Rozbalit Rozbalit vše Re: git – jak udělat commit dílčí změny
    Proto zásadně používám PS1 se scriptem zobrazujícím stav git repository a pokud někde vidím že je cokoliv necommitnuto, tak nedělám další změny než provedu commit. I kdyby to mělo být jenom git commmit -a -m 'WIP'
    4.11.2021 20:19 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: git – jak udělat commit dílčí změny
    Bohužel, ne vždy realizovatelné. Nejsem vývojář co by se věnoval pouze prgání.
    4.11.2021 20:30 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: git – jak udělat commit dílčí změny
    Já se stashování odnaučil a radši udělám nějaké WIP commity a pak si to přeházim/transformuju rebasem do správný podoby. Přijde mi, že Super jsou na tohle fixup commity (+ následně rebase --autosquash), akorát si člověk musí dát pozor, aby neopakoval stejnou commit message vícekrát, protože fixup commit se váže na commit message, ne na hash (což mi přijde jako blbý rozhodnutí, ale nic s tim neudělám).

    git add -i je určitě fajn, ale git gui umožňuje stagovat s vyšší granularitou (jednotlivé řádky).
    4.11.2021 20:30 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: git – jak udělat commit dílčí změny
    *Přijde mi, že stash zbytečně neumožňuje běžné operace jako branching atd.
    4.11.2021 23:05 xxx
    Rozbalit Rozbalit vše Re: git – jak udělat commit dílčí změny
    protože fixup commit se váže na commit message, ne na hash (což mi přijde jako blbý rozhodnutí, ale nic s tim neudělám).
    Protoze to ma implikace, ze pak musis umet ty fixup commity mit svazane s tim fixovanym, i kdyz udelas treba rebase bez toho autosqashe, atp. A muj tip je, ze kdyz se tim smerem vydas, tak skoncis zpatky ve stavu, ze ktereho si vysel. Ze nejjednodusi (mozna i jedinny) zpusob, jak toho dosahnout, je normalni commit se specialnim jmenem.

    A trochu se obavam, ze neco podobneho by se ti stalo i s tim zasobnikem, kde by to vlastne bylo to same akorat by to byla fixup vetev.
    5.11.2021 11:32 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: git – jak udělat commit dílčí změny
    Protoze to ma implikace, ze pak musis umet ty fixup commity mit svazane s tim fixovanym, i kdyz udelas treba rebase bez toho autosqashe, atp.
    Rebase by to mohl celkem snadno umět aktualizovat, stejně už IIRC upravuje časový razítko u všech commitů... A u nějakýho jinýho způsobu úpravy historie by to bylo holt na tobě.

    Ale souhlasim, že to je implementačně/koncepčně složitější...
    5.11.2021 09:31 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: git – jak udělat commit dílčí změny
    akorát si člověk musí dát pozor, aby neopakoval stejnou commit message vícekrát

    Celý commit message stejný, to je při rozumně napsaných prakticky nemožné, pokud nejde o cherry pick. I úplně stejný subject je na pováženou, pokud je to v jedné sérii.

    5.11.2021 11:36 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: git – jak udělat commit dílčí změny
    U finálních, slušně naformátovaných samozřejmě jo, měl jsem na mysli situaci, kdy mam rozdělanou nějakou práci lokálně a dělám commity á la "WIP něco něco", kde typicky tam dám jenom hodně stručnou sumarizaci, třeba jméno modulu/funkce apod., takže když pak pokračuju v tom samým, commit message má tendenci být stejný... takže tam dávám třeba číslo nebo něco...
    cezz avatar 4.11.2021 23:58 cezz | skóre: 24 | blog: dm6
    Rozbalit Rozbalit vše Re: git – jak udělat commit dílčí změny
    Ja tieto ciastocne commity vyuzivam velmi casto - napriklad na to, ked chcem oddelit funkcne zmeny v kode od uprav citatelnosti do samostatnych commitov. Lahsie sa potom robi review PR.

    A musim povedat, ze v tomto smere je Magit v Emacse naozaj magicky. Clovek poste v diff view vyznaci konkretne zmeny a stlaci stage. V tomto konkretnom pripade by bol napriklad problem s git add -i commitnut samostatne len niektore riadky z prveho hunku a asi by bolo treba pouzit git add -e, co uz zacina byt trochu komplikovane.

    Neverim, ze niekto kto pouziva Emacs este o Magite nepocul, ale ak niekto uvazuje Emacs skusit, tak uz len pre ten Magit by som odporucal tomu dat sancu napriklad s niecim ako Doom Emacs.
    Computers are not intelligent. They only think they are.
    5.11.2021 08:00 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: git – jak udělat commit dílčí změny
    Musím se přiznat, že jakkoli pro tyhle účely většinou preferuji textové rozhraní, "git add -i" mi k srdci nepřirostl a i když jsem se mu párkrát snažil dát šanci, "git gui" je z hlediska uživatelského komfortu úplně jiná liga.
    5.11.2021 08:19 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: git – jak udělat commit dílčí změny
    Vzhledem k tomu že 90% času tohle potřebuji řešit na vzdáleném stroji s minimalistickou instalací, je pro mne cokoliv závislé na okením prostředí nepoužitelné.

    Stejně tak nemám zapotřebí řešit jednotlivé řádky. Důležitý je pro mne commit komplexní změny. Situace že by se mi těsně vedle sebe sešly dvě různé věci, tak že by je bylo nutné separovat po řádcích, je pro mne velmi nepravděpodobné.
    5.11.2021 09:25 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: git – jak udělat commit dílčí změny
    90% času tohle potřebuji řešit na vzdáleném stroji s minimalistickou instalací

    Pak je asi na místě otázka, jestli je rozumné ten git spouštět přímo tam. Já jsem třeba poměrně dlouho z lenosti z domova používal git na počítači v práci (včetně "git gui" přes "ssh -X") a teprve to, že jsem dočasně musel používat jiný VPN endpoint, a s tím související nárůst latencí mne donutil zařídit si to tak, abych tohle dělat nemusel. S odstupem času je to samozřejmě praktičtější, ale kdyby mne k tomu nedonutily okolnosti, nejspíš bych to tím krkolomným způsobem dělal dodnes.

    Situace že by se mi těsně vedle sebe sešly dvě různé věci, tak že by je bylo nutné separovat po řádcích, je pro mne velmi nepravděpodobné.

    Mně se to naopak děje docela často. Což ale možná souvisí s…

    Důležitý je pro mne commit komplexní změny.

    Commit by právě pokud možno moc komplexní být neměl. Naopak, měla by to být co nejmenší změna, která sama o sobě ještě dává smysl. Jak kdysi podotkl jeden maintainer, pokud píšete commit message a chystáte se začít větu slovem "Also", je to obvykle znamení, že byste měl commit rozdělit.

    5.11.2021 11:19 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: git – jak udělat commit dílčí změny
    Pak je asi na místě otázka, jestli je rozumné ten git spouštět přímo tam.
    To teda rozhodně je ;-) Je to nejrychlejší způsob, jak zjistit jestli, nebo kdy někde nastala nějaká nežádoucí změna. Často toho využívám při dohledávání změn realizovaných někdy v minulosti.
    5.11.2021 11:22 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: git – jak udělat commit dílčí změny
    A komplexní znamená několik souvisejících změn na různých místech. Ne sadu různých, vzájemně nesouvisejících změn. Právě o tom, jak se tomu vyhnout, je tenhle blogpost.
    dolik.rce avatar 5.11.2021 18:00 dolik.rce
    Rozbalit Rozbalit vše Re: git – jak udělat commit dílčí změny
    Vida, git add -i jsem ani neznal. Osobně používám git add -p (případně i s cestou), který spustí rovnou tu interaktivní "patchovací" část.
    7.11.2021 10:55 ttttttttttt
    Rozbalit Rozbalit vše Re: git – jak udělat commit dílčí změny
    Používám https://github.com/bigH/git-fuzzy založený na fzf, výborný pokud jsou změny v různých souborech. Pro stejný soubor pak taky interaktivní git.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.