web-dev-qa-db-ja.com

どのようにGitリポジトリを特定のフォルダにクローンしますか?

git clone [email protected]:whateverコマンドを実行すると、現在のフォルダーにwhateverという名前のディレクトリーが作成され、Gitリポジトリーの内容がそのフォルダーにドロップされます。

/httpdocs/whatever/public

私の問題は、Gitリポジトリの内容を現在のディレクトリにクローンして、それらがWebサーバーの適切な場所に表示されるようにする必要があることです。

/httpdocs/public

リポジトリのクローンを作成した後でファイルを移動する方法はわかっていますが、これはGitを壊すように思われるので、git pullを呼び出すだけで更新できるようにしたいです。これどうやってするの?

1937
David Smith

オプションA:

git clone [email protected]:whatever folder-name

オプションB:

.gitフォルダも移動してください。

もっとましだ:

作業コピーをどこか別の場所に保存して、シンボリックリンクを作成してください。

2655
Can Berk Güder

私がこの質問をする多くの人々が後であると思う例はこれです。 gitリポジトリの内容をダンプするディレクトリに in がある場合は、次のコマンドを実行します。

git clone [email protected]:whatever .

「。」最後に現在のフォルダをチェックアウトフォルダとして指定します。

548
J Wynia

フォルダに移動します。フォルダが空の場合は、次のようにします。

git clone [email protected]:whatever .

else

git init
git remote add Origin PATH/TO/REPO
git fetch
git checkout -t Origin/master
193
csomakk

基本的なGitリポジトリのクローニング

リポジトリをクローンするには

git clone [url]

たとえば、open_frameworkというStanford University Drupal Open Framework Gitライブラリを複製する場合は、次のようにします。

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

Open_frameworkという名前のディレクトリを(現在のローカルファイルシステムの場所に)作成し、その中の.gitディレクトリを初期化し、そのリポジトリのすべてのデータを取得し、最新バージョンの作業コピーをチェックアウトします。新しく作成したopen_frameworkディレクトリに移動すると、そこにプロジェクトファイルが表示され、作業または使用できるようになります。

特定のローカルフォルダへのリポジトリのクローン作成

Open_framework以外の名前のディレクトリにリポジトリを複製したい場合は、それを次のコマンドラインオプションとして指定できます。

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

そのコマンドは前のコマンドと同じことをしますが、ターゲットディレクトリはmynewthemeと呼ばれます。

Gitはあなたが使うことができるいくつかの異なる転送プロトコルを持っています。前の例ではgit://プロトコルを使用していますが、http(s)://またはuser @ server:/path.gitも表示されます。これはSSH転送プロトコルを使用しています。

79

ファイルを目的の場所に移動すると、.gitディレクトリも移動しますか? OSや設定によっては、このディレクトリは隠れているかもしれません。 

/publicディレクトリにあるプロジェクトファイルは、現在チェックアウトしているコミット(デフォルトではmasterブランチ)のバージョンのみですが、レポとサポートファイルが含まれています。

13
Paul

クローン:

git clone [email protected]:jittre/name.git

「特定のブランチ」をクローンします。

git clone -b [branch-name] [email protected]:jittre/name.git
13
Selvamani

現在の作業ディレクトリにクローンするには:

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

Another Directoryにクローンするには:

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

それが役に立てば幸い :)

11
Sarat Chandra

現在のフォルダにクローンしたい場合は、これを試してください。

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

現在のディレクトリにチェックアウトしようとしている場合は、必ず.gitリポジトリを削除してください。

rm -rf .gitそしてgit clone https://github.com/symfony/symfony-sandbox.git

9
alex

Gitリポジトリを特定のフォルダにクローンするには、-C <path>パラメータを使用できます。

git -C /httpdocs clone [email protected]:whatever

それでもその上にwhateverフォルダが作成されますが、リポジトリの内容を現在のディレクトリに複製するには、次の構文を使用します。

git [email protected]:whatever .

ディレクトリが empty の場合、既存のディレクトリへのクローン作成は only にのみ許可されます。

一般にアクセス可能なフォルダにクローンを作成するため、--separate-git-dir=<git dir>を使用するか、.gitフォルダを除外して(例:.htaccessファイル内)、Gitリポジトリを作業ツリーから分離することを検討してください。

9
kenorb

使用方法

git clone <repository>

<repository>にあるリポジトリをローカルマシンにクローンします。元のリポジトリは、ローカルファイルシステムまたはHTTPまたはSSH経由でアクセス可能なリモートマシンに配置できます。

git clone <repo> <directory>

<repository>にあるリポジトリをローカルマシンの<directory>というフォルダにクローンします。

出典:リポジトリの設定

7
Nagarjun

これは私がそうする方法ですが、私は私のためにそれをするためにエイリアスを作りました。

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

もっとエレガントな方法があるかもしれませんが、私にとってはこれが最も簡単な方法であることがわかりました。

これはスピードを上げるために作成したエイリアスです。私はzsh用に作成しましたが、bashやその他の魚、xyzsh、fizshなどのシェルには問題なく動作するはずです。

あなたの好きなエディタで~/.zshrc/.bashrcなどを編集してください(私のものはLeafpadなので、$ leafpad ~/.zshrcと書きます).

私の個人的な好みは、しかし、私のすべてのエイリアスを追跡するためにzshプラグインを作ることです。これらのコマンドを実行して、oh-my-zsh用の個人用プラグインを作成できます。

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

その後、新しく作成した空のalises.pluginファイルにこれらの行を追加します。

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

(ここから、あなたの名前を私のものに置き換えてください。)

次に、エイリアスを機能させるには、それらを(zshと一緒に)入力する必要があります(またはそれが呼び出されるものは何でも)。そうするために、あなたのカスタムプラグインドキュメントの中にこれを加えてください:

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

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

Oh-my-zshプラグインを保存して、allsourceを実行します。それでもうまくいかない場合は、単にsource $ZSH/oh-my-zsh.sh; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zshを実行してください。これで、これからallsourceを使えるようになるプラグインソースが読み込まれます。


私はすべてのエイリアスを使ってGitリポジトリを作成中です。こちらからチェックしてください。 Evのドットファイル 。気軽にフォークしてあなたのニーズに合うようにそれらを改良してください。

3
Ev-

git cloningsshを使用している場合は、次のコマンドを使用できます。

git -C path clone [email protected]:path_to_repo.git

例: git -C /home/ubuntu/ clone [email protected]:kennethreitz/requests.gitは、requestsのgitリポジトリをあなたの/home/ubuntu/パスに移動します。

1
Ankit Singh

何らかの理由から、この構文は目立ちません。

git clone repo-url [folder]

ここでfolderは、ローカルフォルダへのオプションのパスです(ローカルリポジトリになります)。

Git cloneはリモートリポジトリからローカルリポジトリへのコードもpullします。 実際、それは本当です: 

git clone repo-url  =  git init + git remote add Origin repo-url + git pull
0
prosti
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 .
0
Tarit Ray

上記の答えはすべて良いですが、受け入れられた答えで提案されたBESTとして、パブリックhtmlディレクトリでシンボリックリンクメソッドを使用する代わりに、新しい方法を提案したいと思います。サーバーの仮想ホスト構成にアクセスする必要があります。

これは、リポジトリディレクトリを直接指すWebサーバーの仮想ホストを構成することです。 Apacheでは次のようにできます:

DocumentRoot/var/www/html/website/your-git-repo

仮想ホストファイルの例を次に示します。

<VirtualHost *:443>
    ServerName example.com

    DocumentRoot /path/to/your-git-repo
    ...
    ...
    ...
    ...
</VirtualHost>
0
Tarik