Mam problemy, gdy nie mogę dodać plików do mojego repozytorium.
Używam GIT w systemie Windows, w Aptana Studio do programowania w języku Ruby.
Udało mi się przesłać kilka plików do GitHub, ale potem wszystko przestało działać. Na przykład mam nowy podfolder w moim katalogu głównym, w którym znajdują się 2 pliki ruby. Jeśli wywołam „git add.”, A potem „git status”, to ciągle mówi „work directory clean” i nie ma nic do zatwierdzenia.
Próbowałem "git add folder / myfile.rb" i nadal nic.
Czy ktoś ma pomysł, co mogę spróbować?
Odpowiedzi:
Znalazłem się w podobnej sytuacji jak plakat:
Ale miałem inne rozwiązanie niż to, co tutaj. Odkąd doszedłem do tego jako pierwszy, mam nadzieję, że zaoszczędzę innym trochę czasu.
Na podstawie powyższych odpowiedzi i tego, co widziałem w innym miejscu, typowe poprawki tego problemu to:
.gitignore
i.git/info/exclude
.gitkeep
jako symbol zastępczy, aby git śledził folder.W moim przypadku początkowo próbowałem utworzyć repozytorium git wokół istniejącego repozytorium (nie wiedząc, że tam jest). Usunąłem
.git
folder z tego repozytorium podrzędnego jakiś czas temu, ale nie zdawałem sobie sprawy, że jest za późno, a git już go śledził jako podmoduł . Możesz przeczytać więcej o tym, jak się zachowują i jak je usunąć tutaj , alegit rm --cached path_to_submodule
.źródło
git rm --cached name_of_former_submodule
a ścieżka otrzymała automatycznie.Aby dodać do możliwych rozwiązań dla innych użytkowników:
Upewnij się, że nie zmieniłeś wielkości liter w nazwie folderu w systemie Windows:
Miałem podobny problem, gdy folder o nazwie
Setup
kontrolowany przez Git i hostowany na GitHub, cały rozwój był wykonywany na komputerze z systemem Windows.W pewnym momencie zmieniłem folder na
setup
(małe litery S). Od tego momentu, kiedy dodałem nowe pliki do folderu instalacyjnego, były one przechowywane wsetup
folderze, a nie wSetup
folderze, ale myślę, że ponieważ tworzyłem na komputerze z systemem Windows, istniejącySetup
folder w git / github nie został zmieniony nasetup
.W rezultacie nie mogłem zobaczyć wszystkich plików
setup
w GitHub. Podejrzewam, że gdybym sklonował projekt na komputerze * nix, zobaczyłbym dwa folderySetup
isetup
.Więc upewnij się, że nie zmieniłeś wielkości liter folderu zawierającego na komputerze z systemem Windows, jeśli tak, zasugerowałbym:
setup-temp
git add -A
git commit -m "Whatever"
git add -A
git commit -m "Whatever"
źródło
Jeśli plik jest wykluczony przez
.gitignore
i mimo to chcesz go dodać, możesz wymusić to za pomocą:źródło
.gitignore
więc nie wiem dlaczego!) I to rozwiązało mój problem!Dziwne, ale całą noc walczyłem z gitem, aby dodać plik. Okazuje się, że został już dodany. Git nie odbierał moich zmian, ponieważ zmiany nie były zapisywane, ponieważ plik był niedostępny dla mojego konta, a moje IDE nie zgłaszało tego przez SSH.
Krótko mówiąc, sprawdź, czy nie masz go już dodanego do repozytorium.
źródło
git
mógłbym dodać wiadomość, jeśli którakolwiek z podanych ścieżek jest już w całości w repozytorium ... zaoszczędziłoby to co najmniej 13 osobom kilka minut.Dokładnie sprawdź
.gitignore
plik, aby upewnić się, że jest on widoczny dla Gita. Istnieje również plik,.git/info/exclude
który „wyklucza” pliki / katalogi z projektu, tak jak.gitignore
zrobiłby to plik.źródło
Właśnie miałem ten problem, a problem polegał na tym, że byłem w katalogu, a nie na najwyższym poziomie. Kiedy przeszedłem na najwyższy poziom, zadziałało.
źródło
git add ..
lub czegokolwiek wymaganego, aby osiągnąć poziom, na którym istniały moje zmiany, i to też by zadziałało. To tylko problem „gotcha” (mój błąd użytkownika).Najlepiej jest skopiować folder. Usuń oryginał. Sklonuj projekt z github, skopiuj nowe pliki do nowego sklonowanego folderu, a następnie spróbuj ponownie.
źródło
Miałem ten problem z pierwszym programem w folderze. Zrobiłem „git add”, a następnie „git commit”. „Stan git” zwrócił opisany błąd, tj. „nic do zatwierdzenia, katalog roboczy czysty”
Skończyło się na usunięciu pliku .git z folderu programu. Następnie wykonałem nowy git init, git add i git commit i zadziałało.
źródło
cd
do folderu dogit add
pliku.A co ze standardową procedurą:
Spowoduje to dodanie folderu i wszystkich jego plików za pomocą jednego polecenia.
Uwaga, git nie jest w stanie przechowywać pustych folderów.
Jeśli zatwierdzenie nie zadziałało, pierwszym miejscem, które powinieneś sprawdzić, jest prawdopodobnie
.gitignore
.źródło
Tutaj możesz znaleźć odpowiedź na ten sam problem:
w zasadzie w tym przypadku problemem było ignorowanie global_git
źródło
W moim przypadku problemem była włączona opcja SafeCrLf. Jestem na oknach z żółwiem. Po wyłączeniu opcji dodawanie plików nie było już problemem.
źródło
Innym problemem mogą być uprawnienia do plików. Spróbuj wystawić:
chmod 755 file1
źródło
Głupie rozwiązanie ode mnie, ale pomyślałem, że to nie jest dodawanie i wysyłanie nowych plików, ponieważ github.com nie wyświetlał plików, które właśnie wysłałem. Zapomniałem, że dodane przeze mnie pliki znajdują się w innej gałęzi. Pliki były w porządku. Musiałem przełączyć się z mojej głównej gałęzi na nową gałąź na githubie, aby je zobaczyć. Straciłem na tym kilka minut :)
źródło
Nie mogę (dla mnie) dodać pierwszego pliku do pustego repozytorium sklonowanego z GitHub . Musisz kliknąć link README, który GitHub sugeruje utworzyć. Po utworzeniu pierwszego pliku online możesz normalnie pracować z git.
Przydarzyło mi się to 17 listopada 2016 roku.
źródło
Wciąż jestem początkującym w git i to był tylko głupi błąd, który popełniłem, długa historia w jednym zdaniu. Nie byłem w podfolderze, jak zgłosił @gaoagong, ale na odwrót, w folderze nadrzędnym. Co dziwne, nie wpadłem na pomysł z tej odpowiedzi, zamiast tego pomysł pojawił się podczas testowania
git add --all
, zobacz długą historię poniżej.Przykład w szczegółach. Rzeczywiste repo:
Folder nadrzędny, który omyłkowo otworzyłem na poziomie nadrzędnym (w moim przypadku vscode_git):
Sklonowałem repozytorium, ale nad tym repozytorium miałem folder nadrzędny, który zamiast tego otworzyłem, a następnie próbowałem dodać plik repozytorium podfolderu
git add 'd:\Stack Overflow\vscode_git\vscode-java\.github\ISSUE_TEMPLATE.md'
, co po prostu nic nie zrobiło, bez komunikatu ostrzegawczego, agit status
następnie powiedziałem:Bieganie
git add --all
dało mi żółte notatki:Aby to naprawić, przywróciłem
git add --all
zgit rm --cached -r -f -- "d:\Stack Overflow\vscode_git\vscode-java" rm 'vscode-java'
:Następnie, po prostu otwierając właściwy folder repozytorium,
git znowu działał zgodnie z oczekiwaniami. Oczywiście folder „.git” folderu nadrzędnego można wtedy usunąć:
źródło
Możesz usunąć rekurencyjnie repozytorium zainicjowane przez git
$cd repo added $git rm -rf git
Możesz utworzyć oddzielną gałąź i połączyć moduły podrzędne z gałęzią główną Dokumentacja dotycząca modułów podrzędnych jest naprawdę przydatna Dokumentacja [https://git-scm.com/book/en/v2/Git-Tools-Submodules]
Zobacz także niektóre rozwiązania w [/programming/36236484/maintaining-a-git-repo-inside-another-git-repo]
źródło
Rozejrzałem się przez chwilę i okazało się, że zablokowałem port SSH, co spowodowało, że polecenie git add przestało działać. Skończyło się na zmianie pochodzenia za pomocą https za pomocą następującego polecenia: git remote set-url origin [url-to-git-repo]
źródło
Wiem, że to naprawdę stare pytanie, ale wiem, że może się to zdarzyć również komuś, okazuje się, że pracowałem z plikiem o nazwie AUX.JS i ta nazwa pliku jest zarezerwowana dla systemu Windows, spowodowało to następujący błąd
więc możesz usunąć plik lub zmienić jego nazwę, wtedy zadziała.
Końcowy wniosek, oprócz wszystkich innych poprawnych odpowiedzi, jeśli pracujesz na komputerze z systemem Windows, szukaj danych wyjściowych polecenia „git add”, może ono również dostarczyć dodatkowych informacji.
źródło
Miałem ten sam problem z repozytorium, które sklonowałem z SiteGround Git na mój komputer Mac. Świeżo sklonowane repozytorium zawierało listę zmienionych plików
git status
wymagały dodania do zatwierdzenia, ale próba dodania lub wypisania któregokolwiek z nich w ogóle nic nie zrobiła.Z jakiegoś powodu nastąpiły zmiany wielkości liter w nazwach plików (np. .Jpg -> .JPG). Rozwiązaniem było po prostu
git mv
nazwa pliku, której system operacyjny używał do nazwy używanej przez git, np .:źródło
Niedawno wystąpił ten problem na moim komputerze z systemem Windows 7. Używam interfejsu okna poleceń git. Rozwiązaniem było bardzo ostrożne przy rozróżnianiu wielkości liter w nazwach plików i katalogów podczas wykonywania polecenia git add. Chociaż git nie narzekał, gdy przypadek nie zgadzał się dokładnie z wielkością liter w systemie plików systemu Windows i nazwach katalogów, to również nie dodawał plików. Nie byłoby nic do popełnienia. Po wpisaniu nazw plików z dokładnie poprawną wielkością liter zostaną one dodane i wymienione pod zmianami, które mają zostać zatwierdzone zgodnie z zamierzeniami.
źródło
Miałem ten problem w programie Visual Studio, co zadziałało dla mnie: 1 - Kliknij prawym przyciskiem myszy dodany plik, który nie jest rozpoznawany przez git. 2- Wybierz „Dodaj wykluczony plik do kontroli źródła”
źródło
Miałem ten sam problem i to dlatego, że był program używający jakiegoś pliku, a git zgłasza błąd w tym przypadku, gdy Visual Studio zablokowało ten plik.
źródło
Wystąpił problem polegający na tym, że pliki z jednego folderu nie zostały dodane do kontroli źródła Github. Aby rozwiązać ten problem, usunąłem folder .git, który został utworzony w tym folderze.
źródło
Miałem podobny problem.
Problem polegał na tym, że w systemie Windows w indeksie plik został dodany w przypadku innym niż ten, który znajdował się w obszarze niestacjonarnym. Na przykład w indeksie plik miał nazwę,
xx.txt
a w obszarze nieokreślonym plik miał nazwęXx.txt
.Usunięto plik z nieprawidłowym przypadkiem z indeksu (
xx.txt
). Następnie udało mi się dodać plik z poprawną wielkością liter (Xx.txt
).źródło
Problem git nie dodał zmienionego pliku. Używając git bash, zmieniłem folder, oddzielając nazwę folderu podwójnym cudzysłowem. ls wyświetlał zawartość folderu poprawnie, ale git nie dodawał zmienionych plików.
Rozwiązanie Użyłem pojedynczego cudzysłowu do oddzielenia nazwy folderu.
np. CD „Nazwa folderu” stan git nic do zatwierdzenia, drzewo robocze czyste CD .. ls „Nazwa folderu” CD „Nazwa folderu” stan git zmodyfikowany: Zmodyfikowana nazwa pliku.bat
źródło
Wypróbowałem wszystkie powyższe, ale nic nie działało. Później jako administrator uruchomiłem wiersz poleceń wiersz i powtórzyłem wszystkie etapy, tj. Przemieszczanie -> zatwierdzanie -> zdalne dodawanie -> wysyłanie. Działało jak magia. Zmiany zostały odzwierciedlone w wybranym zdalnym repozytorium.
Mam nadzieję, że to pomoże :) Zachowaj spokój i programuj dalej.
PS Jestem nową pszczołą i staram się uczyć na błędzie.
źródło
Podobnie stało się ze mną, kiedy zmieniłem nazwę pliku między
Uppercase/Lowercase
. Tak więc zmiana nazwy pliku tymczasowego może rozwiązać problem.źródło
W takich przypadkach sprawdź reguły w globalnym pliku .gitignore i upewnij się, że twój folder nie pasuje do nich.
źródło
Oto jak zabrałem się do pracy:
Zacząłem od
wewnątrz katalogu ze wszystkimi plikami / folderami, które chciałem dołączyć.
Pobiegłem
NASTĘPNIE
Zrobiłem inny katalog poza źródłem, przeniosłem się do tego katalogu, a następnie sklonowałem istniejące repozytorium git za pomocą pliku http: //../../.git, jak określono na stronie w github.
Po sklonowaniu źródła (które zawierało tylko plik readme.md) skopiowałem wszystkie pliki ze starego katalogu do nowego z
Następnie dodałem ponownie, a następnie zatwierdziłem i odrzuciłem te zmiany.
Nie pytaj mnie dlaczego, ale tym razem zostały one przesłane na stronę github i pojawiły się jako pliki, do których masz dostęp w archiwum .zip.
źródło