Mam prywatny serwer z uruchomionym programem git 1.7
git init
folder nie tworzy gałęzi master. Bo kiedy to zrobię:
git branch
nic nie wymienia. Kiedy robię:
git --bare init
tworzy pliki. Kiedy piszę
git branch master
to mówi:
fatal: Not a valid object name: 'master'.
git branch newbranch
Odpowiedzi:
To prawda i oczekiwane zachowanie. Git nie utworzy
master
gałęzi, dopóki czegoś nie zatwierdzisz.Non-go
git init
utworzy również te same pliki, w ukrytym.git
katalogu w katalogu głównym twojego projektu.To znowu prawidłowe zachowanie. Dopóki nie zatwierdzisz, nie ma gałęzi master .
Nie zadałeś pytania, ale odpowiem na pytanie, które, jak zakładam, chciałeś zadać. Dodaj jeden lub więcej plików do katalogu i
git add
przygotuj zatwierdzenie. Następnie,git commit
aby utworzyć początkowe zatwierdzenie imaster
gałąź.źródło
.git/HEAD
i zmianęrefs/heads/master
dorefs/heads/main
, ale nie bez powodu , aby to zrobić. Po prostu zmień nazwę swojego oddziału po pierwszym zatwierdzeniu.git checkout -b <branchname>
do zmiany HEAD - nie musisz edytować pliku.Git tworzy gałąź główną po zakończeniu pierwszego zatwierdzenia. Nie ma po co odgałęzienia, jeśli w repozytorium nie ma kodu.
źródło
Po pierwsze, kiedy tworzysz „puste repozytorium”, nie będziesz z nim pracował (nie zawiera kopii roboczej, więc
git branch
polecenie nie jest przydatne).Otóż powodem, dla którego nie miałbyś
master
gałęzi nawet po zrobieniugit init
, jest brak zatwierdzeń: po utworzeniu pierwszego zatwierdzenia będziesz miałmaster
gałąź.źródło
git clone
aby zaoszczędzić konieczności robieniagit init
po stronie odbiornika.git checkout
jeśli chcesz, aby WC odzwierciedlało zawartość.git
katalogu (w którym pchnąłeś).Przed utworzeniem nowego oddziału musisz zatwierdzić przynajmniej jeden raz na master.
źródło