È sufficiente assicurarsi che il repository sappia dove si trova l'albero di lavoro e viceversa.
Per consentire al repository di sapere dove si trova l'albero di lavoro, impostare il valore di configurazione core.worktree
. Per consentire l'albero di lavoro sa dove è directory git è, aggiungere un file chiamato .git (non una cartella!) E aggiungere una linea come
gitdir: /path/to/repo.git
Dal git 1.7.5 il comando init imparato un'opzione in più per Questo.
È possibile inizializzare un nuovo repository separato con
git init --separate-git-dir /path/to/repo.git
Questa sarà inizializzare il repository git nella directory separata e aggiungere il file .git nella directory corrente, che è la directory di lavoro del nuovo repository .
Precedentemente a 1.7.5 si dovevano utilizzare parametri leggermente diversi e aggiungere il file .git da soli.
per inizializzare un repository separata i seguenti collegamenti di comando il lavoro-albero con il repository:
git --git-dir=/path/to/repo.git --work-tree=. init && echo "gitdir: /path/to/repo.git" > .git
La directory corrente sarà l'albero di lavoro e git utilizzerà il repository a /path/to/repo.git
. Il comando init imposterà automaticamente il valore core.worktree
come specificato con il parametro --git-dir
.
Si potrebbe anche aggiungere un alias per questo:
[alias]
initexternal = !"f() { git --work-tree=. --git-dir=\"$1\" init && echo \"gitdir: $1\" >> .git; }; f"
Usa controllo di versione git su una directory di sola lettura di lavoro
Con le conoscenze di cui sopra, è possibile anche impostare il controllo della versione Git per una directory di lavoro senza autorizzazioni di scrittura. Se si utilizza --git-dir
su ogni comando git o si esegue ogni comando dall'interno del repository (anziché la directory di lavoro), è possibile escludere il file .git e quindi non è necessario creare alcun file all'interno della directory di lavoro. Vedere anche Leos answer
Così come la tua idea di backup, questo può anche essere usato per mantenere i tuoi "dotfile" (.bashrc, .vimrc, ecc.) Nella directory home mantenendo la cartella .git altrove. – Philip
La risposta più semplice: http://stackoverflow.com/a/19548676/170352 (sepolto a causa di vecchi upvotes) –
Nel caso in cui non si abbia accesso in scrittura o non si voglia apportare alcuna modifica alla directory di lavoro (come l'aggiunta .git/ecc.), [questo] (http://stackoverflow.com/a/26746068/377366) la risposta in basso di Leo (anche se sepolta da vecchi upvotes) è la migliore. – KobeJohn