Mam repozytorium, który jest widelec. W pewnym momencie musiałem połączyć zmiany z góry i zrobiłem to. Były pewne konflikty i naprawiłem je. Nie pamiętam dobrze, ale myślę, że rozciągam niektóre pliki podczas mocowania konfliktów. Po zakończeniu wszystkiego zaczynam stawić czoła coś dziwnego i nie mogę tego naprawić.

Problem polega na tym, że istnieje sześć plików zawsze modyfikowanych bez względu na to, co robię (checkout nie wpływa na nich). Myślałem, że może to naprawić, zdemontowałem mój widelec i refortował, ale kiedy klonuję i zmienić oddział z mistrza do gałęzi, tworzyłem żądania pull, które znów miałem ten sam problem.

  • Nie mogę kasować plików
  • Nie mogę kasować innego oddziału
  • Skrzyganie nie działa na widelce (pliki są tam jako zmodyfikowane)

Mogę dostarczyć więcej informacji w razie potrzeby

0
metmirr 15 wrzesień 2020, 21:42

1 odpowiedź

Najlepsza odpowiedź

Masz problem z czułością przypadku: Gdy Git próbuje kasować oba pliki foo i Foo na dysku, ponieważ system plików jest niewrażliwy, jeden z plików "wygrywa" i zastępuje zawartość drugiego.

Często: jeden z nazw plików jest "źle" i możesz się go pozbyć.

Jeśli tak jest twój przypadek: po prostu uruchom

git rm --cached Foo  # the variant with the incorrect casing

I sprawdź, czy plik na dysku jest nazywany poprawnym wariantem nazwy.

Chcesz również uzyskać poprawną treść dla swoich plików: widać, co przechowywano dla foo i Foo w HEAD za pomocą git show:

git show HEAD:foo
git show HEAD:Foo

# overriding the content of 'foo' with 'HEAD:Foo' :
git show HEAD:Foo > foo

# dumping into two temp files for comparison and cmd+C/cmd+V :
git show HEAD:foo > foo.tmp.lo
git show HEAD:Foo > Foo.tmp.up

Po uporządkowaniu, jak powinny być nazwane pliki w Git i co jest poprawna treść, możesz commit lub commit --amend.

1
LeGEC 16 wrzesień 2020, 11:50