Zmieniam bazę w git, a jeden konflikt, który otrzymuję, to „oba dodane” - to znaczy dokładnie ta sama nazwa pliku została dodana niezależnie w mojej gałęzi i gałęzi, na której się zmieniam. git status
mówi mi:
# Unmerged paths:
# (use "git reset HEAD <file>..." to unstage)
# (use "git add/rm <file>..." as appropriate to mark resolution)
#
# both added: src/MyFile.cs
Moje pytanie brzmi, jak mam to rozwiązać? Czy muszę używać narzędzia do scalania, czy jest sposób, w jaki mogę to zrobić tylko z wiersza poleceń? Jeśli ja git rm src/MyFile.cs
, skąd git wie, którą wersję pliku chcę usunąć, a którą zachować?
git checkout --ours someFile
Może się wydawać, że nic nie zrobił podczas wykonywania statusu git. Tylko pamiętaj, aby zrobić to później.git add someFile
git status
Czasami wydaje mi się to mylące przy użyciu opcji
--theirs
i,--ours
aby określić, skąd pochodzi plik. Przez większość czasu mój będzie znajdował się w gałęzi, którą przebudowuję, o której mowa--theirs
!Możesz także użyć
git checkout <tree-ish> -- src/MyFile.cs
Gdzie
<tree-ish>
można zastąpić nazwę gałęzi lub identyfikator zatwierdzenia, który zawiera plik, który chcesz zachować.git checkout 6a363d8 -- src/MyFile.cs
git checkout my_branch -- src/MyFile.cs
git checkout HEAD -- src/MyFile.cs
źródło
Robiąc ...
git checkout --ours someFile
Może się wydawać, że nic nie zrobił podczas wykonywania statusu git.
Tylko pamiętaj, aby zrobić to później.
źródło