Gitリポジトリを特定のフォルダーにクローンするにはどうすればよいですか?
-
19-08-2019 - |
質問
コマンドgit clone git@github.com:whatever
を実行すると、現在のフォルダーにwhateverという名前のディレクトリが作成され、Gitリポジトリのコンテンツがそのフォルダーにドロップされます。
/httpdocs/whatever/public
私の問題は、Webサーバーの適切な場所に表示されるように、Gitリポジトリのコンテンツを現在のディレクトリに複製する必要があることです:
/httpdocs/public
リポジトリのクローンを作成した後にファイルを移動する方法は知っていますが、これはGitを破壊するようです。git pull
を呼び出すだけで更新できるようにしたいと思います。どうすればいいですか?
解決
オプションA:
git clone git@github.com:whatever folder-name
エルゴ、right here
の場合:
git clone git@github.com:whatever .
オプションB:
.git
フォルダーも移動します。ほとんどのグラフィカルファイルエクスプローラーではshopt -s dotglob
フォルダーが非表示になっているため、必ず非表示のファイルを表示してください。
mv /where/it/is/right/now/* /where/I/want/it/
mv /where/it/is/right/now/.* /where/I/want/it/
1行目はすべての通常ファイルを取得し、2行目はドットファイルを取得します。また、ドットグロブを有効にして1行で実行することもできます(つまり、-fn
)が、この回答が答える質問をしている場合、おそらくそれは悪い解決策です。
さらに良い:
作業コピーをどこかに保管し、シンボリックリンクを作成します。このように:
ln -s /where/it/is/right/now /the/path/I/want/to/use
あなたの場合、これは次のようになります:
ln -sfn /opt/projectA/prod/public /httpdocs/public
簡単に変更して、必要に応じてテストできます。例:
ln -sfn /opt/projectA/test/public /httpdocs/public
ファイルを移動せずに。誰かがこれらの行をコピーする場合に備えて-f
を追加しました(-n
は強制、<=>すでに存在しないリンクとの不要なやり取りを避ける)。
単に機能させたい場合はオプションAを使用し、他の誰かがあなたが行ったことを確認する場合はオプションCを使用します。
他のヒント
この質問をしている多くの人が後をつけていると思う例はこれです。 gitリポジトリの内容をダンプするディレクトリに いる場合は、次を実行します:
git clone git@github.com:whatever .
<!> quot;。<!> quot;最後に、現在のフォルダーをチェックアウトフォルダーとして指定します。
フォルダに移動します。フォルダが空の場合:
git clone git@github.com:whatever .
else
git init
git remote add origin PATH/TO/REPO
git fetch
git checkout -t origin/master
基本的な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ディレクトリに移動すると、<!>#8217;プロジェクトファイルが表示され、作業または使用する準備ができています。
特定のローカルフォルダーへのリポジトリのクローン作成
open_framework以外の名前のディレクトリにリポジトリを複製する場合、次のコマンドラインオプションとして指定できます。
$ git clone git:github.com/SU-SWS/open_framework.git mynewtheme
このコマンドは前のものと同じことを行いますが、ターゲットディレクトリはmynewthemeと呼ばれます。
Gitには、使用できるさまざまな転送プロトコルがあります。前の例ではgit://プロトコルを使用していますが、SSH転送プロトコルを使用するhttp(s)://またはuser @ server:/path.gitも表示される場合があります。
ファイルを目的の場所に移動するとき、.git
ディレクトリも移動しますか? OSと構成によっては、このディレクトリが非表示になる場合があります。
リポジトリとサポートファイルが含まれていますが、/public
ディレクトリにあるプロジェクトファイルは、現在チェックアウトされているコミット(デフォルトではマスターブランチ)のバージョンのみです。
クローン:
git clone git@jittre.unfuddle.com:jittre/name.git
<!> quot;特定のブランチ<!> quot;のクローン:
git clone -b [branch-name] git@jittre.unfuddle.com:jittre/name.git
gitリポジトリを特定のフォルダーに複製するには、-C <path>
パラメーターを使用できます。例:
git -C /httpdocs clone git@github.com:whatever
その上にwhatever
フォルダを作成しますが、リポジトリのコンテンツを現在のディレクトリに複製するには、次の構文を使用します。
git git@github.com:whatever .
既存のディレクトリへのクローン作成は、ディレクトリが空の場合にのみのみ許可されます。
パブリックにアクセスできるフォルダーにクローンを作成するため、Webサーバー構成(--separate-git-dir=<git dir>
ファイルなど)で.git
または除外.htaccess
フォルダーを使用してGitリポジトリを作業ツリーから分離することを検討してください。
現在のフォルダーにクローンを作成する場合は、これを試してください:
git clone https://github.com/example/example.git ./
現在の作業ディレクトリにクローンを作成するには:
git clone https://github.com/link.git
別のディレクトリにクローンを作成するには:
git clone https://github.com/link.git ./Folder1/ Folder2
ご協力ください:)
現在のディレクトリにチェックアウトしようとしている場合は、必ず.gitリポジトリを削除してください。
rm -rf .git
次にgit clone https://github.com/symfony/symfony-sandbox.git
使用法
git clone <repository>
<!> lt; repository <!> gt;にあるリポジトリを複製します。ローカルマシンに。元のリポジトリは、ローカルファイルシステムまたはHTTPまたはSSH経由でアクセス可能なリモートマシンに配置できます。
git clone <repo> <directory>
<!> lt; repository <!> gt;にあるリポジトリを複製します。 <!> lt; directory <!> gt;というフォルダーにローカルマシン上。
出典: リポジトリのセットアップ
これを行う方法は次のとおりですが、私のためにエイリアスを作成しました。
$ 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
を実行します。これにより、プラグインのソースがロードされ、今後<=>を使用できるようになります。
すべてのエイリアスを使用してGitリポジトリを作成しています。こちらをご覧ください: Evのドットファイル。自由に分岐して、ニーズに合わせて改善してください。
なんらかの理由から、この構文は際立っていません:
git clone repo-url [folder]
ここで、フォルダーはローカルフォルダー(ローカルリポジトリー)へのオプションのパスです。
Git clone
は、リモートリポジトリからローカルリポジトリへのコードもpull
します。
実際、それは本当です:
git clone repo-url = git init + git remote add origin repo-url + git pull
ssh
をgit cloning
に使用している場合、次のコマンドを使用できます。
git -C path clone git@github.com:path_to_repo.git
eg:
git -C /home/ubuntu/ clone git@github.com:kennethreitz/requests.git
は、requests
のgitリポジトリを/home/ubuntu/
パスにプルします。
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 .
次のリンクに従うことをお勧めします。
https://help.github.com/en/articles/cloning-a-repository
git clone URL コマンドの実行中に次のエラーが表示された場合
fatal: unable to access 'URL': Could not resolve host: github.com
次に、次のコマンドを使用して修正します。
git config --global --unset https.proxy
元の投稿の次の行について:
<!> quot;レポジトリのクローンを作成した後にファイルを移動する方法は知っていますが、これは git <!> quot;
が壊れているようです
これを行うことができますが、これまでの追加、コミット、プッシュ、プルの操作に問題はありません。
このアプローチは上記のとおりですが、ステップに分解されたものではありません。 私に役立つ手順は次のとおりです。
- リポジトリを新しい一時フォルダーに複製します
- ローカルにクローンしたばかりのルートフォルダにcd
- /。gitディレクトリを含むフォルダーの内容全体を、任意の既存のフォルダーにコピーします。 (レポジトリとマージするEclipseプロジェクトの場合)
ファイルをコピーしたばかりの既存のフォルダーは、gitと対話する準備ができました。