Domanda

Esecuzione del comando git clone git@github.com:whatever crea una directory nella mia cartella corrente denominata qualunque cosa e rilascia il contenuto del repository Git in quella cartella:

/httpdocs/whatever/public

Il mio problema è che ho bisogno che i contenuti del repository Git siano clonati nella mia directory corrente in modo che appaiano nella posizione corretta per il server web:

/httpdocs/public

So come spostare i file dopo aver clonato il repository, ma sembra che questo rompa Git e mi piacerebbe poterlo aggiornare semplicemente chiamando git pull.Come posso fare questo?

È stato utile?

Soluzione

Opzione A:

git clone git@github.com:whatever folder-name

Ergo, per right here utilizzare:

git clone git@github.com:whatever .

Opzione B:

Sposta anche la cartella .git. Nota che la cartella shopt -s dotglob è nascosta nella maggior parte dei file explorer grafici, quindi assicurati di mostrare i file nascosti.

mv /where/it/is/right/now/* /where/I/want/it/
mv /where/it/is/right/now/.* /where/I/want/it/

La prima riga prende tutti i file normali, la seconda riga prende i file di punti. È anche possibile farlo in una riga abilitando dotglob (cioè -fn) ma questa è probabilmente una cattiva soluzione se stai ponendo la domanda a cui risponde questa risposta.

Meglio ancora:

Conserva la tua copia di lavoro altrove e crea un collegamento simbolico. In questo modo:

ln -s /where/it/is/right/now /the/path/I/want/to/use

Nel tuo caso questo sarebbe qualcosa del tipo:

ln -sfn /opt/projectA/prod/public /httpdocs/public

Che può essere facilmente modificato per testarlo se lo desideri, ad es .:

ln -sfn /opt/projectA/test/public /httpdocs/public

senza spostare i file. Aggiunti -f nel caso in cui qualcuno stia copiando queste righe (-n è force, <=> evita alcune interazioni spesso indesiderate con collegamenti già e non esistenti).

Se vuoi solo che funzioni, usa l'opzione A, se qualcun altro guarderà quello che hai fatto, usa l'opzione C.

Altri suggerimenti

L'esempio che penso che molte persone chiedano questa domanda è questo. Se sei in nella directory in cui vuoi scaricare il contenuto del repository git, esegui:

git clone git@github.com:whatever .

Il ". " alla fine specifica la cartella corrente come cartella di pagamento.

Vai nella cartella. Se la cartella è vuota, quindi:

git clone git@github.com:whatever .

altro

git init
git remote add origin PATH/TO/REPO
git fetch
git checkout -t origin/master

Clonazione del repository Git di base

Clonare un repository con

git clone [url]

Ad esempio, se vuoi clonare la libreria Git della Open Framework Drupal della Stanford University chiamata open_framework, puoi farlo in questo modo:

$ git clone git://github.com/SU-SWS/open_framework.git

Ciò crea una directory denominata open_framework (nella posizione corrente del file system locale), inizializza una directory .git al suo interno, estrae tutti i dati per quel repository ed estrae una copia funzionante dell'ultima versione. Se vai nella directory open_framework appena creata, & # 8217; vedrai i file di progetto lì dentro, pronti per essere lavorati o usati.

Clonazione di un repository in una cartella locale specifica

Se vuoi clonare il repository in una directory chiamata qualcosa di diverso da open_framework, puoi specificarlo come la prossima opzione da riga di comando:

$ git clone git:github.com/SU-SWS/open_framework.git mynewtheme

Questo comando fa la stessa cosa di quello precedente, ma la directory di destinazione si chiama mynewtheme.

Git ha diversi protocolli di trasferimento che puoi usare. L'esempio precedente usa il protocollo git: //, ma potresti anche vedere http (s): // o user @ server: /path.git, che utilizza il protocollo di trasferimento SSH.

Quando si spostano i file nel punto desiderato, si sposta anche la directory .git? A seconda del sistema operativo e della configurazione, questa directory potrebbe essere nascosta.

Contiene il repository e i file di supporto, mentre i file di progetto che si trovano nella tua directory /public sono solo le versioni nel commit di check-out (ramo principale per impostazione predefinita).

Clone:

git clone git@jittre.unfuddle.com:jittre/name.git

Clonare il "ramo specifico":

git clone -b [branch-name] git@jittre.unfuddle.com:jittre/name.git

Per clonare il repository git in una cartella specifica, è possibile utilizzare il parametro -C <path>, ad esempio

git -C /httpdocs clone git@github.com:whatever

Sebbene creerà comunque una whatever cartella al di sopra di essa, quindi per clonare il contenuto del repository nella directory corrente, usa la sintassi seguente:

git git@github.com:whatever .

Nota che la clonazione in una directory esistente è solo consentita quando la directory è vuota .

Dato che stai clonando in una cartella accessibile al pubblico, considera di separare il tuo repository Git dall'albero di lavoro usando --separate-git-dir=<git dir> o escludi la cartella .git nella configurazione del tuo server web (ad es. nel file .htaccess).

Se vuoi clonare nella cartella corrente, dovresti provare questo:

git clone https://github.com/example/example.git ./

Per clonare nella directory di lavoro attuale :

clone git https://github.com/link.git

Per clonare su Un'altra directory :

clone git https://github.com/link.git ./Folder1/ Cartella2

Spero che aiuti :)

Assicurati di rimuovere il repository .git se stai provando a fare il check out nella directory corrente.

rm -rf .git quindi git clone https://github.com/symfony/symfony-sandbox.git

Utilizzo

git clone <repository>

Clona il repository situato in < repository > sulla macchina locale. Il repository originale può trovarsi sul filesystem locale o su una macchina remota accessibile via HTTP o SSH.

git clone <repo> <directory>

Clona il repository situato in < repository > nella cartella chiamata < directory > sul computer locale.

Fonte: Impostazione di un repository

Ecco come lo farei, ma ho creato un alias per farlo per me.

$ cd ~Downloads/git; git clone https:git.foo/poo.git

Probabilmente esiste un modo più elegante di farlo, tuttavia ho trovato che questo è più semplice per me stesso.

Ecco l'alias che ho creato per velocizzare le cose. L'ho fatto per zsh, ma dovrebbe funzionare bene per bash o qualsiasi altra shell come pesce, xyzsh, fizsh e così via.

Modifica ~/.zshrc, /.bashrc, ecc. con il tuo editor preferito (il mio è Leafpad, quindi scriverei $ leafpad ~/.zshrc).

La mia preferenza personale, tuttavia, è quella di creare un plugin zsh per tenere traccia di tutti i miei alias. Puoi creare un plug-in personale per oh-my-zsh eseguendo questi comandi:

$ cd ~/.oh-my-zsh/
$ cd plugins/
$ mkdir your-aliases-folder-name; cd your-aliases-folder-name
     # In my case '~/.oh-my-zsh/plugins/ev-aliases/ev-aliases'
$ leafpad your-zsh-aliases.plugin.zsh
     # Again, in my case 'ev-aliases.plugin.zsh'

Successivamente, aggiungi queste righe al tuo file alises.plugin vuoto appena creato:

# Git aliases
alias gc="cd ~/Downloads/git; git clone "

(Da qui, sostituisci il tuo nome con il mio.)

Quindi, per far funzionare gli alias, essi (insieme a zsh) devono essere reperiti (o come si chiama). Per fare ciò, all'interno del documento del plug-in personalizzato aggiungi questo:

## Ev's Aliases

#### Remember to re-source zsh after making any changes with these commands:

#### These commands should also work, assuming ev-aliases have already been sourced before:

allsource="source $ZSH/oh-my-zsh.sh ; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh; clear"
sourceall="source $ZSH/oh-my-zsh.sh ; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh"
#### 

####################################

# git aliases

alias gc="cd ~/Downloads/git; git clone "
# alias gc="git clone "
# alias gc="cd /your/git/folder/or/whatever; git clone "

####################################

Salva il tuo plugin oh-my-zsh ed esegui allsource. Se questo non sembra funzionare, esegui semplicemente source $ZSH/oh-my-zsh.sh; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh. Ciò caricherà l'origine del plug-in che ti consentirà di utilizzare <=> d'ora in poi.


Sono in procinto di creare un repository Git con tutti i miei alias. Non esitate a dare un'occhiata qui: Dot-files di Ev . Non esitate a sborsare e migliorare su di loro per soddisfare le vostre esigenze.

Per qualche motivo questa sintassi non si distingue:

git clone repo-url [folder]

Qui la cartella è un percorso opzionale per la cartella locale (che sarà un repository locale).

Git clone inoltre codificherà pull dal repository remoto al repository locale. In realtà è vero:

git clone repo-url  =  git init + git remote add origin repo-url + git pull

Se si utilizza ssh per git cloning è possibile utilizzare il comando seguente.

git -C path clone git@github.com:path_to_repo.git

ad esempio: git -C /home/ubuntu/ clone git@github.com:kennethreitz/requests.git trascinerebbe il repository git per requests nel tuo /home/ubuntu/ percorso.

For Windows user 

1> Open command prompt.
2> Change the directory to destination folder (Where you want to store your project in local machine.)
3> Now go to project setting online(From where you want to clone)
4> Click on clone, and copy the clone command.
5> Now enter the same on cmd .

It will start cloning saving on the selected folder you given .

Ti consiglierò di seguire il seguente link:

https://help.github.com/en/articles/cloning-a-repository

Se viene visualizzato il seguente errore durante il comando git clone URL

fatal: unable to access 'URL': Could not resolve host: github.com

Quindi utilizzare il seguente comando per risolverlo:

git config --global --unset https.proxy

Per quanto riguarda questa riga dal post originale:

  

" So come spostare i file dopo aver clonato il repository, ma questo   sembra rompere git "

Sono in grado di farlo e non vedo alcun problema finora con le mie operazioni di aggiunta, commit, push, pull.

Questo approccio è indicato sopra, ma non è suddiviso in fasi. Ecco i passaggi che funzionano per me:

  1. clona il repository in qualsiasi nuova cartella temporanea
  2. cd nella cartella principale appena clonata localmente
  3. copia l'intero contenuto della cartella, inclusa la directory /.git - in qualsiasi cartella esistente che ti piace; (ad esempio un progetto eclissi che desideri unire con il tuo repository)

La cartella esistente in cui hai appena copiato i file, ora è pronta per interagire con git.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top