Powrót do strony głównej

Git bundle i SHA-256 do przekazywania kodu

Artykuł opisuje metodę dokumentowania przekazywania kodu źródłowego za pomocą Git bundle i SHA-256. Proces obejmuje utworzenie zrzutu repozytorium, obliczenie hasha i integrację w podpisany akt. Zapewnia to dowodowość w sporach dla programistów i zleceniodawców.

Dokładna dokumentacja kodu: bundle + SHA-256 w aktach
Advertisement 728x90

Zabezpieczenie przekazania kodu źródłowego za pomocą Git bundle i SHA-256

Przy przekazywaniu praw autorskich do oprogramowania, akty często ograniczają się do sformułowania "rezultat przekazany", bez opisu zawartości. Stwarza to ryzyko sporów: klient może twierdzić o braku funkcjonalności, a deweloper – że wszystko zostało dostarczone. Git bundle i skrót SHA-256 rozwiązują ten problem, utrwalając repozytorium w jednym pliku z weryfikowalnym identyfikatorem.

Tworzenie Git bundle: pełny zrzut repozytorium

Git bundle pakuje całe repozytorium – obiekty, gałęzie, tagi, historię – w pojedynczy plik binarny. To samodzielny artefakt, niezależny od zewnętrznych repozytoriów.

Polecenie do utworzenia:

Google AdInline article slot
# Pełna kopia zapasowa całego repozytorium (wszystkie gałęzie, wszystkie tagi)
git bundle create projekt.bundle --all

Plik projekt.bundle klonuje się standardowo:

git clone projekt.bundle przywrocony-projekt

Zalety w porównaniu z kopiowaniem .git:

  • Jeden plik do przechowywania, przesyłania, podpisywania.
  • Pełna historia commitów, autorów, dat.
  • Niezależność od hostingu Git.

Bundle utrwala stan w momencie utworzenia, wykluczając późniejsze zmiany w oryginalnym repozytorium.

Google AdInline article slot

Suma kontrolna: unikalny identyfikator

Każdy plik można poddać haszowaniu, aby uzyskać niezmienny odcisk. SHA-256 jest preferowany: odporny na kolizje, w przeciwieństwie do MD5/SHA-1.

Polecenia dla Linux/macOS:

shasum -a 256 projekt.bundle

Dla Windows:

Google AdInline article slot
certutil -hashfile projekt.bundle SHA256

Wynik to 64-znakowy ciąg, np.: a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e. Nawet zmiana jednego bitu całkowicie zmienia skrót.

Integracja z dokumentami prawnymi

W akcie wskaż:

Rezultat prac przekazany w postaci pliku projekt.bundle, suma kontrolna (SHA-256): a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e

Podpisz podpisem elektronicznym przez EDI, ePUAP (podpis kwalifikowany) lub certyfikowany urząd. Podpis powinien zawierać znacznik czasu i wizualizację w PDF.

Podpis elektroniczny utrwala nie tylko akt, ale także osadzony skrót, wiążąc dokument z konkretnym bundle.

Weryfikacja w sporach: techniczna kontrola

W przypadku nieporozumień:

  • Ekspert oblicza SHA-256 otrzymanego projekt.bundle.
  • Porównuje ze skrótem z aktu.
  • Klonuje bundle i analizuje repozytorium: commity, pliki, funkcje.
# Przywracanie do ekspertyzy
git clone projekt.bundle przywrocony-projekt
cd przywrocony-projekt
git log --oneline -10  # Ostatnie commity
git show HEAD:src/main.py  # Konkretny plik

Jeśli skrót się zgadza – kod jest autentyczny. Brak zgodności wskazuje na podmianę.

Automatyzacja procesu

Skrypt do rutynowych zadań:

#!/bin/bash
NAZWA_REPO=projekt
git bundle create ${NAZWA_REPO}.bundle --all
SKROT=$(shasum -a 256 ${NAZWA_REPO}.bundle | cut -d' ' -f1)
echo "SHA-256: $SKROT"
# Wstaw $SKROT do aktu i podpisz

W CI/CD dodaj krok przy wydaniu. Agenty AI mogą automatycznie generować akty ze skrótami.

Co jest ważne

  • Bundle utrwala pełne repozytorium Git: historia, gałęzie, tagi – bez strat.
  • SHA-256 zapewnia kryptograficzną integralność: kolizje są praktycznie niemożliwe.
  • Podpis elektroniczny ze skrótem czyni akt technicznie dowodowym w sądzie.
  • Proces zajmuje <5 min: trzy polecenia + podpis.
  • Ryzyko sporów zminimalizowane: podmiana bundle wykrywana jest natychmiast.

— Editorial Team

Advertisement 728x90

Czytaj dalej