Git – force-with-lease

Używając Git możliwe jest wymuszenie wypchnięcia danych do zdalnego repozytorium: git push –force. Niestety jest to dosyć niebezpieczna opcja, która może nadpisać zmiany wprowadzone przez inną osobę. Dlatego lepszym rozwiązaniem jest force-with-lease.

Komenda

git push --force-with-lease

Przed czym zabezpiecza

force-with-lease zabezpiecza przed nadpisaniem komitów dodanych do zdalnej gałęzi przez innych użytkowników:

1. Deweloper pierwszy przełącza się na gałąź Branch
2. Deweloper pierwszy zatwierdza swoje zmiany lokalnie (commit)
3. Deweloper drugi przełącza się na gałąź Branch
4. Deweloper drugi zatwierdza swoje zmiany lokalnie (commit)
5. Deweloper pierwszy wypycha zmiany (push) do repozytorium zdalnego
6. Deweloper drugi (z jakiegoś nieznanego powodu) potrzebuje nadpisać zdalną gałąź i używa opcji force-with-lease. System Git wykrywa, że jego gałąź nie jest już aktualna w stosunku do gałęzi zdalnej i blokuje opcję jej nadpisywania. Teraz deweloper drugi musi najpierw dociągnąć zmiany wprowadzone przez dewelopera pierwszego aby później móc nadpisać zdalną gałąź.