Usunięcie śledzenia folderu w gicie

2018-01-16 18:25
Błękitny Jeleń
0

Codeblocks generuje mi foldery typu bin i obj, więc chciałbym usunąć je z mojego repository. Dodałem do .gitignore:

# remove folders
bin/
obj/

a następnie na moim branchu wykonałem:

git rm -r bin
git rm -r --cached . 
git add .
git commit -m 'removed filed'
git push

i mimo tego folder bin nadal jest w repository. Jak się go pozbyć?

Pozostało 580 znaków

2018-01-16 18:54
0

Spróbuj

git rm -r --cached obj
git commit -m "remove obj"
git push
edytowany 2x, ostatnio: furious programming, 2018-01-16 19:06

Pozostało 580 znaków

2018-01-16 19:04
Błękitny Jeleń
0

Nadal to samo. Co więcej:
do .gitignore dodaję *.o
Do folderu dodaję plik test.o
Nastepnie robię git pull
Wpisując git status dostaję informacje, ze test.o nie jest śledzony, i mogę go śledzić uzywając git add test.o

No przecież spodziewałem sie, że gitignore ustawiam po to, by nie musieć ręcznie wyłączać z śledzenia plików. W taki sposób nie mogę użyć git add .

edytowany 1x, ostatnio: furious programming, 2018-01-16 19:06

Pozostało 580 znaków

2018-01-16 19:32
1

Jak się go pozbyć?

Zacznijmy od tego, że Git nie śledzi katalogów.
Usunąć trzeba pliki w nim zawarte.

do .gitignore dodaję *.o
Do folderu dodaję plik test.o
Nastepnie robię git pull
Wpisując git status dostaję informacje, ze test.o nie jest śledzony

Powinno działać. Pull nie jest potrzebne.

Pozostało 580 znaków

2018-01-17 10:59
Błękitny Jeleń
0

Ale nie działa!

Jeszcze raz:
Mam 2 branche: master oraz linux.
W branchu master utworzyłem plik .gitignore w którym dodałem bin/
Przełączyłem się na branch linux i wpisałem git merge master by pobrać plik .gitignore.
Chciałem usunąć folder bin z githuba, więc wpisałem git rm -r --cached bin
Następnie wpisałem git commit -am 'removed bin'
Po wpisaniu git push folder bin został usunięty z githuba.

Ale dlaczego jak teraz wpisuję git status to dostaję informację, że folder bin nie jest śledzony? Spodziewałem się, żę git będzie totalnie ignorował ten folder i nie będzie wspominał o śledzeniu go. Nie mogę teraz użyć git add ., bo znowu dodam ten folder do śledzenia.

Dlaczego ten git musi być tak skomplikowany? Szukam odpowiedzi już n-tą godzinę i nic z tego!

Pozostało 580 znaków

2018-01-17 11:21
0

Wpis z gitignore nie jest rozpoznawany. Próbowałeś bin/** ?

Dlaczego ten git musi być tak skomplikowany? Szukam odpowiedzi już n-tą godzinę i nic z tego!

PS. Wnioskuję, że niezbyt długo programujesz. Uwierz mi git nie jest skomplikowany. To na co natrafiłeś to nie jest problem. To jest problemiczek. Zacznij się przyzwyczajać ;).

edytowany 2x, ostatnio: Sarrus, 2018-01-17 14:22
@Sarrus: jest skomplikowany i troche nieprzemyslany pod katem user-friendly. Np. wzglednie niewinne komendy moga pozbawic usera zmian ktore w pocie czola tworzyl przez sostanie dni :) Ale to i tak najlepszy system kontroli wersji jaki znam. - WhiteLightning 2018-01-17 11:35
@WhiteLightning: Prawda, że przez nieuwagę można sobie zrobić kuku ;), ale zawsze masz refloga. Poza tym każde narzędzie da się zepsuć nieprawidłowo użytkując. - Sarrus 2018-01-17 14:34
W gicie najlepsze jest to, że praktycznie nie da się niczego stracić - no chyba, że usuniesz katalog i zaorasz dysk. - somekind 2018-01-18 01:07
@somekind: git checkout <sciezka do="do" pliku="pliku" nad="nad" ktorym="ktorym" sie="sie" pracowalo="pracowalo">. Druga rzecz -> repo czesto sa tak ustawione ze jak niektore rzeczy wypchniesz pushem to juz nie odkrecisz (np. tag w zlym miejscu). Przy czym to zalezy od konfiguracji. - WhiteLightning 2018-01-18 09:29
@WhiteLightning: Normalnie możesz tagi pushować z forcem, a że ktoś gdzieś tego zabronił, to inna sprawa. Jak zrobisz git checkout . to w wyrzucisz wszystkie zmiany nad jakimi pracowałeś. Pracuję na gitcie jakieś 4 lata i mi się to nigdy nie zdarzyło. - Sarrus 2018-01-18 09:43
@WhiteLightning: miałem na myśli zmiany, które zostały dodane do historii. Jeśli skasujesz sobie zmiany z dysku to jest wina Twoja, a nie systemu kontroli wersji. Równie dobrze mógłbyś ich nigdy nie zapisać. - somekind 2018-01-18 12:04

Pozostało 580 znaków

2018-01-17 11:44
0
Błękitny Jeleń napisał(a):

Mam 2 branche: master oraz linux.
W branchu master utworzyłem plik .gitignore w którym dodałem bin/
Przełączyłem się na branch linux i wpisałem git merge master by pobrać plik .gitignore.

Nie ma potrzeby łączenia obu gałęzi, tylko zrób to tak:

  1. Przełącz się na gałąź linux za pomocą git checkout linux
  2. Dodaj aktualny plik .gitignore z gałęzi master do indeksu gałęzi linux za pomocą git checkout master .gitignore
  3. Zatwierdź zmiany na gałęzi linux za pomocą git commit -m "Update .gitignore" (nie trzeba wykonywać git add .gitignore, bo plik jest już w indeksie)

Pozostało 580 znaków

2018-01-17 20:28
Błękitny Jeleń
0

Żadne z waszych rad nie działają. Spróbowałem od nowa:
Utworzyłem nowe repozytorium. Dodałem branch pc na którym dodałem nowy folder i plik tekstowy. Dodałem branch pc2 na który dodałem inny folder i inny plik tekstowy.

git checkout pc // pojawia sie nowy folder 'client'
git status // nothing to commit
git checkout pc2 // pojawia sie nowy folder 'server'
git status // nothing to commit
git checkout master // brak plikow/folderow
git status // nothing to commit
git merge pc // already up to date
git merge pc2 // already up to date 

Szału dostaję z tym gitem. To w ogóle nie ma sensu!

Spróbuj zrozumieć zamiast się denerwować. Problem najczęściej znajduje się między komputerem a krzesłem. - Sarrus 2018-01-18 09:29
Powolutku, weź sobie książkę i ucz się po kolei na spokojnie. - hauleth 2018-01-18 12:49

Pozostało 580 znaków

2018-01-17 22:02
2

Jeleniu,

chyba nie robisz commitów. Zrób tak. W dowolny pustym katalogu wykonaj następujące komendy:

  1. git init
  2. Utwórz pusty plik o nazwie aaa.txt
  3. git add aaa.txt
  4. git commit -m "Add aaa.txt"
  5. git branch linux
  6. Utwórz plik .gitignore zawierający jedną linię z ciągiem znaków bin/
  7. git add .gitignore
  8. git commit -m "Add .gitignore"
  9. git checkout linux
  10. git checkout master .gitignore
  11. git commit -m "Add .gitignore"

Teraz obie gałęzie posiadają ten sam plik .gitignore.

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0