Używamy repozytorium git do przechowywania naszego projektu. Nasze oddziały odbiegają od pierwotnego. Ale teraz chcemy stworzyć mały nowy projekt do śledzenia dokumentacji. W tym celu chcielibyśmy utworzyć nową pustą gałąź, aby rozpocząć przechowywanie naszych plików, i chciałbym, aby inni użytkownicy sieci sklonowali tę gałąź.
Jak możemy to zrobić?
Próbowałem pewnych rzeczy, ale one nie działały.
$ mkdir proj_doc; cd proj_doc
$ git init
$ git add .
$ git commit -m 'first commit'
$ git br proj_doc
$ git co proj_doc
$ git br -d master
$ git push origin proj_doc
Wydaje się, że wypycha gałąź w porządku, ale kiedy wykonuję pobieranie lub pobieranie, pobiera informacje z innych gałęzi, a następnie otrzymuję dodatkowe pliki z innych projektów. Jakie jest najlepsze rozwiązanie?
git
branch
git-branch
fazineroso
źródło
źródło
submodule
w oryginalnym projekcie, np.docs/
Wskazując na inne repozytorium. Lub, jeśli chcesz scalić kod później, dodaj go jako zdalny..gitignore
pliki, a także stale przełączać się między dwoma katalogami głównymi (gałęziami). Więc jestem także za nowym podejściem do repo, w nowym folderze, z tymi samymi pilotami i pchaniem do innej gałęzi.Odpowiedzi:
Możesz stworzyć oddział jako sierota:
Spowoduje to utworzenie nowego oddziału bez rodziców. Następnie możesz wyczyścić katalog roboczy za pomocą:
i dodaj pliki dokumentacji, zatwierdź je i wypchnij do github.
Ciągnięcie lub pobieranie zawsze aktualizuje lokalne informacje o wszystkich zdalnych oddziałach. Jeśli chcesz tylko pobrać / pobrać informacje dla jednego zdalnego oddziału, musisz je podać.
źródło
git checkout --orphan <branch>
; Nie widzę żadnej pozycji <granch> wgit branch
.git checkout --orphan
można użyćgit reset --hard
do usunięcia pozostałych plików.git checkout --orphan <branch>
jest to, że nie ma jeszcze żadnych zatwierdzeń. Po pierwszym zatwierdzeniugit branch
drukuje nową gałąź.Prawidłowa odpowiedź to utworzenie gałęzi osieroconej. Wyjaśniam szczegółowo, jak to zrobić na moim blogu. (Zarchiwizowany link)
źródło
Utwórz pustą nową gałąź w ten sposób:
Jeśli twoje pliki proj-doc są już w zatwierdzeniu w jednym podkatalogu, możesz utworzyć nowy oddział w ten sposób:
co może być wygodniejsze niż
git branch --orphan
gdyby miało to zostawiają cię z partiigit rm
igit mv
ing zrobić.Próbować
i sprawdź, czy to pomoże w rozwiązaniu zbyt dużego problemu z pobieraniem. Również jeśli naprawdę chcesz pobrać tylko jedną gałąź, najbezpieczniej jest po prostu podać ją w wierszu poleceń.
źródło
git checkout --orphan new-branch; git reset --hard
xargs
?Jeśli twoja wersja git nie ma opcji --orphan, należy użyć tej metody:
Po wykonaniu pracy:
źródło
git clean
możesz usunąć pliki, których nie chcesz usuwać! Uruchomgit clean -ndx
najpierw, aby zobaczyć, jakie pliki zostaną usunięte, zanim uruchomisz go naprawdę z-f
opcją.Załóżmy, że masz
master
oddział z plikami / katalogami:Krok po kroku, jak zrobić pustą gałąź:
git checkout —orphan new_branch_name
ls -la |awk '{print $9}' |grep -v git |xargs -I _ rm -rf ./_
git rm -rf .
touch new_file
git add new_file
git commit -m 'added first file in the new branch'
git push origin new_branch_name
W kroku 2 po prostu usuwamy wszystkie pliki lokalnie, aby uniknąć pomyłek z plikami w nowym oddziale i tymi, które trzymasz w
master
oddziale. Następnie odłączamy wszystkie te pliki w kroku 3. Wreszcie, krok 4 i później pracujemy z naszą nową pustą gałęzią.Po zakończeniu możesz łatwo przełączać się między oddziałami:
źródło
Na podstawie tej odpowiedzi Hiery Nomus .
Możesz stworzyć oddział jako sierota:
Spowoduje to utworzenie nowego oddziału bez rodziców. Następnie możesz wyczyścić katalog roboczy za pomocą:
A potem po prostu zatwierdzasz gałąź z pustym zatwierdzeniem, a następnie wypychasz
źródło
Sprawdź tę dokumentację , ma jasne szczegóły na temat
źródło
znalazłem tę pomoc:
źródło