Frage

Ausführen des Befehls git clone git@github.com:whatever erstellt in meinem aktuellen Ordner ein Verzeichnis mit dem Namen „Wie auch immer“ und legt den Inhalt des Git-Repositorys in diesem Ordner ab:

/httpdocs/whatever/public

Mein Problem besteht darin, dass ich den Inhalt des Git-Repositorys in mein aktuelles Verzeichnis klonen muss, damit er am richtigen Speicherort für den Webserver angezeigt wird:

/httpdocs/public

Ich weiß, wie ich die Dateien verschieben kann, nachdem ich das Repository geklont habe, aber das scheint Git kaputt zu machen, und ich möchte die Aktualisierung einfach per Aufruf durchführen können git pull.Wie kann ich das machen?

War es hilfreich?

Lösung

Option A:

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

Ergo, für right here Verwendung:

git clone git@github.com:whatever .

Option B:

Bewegen Sie den .git Ordner auch. Beachten Sie, dass die .git Ordner in den meisten grafischen Datei Entdecker verborgen ist, so sicher sein, versteckte Dateien anzuzeigen.

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

Die erste Zeile packt alle normalen Dateien, greift die zweite Zeile Dot-Dateien. Es ist auch possibe es in einer Zeile zu tun, indem dotglob ermöglichen (das heißt shopt -s dotglob), aber das ist wahrscheinlich eine schlechte Lösung, wenn Sie die Frage dieser Antwort Antworten fragen.

Noch besser wäre es:

Halten Sie Ihre Arbeitskopie woanders, und erstellen Sie einen symbolischen Link. Wie folgt aus:

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

Für Sie Sollte dies wäre so etwas wie:

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

, die leicht geändert werden könnte, um zu testen, wenn man es will, das heißt:.

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

ohne Dateien um zu bewegen. Hinzugefügt -fn falls jemand kopiert diese Zeilen (-f Kraft ist, -n einige häufig unerwünschte Wechselwirkungen vermeiden mit bereits und nicht vorhandenen Links).

Wenn Sie wollen, dass es nur arbeiten, verwenden Sie Option A, wenn jemand anderes geht zu schauen, was Sie getan haben, verwenden Sie Option C.

Andere Tipps

Das Beispiel denke ich, eine Menge Leute diese Frage ist nach dieser ist. Wenn Sie in das Verzeichnis möchten Sie den Inhalt der git-Repository deponiert, laufen:

git clone git@github.com:whatever .

Die "" am Ende gibt die aktuellen Ordner als die Kasse Ordner.

Gehen Sie in den Ordner .. Wenn der Ordner leer ist, dann:

git clone git@github.com:whatever .

sonst

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

Grund Git Repository Cloning

Sie klonen ein Repository mit

git clone [url]

Zum Beispiel, wenn Sie die Stanford University Drupal öffnen Framework-Git Bibliothek namens open_framework klonen möchten, können Sie dies wie folgt tun:

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

Das erstellt ein Verzeichnis namens open_framework (an Ihrem aktuellen Speicherort im Dateisystem lokal), initialisiert ein .git Verzeichnis im Inneren, nach unten zieht alle Daten für das Repository und prüft eine Arbeitskopie der neuesten Version aus. Wenn Sie das neu erstellte Verzeichnis open_framework gehen, werden Sie die Projektdateien in dort sehen, bereit, auf oder verwendet gearbeitet werden.

Klonen eines Repository in einem bestimmten lokalen Ordner

Wenn Sie das Repository in ein Verzeichnis mit dem Namen etwas anderes als open_framework klonen möchten, können Sie das als der nächste Befehlszeilenoption angeben:

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

Dieser Befehl tut dasselbe wie die vorherigen, aber das Zielverzeichnis wird MyNewTheme genannt.

Git hat eine Reihe von verschiedenen Übertragungsprotokolle Sie verwenden können. Das obige Beispiel verwendet die git: // Protokoll, aber Sie können auch sehen, http (s): // oder user @ server:. /Path.git, die das SSH-Transfer-Protokoll verwendet

Wenn Sie die Dateien verschieben, wo Sie sie wollen, bewegen Sie auch die .git Verzeichnis? Je nach Betriebssystem und Konfiguration, kann dieses Verzeichnis ausgeblendet werden.

Es enthält den Repo- und die unterstützenden Dateien, während die Projektdateien, die nur in Ihrem /public Verzeichnis sind die Versionen in der zur Zeit beim Check-out sind commit (Master Zweig Standard).

Klon:

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

Klonen Sie den "spezifischen Zweig":

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

Um Git Repository in einen bestimmten Ordner zu klonen, können Sie -C <path>-Parameter verwenden, z.

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

Obwohl es wird noch einen whatever Ordner auf es schaffen, so den Inhalt des Repository in aktuelles Verzeichnis zu klonen, verwenden Sie die folgende Syntax:

git git@github.com:whatever .

Beachten Sie, dass in ein bestehendes Verzeichnis Klonen ist nur erlaubt, wenn das Verzeichnis leer .

Da Sie in den Ordner klonen, die für die Öffentlichkeit zugänglich sind, sollten Sie Ihren Git-Repository von Ihrem Arbeits Baum Trennung von --separate-git-dir=<git dir> mit oder .git Ordnern in Ihrer Web-Server-Konfiguration (zum Beispiel in .htaccess Datei) auszuschließen.

Wenn Sie in den aktuellen Ordner klonen möchten, sollten Sie versuchen, diese:

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

So klonen Present Working Directory :

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

So klonen Ein weiteres Verzeichnis :

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

Hoffe, es hilft:)

Stellen Sie sicher, dass Sie das .git Repository entfernen, wenn Sie etwas versuchen, aus in das aktuelle Verzeichnis zu überprüfen.

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

Verwendung

git clone <repository>

Klonen das Repository auf befindet sich auf der lokalen Maschine. Die Original-Repository kann auf dem lokalen Dateisystem oder auf einem entfernten Rechner via HTTP oder SSH befindet.

git clone <repo> <directory>

Klonen das Repository unter in den Ordner mit dem Namen auf dem lokalen Rechner.

Quelle: ein Repository einrichten

So würde ich es machen, aber ich habe einen Alias ​​erstellt, der es für mich erledigt.

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

Es gibt wahrscheinlich eine elegantere Möglichkeit, dies zu tun, aber ich fand, dass diese für mich am einfachsten ist.

Hier ist der Alias, den ich erstellt habe, um die Sache zu beschleunigen.Ich habe es für zsh gemacht, aber es sollte gut für Bash oder jede andere Shell wie Fish, xyzsh, fizsh usw. funktionieren.

Bearbeiten ~/.zshrc, /.bashrc, usw.mit Ihrem Lieblingseditor (meiner ist Leafpad, also würde ich schreiben $ leafpad ~/.zshrc).

Persönlich bevorzuge ich jedoch die Erstellung eines ZSH-Plugins, um alle meine Aliase im Auge zu behalten.Sie können ein persönliches Plugin für oh-my-zsh erstellen, indem Sie die folgenden Befehle ausführen:

$ 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'

Fügen Sie anschließend diese Zeilen zu Ihrer neu erstellten leeren alises.plugin-Datei hinzu:

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

(Ersetzen Sie hier Ihren Namen durch meinen.)

Damit die Aliase dann funktionieren, müssen sie (zusammen mit zsh) eingebunden werden (oder wie auch immer es heißt).Fügen Sie dazu in Ihrem benutzerdefinierten Plugin-Dokument Folgendes hinzu:

## 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 "

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

Speichern Sie Ihr oh-my-zsh-Plugin und führen Sie es aus allsource.Wenn das nicht zu funktionieren scheint, führen Sie es einfach aus source $ZSH/oh-my-zsh.sh; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh.Dadurch wird die Plugin-Quelle geladen, die Sie verwenden können allsource von jetzt an.


Ich bin gerade dabei, ein Git-Repository mit allen meinen Aliasen zu erstellen.Schauen Sie sich diese gerne hier an: Evs Dot-Dateien.Bitte zögern Sie nicht, sie entsprechend Ihren Anforderungen weiterzuentwickeln und zu verbessern.

Aus irgendeinem Grund diese Syntax nicht aus steht:

git clone repo-url [folder]

Hier Ordner sind ein optionalen Pfad zu dem lokalen Ordner (die ein lokales Repository sein werden).

Git clone wird auch pull Code von Remote-Repository in das lokale Repository. In der Tat ist es wahr:

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

Wenn Sie ssh für git cloning verwenden, können Sie den folgenden Befehl verwenden.

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

zB: git -C /home/ubuntu/ clone git@github.com:kennethreitz/requests.git würde das Git Repository für requests zu Ihrem /home/ubuntu/ Weg ziehen.

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 .

Ich werde Sie empfehlen den folgenden Link zu folgen:

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

Wenn Sie die folgenden Fehler während git clont URL Befehl

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

Dann verwenden Sie den folgenden Befehl, es zu beheben:

git config --global --unset https.proxy

In Bezug auf diese Linie von der ursprünglichen Nachricht:

  

"Ich weiß, wie die Dateien zu verschieben, nachdem ich den Repo geklont habe, aber diese   scheint git zu brechen "

Ich bin in der Lage, das zu tun, und ich sehe keine Probleme bisher mit meinem Add verpflichten, schieben, ziehen Operationen.

Dieser Ansatz wird bereits erwähnt, aber nur in Schritten nicht abgebaut werden. Hier die Schritte, die für mich arbeiten:

  1. klonen den Repo in jedem frischen temporären Ordner
  2. cd in die Root-Ordner, den Sie nur lokal geklonten
  3. Sie den gesamten Inhalt des Ordners kopieren, einschließlich dem /.git Verzeichnis - in jeden vorhandenen Ordner, den Sie mögen; (Sagen wir ein Eclipse-Projekt, das Sie mit Ihrem Repo zusammenführen möchten)

Der bestehende Ordner, den Sie nur die Dateien in kopiert, ist nun bereit, mit git zu interagieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top