Dlaczego chcesz to zrobić? Możesz nazwać pusty zestaw „Fred”, ale nadal jest to pusty zestaw.
msw
Jeśli powiesz nam więcej o tym, dlaczego chcesz to zrobić, może nam to pomóc w znalezieniu dobrych odpowiedzi.
willoller
Wszystko, co zrobisz za pomocą git, będzie lokalne, dopóki nie wyślesz go do serwera GitHub za pomocą git push origin _branch_.
Joe
Odpowiedzi:
276
Co jest nie tak z tą --orphanopcją? Jeśli chcesz mieć gałąź, która jest pusta i nie ma historii, to jest droga do zrobienia ...
git checkout --orphan empty-branch
Następnie możesz usunąć wszystkie pliki, które będziesz mieć w obszarze przejściowym (aby nie zostały zatwierdzone):
git rm -rf .
W tym momencie masz pustą gałąź na swoim komputerze.
Zanim będziesz mógł wypchnąć do GitHub (lub dowolnego innego repozytorium Git), będziesz potrzebować co najmniej jednego zatwierdzenia, nawet jeśli nie zawiera on żadnej treści (tj. Pustego zatwierdzenia), ponieważ nie możesz przesłać pustej gałęzi
Cześć, po utworzeniu repozytorium github z pustą gałęzią nie pokazuje żadnej różnicy w plikach, gdy próbuję utworzyć żądanie ściągnięcia z innej gałęzi. Czy możesz mi powiedzieć, jak rozwiązać ten problem.
Raghavendra S
@RaghavendraS Zobacz moją odpowiedź. Miałem ten sam problem.
Greg M. Krsak
2
Być może niektórzy mają problem z tą zaakceptowaną odpowiedzią, ponieważ brakuje git add .kroku po usunięciu wszystkich plików, a przed zatwierdzeniem?
SCoyle
Podobało mi się piwo
El Ronnoco
13
--orphan jest dobry do lokalnego tworzenia pustej gałęzi, jednak aby go wypchnąć lub wchodzić w interakcję z innymi gałęziami, będziesz potrzebować zatwierdzenia.
Tworzenie nowego zatwierdzenia w gałęzi osieroconej nie jest dobrym pomysłem, ponieważ nie będzie można wchodzić w interakcje z innymi gałęziami. To znaczy
git checkout --orphan test
git commit --allow-empty -m "init test branch"
git merge master
fatal: refusing to merge unrelated histories
Zamiast tego powinieneś preferować tworzenie nowej gałęzi z pierwszego zatwierdzenia mastera. Jeśli zatwierdzenie nie jest puste, możesz dodać puste zatwierdzenie przed pierwszym, jak wyjaśniono w @houtanb.
Możesz również postępować zgodnie z instrukcjami tutaj, aby utworzyć pusty zatwierdzenie w katalogu głównym swojej mastergałęzi. Następnie po prostu stwórz swoją releasegałąź, w której znajduje się puste zatwierdzenie roota.
I dostałem to, czego chciałem, bez problemów z łączeniem / żądaniami ściągania. Musiałem tylko wybrać podstawową zmianę, z której utworzę drugą gałąź .
git push origin _branch_
.Odpowiedzi:
Co jest nie tak z tą
--orphan
opcją? Jeśli chcesz mieć gałąź, która jest pusta i nie ma historii, to jest droga do zrobienia ...Następnie możesz usunąć wszystkie pliki, które będziesz mieć w obszarze przejściowym (aby nie zostały zatwierdzone):
W tym momencie masz pustą gałąź na swoim komputerze.
Zanim będziesz mógł wypchnąć do GitHub (lub dowolnego innego repozytorium Git), będziesz potrzebować co najmniej jednego zatwierdzenia, nawet jeśli nie zawiera on żadnej treści (tj. Pustego zatwierdzenia), ponieważ nie możesz przesłać pustej gałęzi
Na koniec popchnij go do pilota i otwórz piwo
źródło
git add .
kroku po usunięciu wszystkich plików, a przed zatwierdzeniem?--orphan
jest dobry do lokalnego tworzenia pustej gałęzi, jednak aby go wypchnąć lub wchodzić w interakcję z innymi gałęziami, będziesz potrzebować zatwierdzenia.Tworzenie nowego zatwierdzenia w gałęzi osieroconej nie jest dobrym pomysłem, ponieważ nie będzie można wchodzić w interakcje z innymi gałęziami. To znaczy
Zamiast tego powinieneś preferować tworzenie nowej gałęzi z pierwszego zatwierdzenia mastera. Jeśli zatwierdzenie nie jest puste, możesz dodać puste zatwierdzenie przed pierwszym, jak wyjaśniono w @houtanb.
źródło
Możesz również postępować zgodnie z instrukcjami tutaj, aby utworzyć pusty zatwierdzenie w katalogu głównym swojej
master
gałęzi. Następnie po prostu stwórz swojąrelease
gałąź, w której znajduje się puste zatwierdzenie roota.źródło
Przyjęta odpowiedź doprowadziła mnie do pewnych problemów , więc zrobiłem to:
I dostałem to, czego chciałem, bez problemów z łączeniem / żądaniami ściągania. Musiałem tylko wybrać podstawową zmianę, z której utworzę drugą gałąź .
źródło