Ich habe ein Git-Repo mit folgenden Ordnern:
_includes/
_layouts/
_plugins/
_posts/
_site/
_site-Ordner wird in der hinzugefügt .gitignore
Datei.
Kann ich jetzt ein Git-Repo im _site-Ordner mit einem anderen Remote-Repo für Push und Pull haben? Wird es Konflikte geben?
Ich habe Git-Submodule studiert, aber ich denke, es wäre in meinem Fall ein Overkill, wenn die oben genannte Methode funktionieren könnte.
Ich denke, es sollte funktionieren. Für das Haupt-Repo, _site
Ordner existiert nicht. Es spielt also keine Rolle, was Sie drin haben. Wenn du cd
hinein _site
Sie befinden sich auf diesem unabhängigen Repo.
Ja – ich habe es gerade probiert. Hier ist meine Befehlszeilensitzung:
$ mkdir temp
$ cd temp
$ git init
Initialized empty Git repository in /Users/mpdaugherty/temp/.git/
$ git add .
$ git status
# On branch master
#
# Initial commit
#
nothing to commit (create/copy files and use "git add" to track)
$ echo 'ignore' >> .gitignore
$ git add .
$ git commit -a -m 'first commit'
[master (root-commit) 17d293c] first commit
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 .gitignore
$ mkdir ignore
$ git status
# On branch master
nothing to commit (working directory clean)
$ cd ignore
$ git init .
Initialized empty Git repository in /Users/mpdaugherty/temp/ignore/.git/
$ echo 'Some text' > somefile.txt
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# somefile.txt
nothing added to commit but untracked files present (use "git add" to track)
$ git add .
$ git commit -a -m 'initial commit'
[master (root-commit) 107f980] initial commit
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 somefile.txt
$ cd ..
$ git status
# On branch master
nothing to commit (working directory clean)
12455600cookie-checkKann ich ein verschachteltes Git-Repo in einem von Git ignorierten Ordner haben?yes
Ich wäre überrascht, wenn es funktioniert, und selbst wenn es funktioniert, können Sie Überraschungen erleben, da es nicht dafür vorgesehen/konstruiert ist, zu funktionieren. Git-Submodule sind nicht übertrieben, nehmen Sie sich einfach etwas Zeit, um die Grundlagen zu verstehen 🙂
– KarlB
18. April 2012 um 8:16 Uhr
Wenn Sie sich auch von Submodulen fernhalten, verlieren Sie die Möglichkeit, dem Hauptrepo mitzuteilen, welche Revision
_site
ist bei– KarlB
18. April 2012 um 8:18 Uhr
“Sie verlieren die Fähigkeit, dem Hauptrepo mitzuteilen, in welcher Revision _site ist” Aber
_site
ist in.gitignore
also main repo weiß schon nichts über die_site
Mappe.– Andrew-Dufresne
18. April 2012 um 8:45 Uhr
Klar, aber das ist schon nicht optimal 🙂
– KarlB
18. April 2012 um 8:48 Uhr
Für das, was es wert ist, gibt es mindestens einen (seltsamen, aber gültigen) Anwendungsfall dafür: Wenn Sie die Dotfiles Ihres Home-Verzeichnisses in Git verfolgen möchten. Auf diese Weise pflege und repliziere ich meine Konfiguration auf verschiedenen Computern, ohne daran denken zu müssen, die Dotfiles jedes Mal, wenn ich sie bearbeite, in das/aus dem Repo zu verschieben. Mein Zuhause dir ist selbst ein Git-Reposodass ich einfach pushen/ziehen kann und alle meine Maschinen die neueste Konfiguration behalten. ALLE Dateien, die keine Anwendungskonfigurationsdateien sind, werden in meine Gitignores eingefügt, einschließlich aller meiner Entwicklungs-Repos.
– Neil Traft
18. Oktober 2021 um 16:38 Uhr