git clone [email protected]:whatever
コマンドを実行すると、現在のフォルダーにwhateverという名前のディレクトリーが作成され、Gitリポジトリーの内容がそのフォルダーにドロップされます。
/httpdocs/whatever/public
私の問題は、Gitリポジトリの内容を現在のディレクトリにクローンして、それらがWebサーバーの適切な場所に表示されるようにする必要があることです。
/httpdocs/public
リポジトリのクローンを作成した後でファイルを移動する方法はわかっていますが、これはGitを壊すように思われるので、git pull
を呼び出すだけで更新できるようにしたいです。これどうやってするの?
オプションA:
git clone [email protected]:whatever folder-name
オプションB:
.gitフォルダも移動してください。
もっとましだ:
作業コピーをどこか別の場所に保存して、シンボリックリンクを作成してください。
私がこの質問をする多くの人々が後であると思う例はこれです。 gitリポジトリの内容をダンプするディレクトリに in がある場合は、次のコマンドを実行します。
git clone [email protected]:whatever .
「。」最後に現在のフォルダをチェックアウトフォルダとして指定します。
フォルダに移動します。フォルダが空の場合は、次のようにします。
git clone [email protected]:whatever .
else
git init
git remote add Origin PATH/TO/REPO
git fetch
git checkout -t Origin/master
リポジトリをクローンするには
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転送プロトコルを使用しています。
ファイルを目的の場所に移動すると、.git
ディレクトリも移動しますか? OSや設定によっては、このディレクトリは隠れているかもしれません。
/public
ディレクトリにあるプロジェクトファイルは、現在チェックアウトしているコミット(デフォルトではmasterブランチ)のバージョンのみですが、レポとサポートファイルが含まれています。
クローン:
git clone [email protected]:jittre/name.git
「特定のブランチ」をクローンします。
git clone -b [branch-name] [email protected]:jittre/name.git
現在の作業ディレクトリにクローンするには:
git clone https://github.com/link.git
Another Directoryにクローンするには:
git clone https://github.com/link.git ./Folder1/Folder2
それが役に立てば幸い :)
現在のフォルダにクローンしたい場合は、これを試してください。
git clone https://github.com/example/example.git ./
現在のディレクトリにチェックアウトしようとしている場合は、必ず.gitリポジトリを削除してください。
rm -rf .git
そしてgit clone https://github.com/symfony/symfony-sandbox.git
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リポジトリを作業ツリーから分離することを検討してください。
使用方法
git clone <repository>
<repository>にあるリポジトリをローカルマシンにクローンします。元のリポジトリは、ローカルファイルシステムまたはHTTPまたはSSH経由でアクセス可能なリモートマシンに配置できます。
git clone <repo> <directory>
<repository>にあるリポジトリをローカルマシンの<directory>というフォルダにクローンします。
出典:リポジトリの設定
これは私がそうする方法ですが、私は私のためにそれをするためにエイリアスを作りました。
$ 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のドットファイル 。気軽にフォークしてあなたのニーズに合うようにそれらを改良してください。
git cloning
にssh
を使用している場合は、次のコマンドを使用できます。
git -C path clone [email protected]:path_to_repo.git
例: git -C /home/ubuntu/ clone [email protected]:kennethreitz/requests.git
は、requests
のgitリポジトリをあなたの/home/ubuntu/
パスに移動します。
何らかの理由から、この構文は目立ちません。
git clone repo-url [folder]
ここでfolderは、ローカルフォルダへのオプションのパスです(ローカルリポジトリになります)。
Git clone
はリモートリポジトリからローカルリポジトリへのコードもpull
します。 実際、それは本当です:
git clone repo-url = git init + git remote add Origin repo-url + git pull
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 .
上記の答えはすべて良いですが、受け入れられた答えで提案されたBESTとして、パブリックhtmlディレクトリでシンボリックリンクメソッドを使用する代わりに、新しい方法を提案したいと思います。サーバーの仮想ホスト構成にアクセスする必要があります。
これは、リポジトリディレクトリを直接指すWebサーバーの仮想ホストを構成することです。 Apacheでは次のようにできます:
DocumentRoot/var/www/html/website/your-git-repo
仮想ホストファイルの例を次に示します。
<VirtualHost *:443>
ServerName example.com
DocumentRoot /path/to/your-git-repo
...
...
...
...
</VirtualHost>