Moje repo jest SVN, a ja robię cały rozwój z git. Mamy standardowy układ, a ja zainicjowany mojego lokalnego repo z git svn init -s <url to repo>
W jaki sposób git-svn wie, do której gałęzi należy dcommit?
Oto mój workflow do pracy z branż:
# creates a new branch remotely
git svn branch new-branch-name
# switches to a branch or trunk locally
git reset --hard name-of-branch
git reset --hard trunk
# merge changes from trunk into a branch
git reset —hard name-of-branch
git merge trunk
git svn dcommit
To ostatnie polecenie powyżej będzie zatwierdzić zmiany nazwy-of-oddziału oddziału. Moje pytanie brzmi: jak git to wie? Kiedy robię git reset --hard foo
, co dokładnie się dzieje?
To może sprowadzić się do ogólnego pytania na temat gita. Za każdym razem, gdy próbuję znaleźć odpowiedź, nie rozumiem, czy integracja svn jest szczególnym przypadkiem, czy nie.
[1] "git-svn wyszuka drzewo zatwierdzeń dla zatwierdzeń przodków, które odpowiadają aktywnym gałęziom SVN, a następnie dcommit do tych." - Czasami się domyśla, że coś jest nie tak - czy jest jakiś sposób, aby to sprecyzować? [2] "tego typu rzeczy mogą rozgryźć twoją historię SVN" - więc historia będzie niejednoczesna, ale scalanie plików kodu powinno być w porządku, tak? –
hmm, strona man mówi, że '--commit-url' powinno być używane tylko do przełączania transportu, a" Używanie tej opcji do jakichkolwiek innych celów (nie pytaj) jest bardzo odradzane. " –
Jeśli chcesz określić konkretną gałąź do zatwierdzenia, po prostu zmień gałąź swojej funkcji na górze odpowiedniej gałęzi zdalnej w repozytorium Git. – cdhowie