web-dev-qa-db-ja.com

Gitをカレントディレクトリにクローンさせる方法

私がやっている:

git clone ssh://[email protected]/home/user/private/repos/project_hub.git ./

私は手に入れました:

致命的:宛先パス '。'すでに存在し、空のディレクトリではありません。

私は道を知っています。もう存在している。そして私はそのディレクトリISが空であることを保証できます。 (私は中でlsをします、そして、私は何も見えません!)

そのプロジェクトを現在のディレクトリに複製するために、ここで何が足りないのですか?

413
MEM

解決策:この場合、解決策はdotを使っていたので、rm -rf .* && git clone ssh://[email protected]/home/user/private/repos/project_hub.git .

ディレクトリが空であることが確実である場合は、rm -rf .* &&を省略することができます。

クレジットは以下に行きます:@James McLaughlin以下のコメント。

8
MEM

横にドットを付けるだけです

git clone [email protected]:user/my-project.git .

git help cloneから:

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

そのため、ディレクトリが空であることを確認してください(ls -aで確認してください)。それ以外の場合、コマンドは失敗します。

436
Roshan Pal

以下はおそらくすべての場合でクローンと完全に同等ではありませんが、私にとってはトリックでした。

git init .
git remote add -t \* -f Origin <repository-url>
git checkout master

私の場合、これは.git/configファイルを作成します。これはクローン作成時に取得したものと同等です。

324
Andre Holzner

@Andrewは明確に回答しています ここ 。しかし、ディレクトリが空でなくてもこれと同じくらい簡単に動作します。

git init .
git remote add Origin <repository-url>
git pull Origin master
164
ambes

リポジトリを確実に複製できるようにするには、任意の一時ディレクトリに移動してプロジェクトをそこに複製します。

git clone ssh://[email protected]/home/user/private/repos/project_hub.git

これはあなたのものをproject_hubディレクトリにクローンします。

クローン作成が完了したら、このディレクトリを好きな場所に移動できます。

mv project_hub /path/to/new/location

これは安全で、周りに魔法のようなものを必要としません。

60
eckes
git clone your-repo tmp && mv tmp/.git . && rm -rf tmp && git reset --hard
49
return1.at

行う

git clone https://[email protected]/user/projectname.git .

ディレクトリはにする必要があります

28
KajeNick

現在のディレクトリが空の場合、これは動作します。

git clone <repository> foo; mv foo/* foo/.git* .; rmdir foo
13
GoZoner

使用する前に、@ StephaneDelcroixの回答に加えて:

git clone [email protected]/my-project.git .

を使用して、現在のディレクトリが空であることを確認してください。

ls -a
10
Jakehao

@ GoZonerの回答を改善する:

git clone <repository> foo; shopt -s dotglob nullglob; mv foo/* .; rmdir foo

Shoptコマンドは this SO answer から取得され、ドットファイルを含むようにBashの 'mv'コマンドの動作を変更します。他の隠しファイル.

現在のディレクトリ(。)が空の場合にのみ、これが現状のまま動作することが保証されていますが、複製されたリポジトリ内のファイルのどれも現在のディレクトリ内のファイルと同じ名前を持たない限り動作します。現在のディレクトリに何があるのか​​気にしないのであれば、 'mv'コマンドに-f(force)オプションを追加することができます。

7
phatblat

私はこれと同じニーズがありました。私の場合は、Webサーバーのインストールによって作成される標準のWebフォルダを持っていました。この図解の目的のために、これがであるとしましょう

/server/webroot

そしてwebrootは他の標準的なファイルとフォルダーを含みます。私のリポジトリには、サイト固有のファイル(HTML、Javascript、CFMLなど)しかありません。

私がしなければならなかったのは、

cd /server/webroot

git init

git pull [url to my repo.git]

ターゲットフォルダーでgit initを実行するように注意する必要があります。そうしないと、次の2つのうちのいずれかが起こるためです。

  1. 私の場合、git pullは単にgitファイルがないというメッセージで失敗します。

fatal:gitリポジトリ(または他の親ディレクトリ)ではありません:.git

  1. フォルダへの親パスのどこかに is .gitファイルがある場合、プルされたリポジトリは、.gitファイルを含む親ディレクトリに作成されます。これは私に起こりました、そして私はそれに驚きました;-)

これは私のwebrootフォルダにある "標準的な"ファイルを邪魔することはありませんでしたが、それらを.gitignoreファイルに追加して、誤って次のコミットに追加するのを防ぐ必要がありました。

これは空でないディレクトリに "クローン"を作成する簡単な方法のようです。プルによって作成された.gitファイルと.gitignoreファイルが不要な場合は、プル後にそれらを削除するだけです。

6
igeocacher

うーん... $(pwd)を使用して絶対電流パスを指定するとうまくいきました。

git clone https://github.com/me/myproject.git $(pwd)

gitバージョン: 2.21.0

3
Nick Grealy
shopt -s dotglob
git clone ssh://[email protected]/home/user/private/repos/project_hub.git tmp && mv tmp/* . && rm -rf tmp
2
John Josef

以下のように、コマンドの最後に。(ドット)を使用してください。

git clone _ url _

1
Upendra

@ phatblatの answer をさらに改善します。

git clone --no-checkout <repository> tmp \
  && mv tmp/.git . \
  && rmdir tmp \
  && git checkout master

一つのライナーとして:

git clone --no-checkout <repository> tmp && mv tmp/.git . && rmdir tmp && git checkout master

1
166_MMX

だから私は私のルートディレクトリ内の隠された.gitフォルダを削除し、そして 'git clone repo'にピリオドを追加することによって同じエラーを修正しました。私のroot/distフォルダにあります。これはvue-cli webpackプロジェクトのコンテキスト内です。それで、他の誰もが言っていることは正しいです、それは通常あなたがクローンしようとしているフォルダー、あるいは親フォルダーまたは問題のフォルダーのルートのどちらかでgitトラッキングを持っていることを意味します!

0
Akin Hwan

Windowsの解決策は、リポジトリを他のフォルダに複製してからコピーして元の場所に貼り付けるか、単に.git invisibleフォルダをコピーすることです。

0
resizemyimg.com

これが私が見つけたものです:

私はこれを見る:

fatal: destination path 'CouchPotatoServer' already exists and is not an empty directory.

私の検索の中で、私はつまずきました:

https://couchpota.to/forum/viewtopic.php?t=3943

Clinton.Hallによるエントリを探してください。(私が行ったように)これを試すと、おそらくaccess denied応答が返されます。最初の手がかりがあったので、最初のエラー(私にとっては)は実際には間違っていません。根本的な問題.

これをWindowsで解決する:必ずcmdまたはgit elevatedを実行してから実行してください。

git clone https://github.com/RuudBurger/CouchPotatoServer.git

上記は私の問題であり、単に昇降は私のために働いた。

0
ynotjs

で削除

rm -rf。*

トラブルやその他のエラーに陥る可能性があります。

/ path/to /フォルダがあり、そのフォルダではなく内部のすべてを削除したい場合は、単に実行します。

rm -rf/path/to/folder/*

0
Sid

指定されたディレクトリの.gitディレクトリを含む内容を削除(または移動)するだけです。
Android studioのRebuildのような自動化されたツールがあなたのために問題を解決します。

詳細:
表示されるエラーはjarresolver git repoのものです
表示されたパスはtemp\jarresolver\です

隠しtemp\jarresolver\ディレクトリを含む.gitディレクトリの内容を削除しました。

これですべて、すべてうまくいきました。クローン作成は不要です。
私がRebuildをしたとき、Androidスタジオのクローン作成とビルドが成功しました。

mkdir filenameで新しいファイルを作成してからgit clone xxxxxのコマンドを実行すると便利です。私のコンピュータではうまくいきます。

0
crazier-qi