Zpět na domů

Git bundle a SHA-256 pro přenos kódu

Článek popisuje metodu fixace přenosu zdrojového kódu pomocí Git bundle a SHA-256. Proces zahrnuje vytvoření dumpu repozitáře, výpočet hashu a integraci do podepsaného aktu. To zajišťuje dokazatelnost ve sporech pro vývojáře a objednatele.

Přesná fixace kódu: bundle + SHA-256 v aktech
Advertisement 728x90

Zajištění předání zdrojového kódu pomocí Git bundle a SHA-256

Při převodu výhradních práv k počítačovému programu se předávací protokoly často omezují na frázi „výsledek předán“ bez popisu obsahu. To vytváří riziko sporů: zadavatel může tvrdit, že funkce chybí, vývojář naopak. Git bundle a hash SHA-256 tento problém řeší tím, že fixují repozitář v jednom souboru s ověřitelným identifikátorem.

Vytvoření Git bundle: úplný výpis repozitáře

Git bundle zabalí celý repozitář – objekty, větve, tagy, historii – do jediného binárního souboru. Jde o soběstačný artefakt, který nezávisí na externích úložištích.

Příkaz pro vytvoření:

Google AdInline article slot
# Úplná záloha celého repozitáře (všechny větve, všechny tagy)
git bundle create projekt.bundle --all

Soubor projekt.bundle se klonuje standardně:

git clone projekt.bundle obnoveny-projekt

Výhody oproti kopírování .git:

  • Jeden soubor pro uložení, přenos, podepsání.
  • Úplná historie commitů, autorů, dat.
  • Nezávislost na Git hostingových službách.

Bundle fixuje stav v okamžiku vytvoření, vylučuje pozdější změny v původním repozitáři.

Google AdInline article slot

Kontrolní součet: jedinečný identifikátor

Jakýkoli soubor lze zahashovat pro získání neměnného otisku. SHA-256 je vhodnější: je odolný vůči kolizím, na rozdíl od MD5/SHA-1.

Příkazy pro Linux/macOS:

shasum -a 256 projekt.bundle

Pro Windows:

Google AdInline article slot
certutil -hashfile projekt.bundle SHA256

Výsledkem je 64znakový řetězec, například: a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e. I změna jediného bitu hash zcela změní.

Integrace do právních dokumentů

V protokolu uveďte:

Výsledek prací předán ve formě souboru projekt.bundle, kontrolní součet (SHA-256): a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e

Podepište elektronickým podpisem přes elektronickou datovou schránku, Portál občana (Státní klíč) nebo certifikační autoritu. Podpis musí obsahovat časové razítko a vizualizaci v PDF.

Elektronický podpis fixuje nejen protokol, ale i vložený hash, čímž váže dokument ke konkrétnímu bundle.

Ověření při sporech: technická verifikace

Při neshodách:

  • Expert vypočítá SHA-256 obdrženého projekt.bundle.
  • Porovná s hashem z protokolu.
  • Naklonuje bundle a analyzuje repozitář: commity, soubory, funkce.
# Obnovení pro expertizu
git clone projekt.bundle obnoveny-projekt
cd obnoveny-projekt
git log --oneline -10  # Poslední commity
git show HEAD:src/main.py  # Konkrétní soubor

Pokud hash souhlasí – kód je autentický. Nesouhlas ukazuje na záměnu.

Automatizace procesu

Skript pro rutinu:

#!/bin/bash
REPO_NAME=projekt
git bundle create ${REPO_NAME}.bundle --all
HASH=$(shasum -a 256 ${REPO_NAME}.bundle | cut -d' ' -f1)
echo "SHA-256: $HASH"
# Vložte $HASH do protokolu a podepište

V CI/CD přidejte krok při vydání. AI agenti mohou generovat protokoly s hashi automaticky.

Co je důležité

  • Bundle fixuje celý Git repozitář: historie, větve, tagy – beze ztrát.
  • SHA-256 zajišťuje kryptografickou integritu: kolize jsou v praxi nemožné.
  • Elektronický podpis s hashem činí protokol technicky prokazatelným u soudu.
  • Proces trvá <5 min: tři příkazy + podpis.
  • Rizika sporů jsou minimalizována: záměna bundle je odhalena okamžitě.

— Editorial Team

Advertisement 728x90

Číst dál