211

I am trying to clone repo from another directory.

Lets say I have one repo in C:/folder1 and C:/folder2

I want to clone the work in folder1 into folder2.

What would I type into the command prompt to do this?

It seems that often when cloning a URL is provided rather then a file path, however, at this moment I am just practicing and trying to get use to Git.

Omer Dagan
  • 13,031
  • 15
  • 41
  • 59
SeekingAlpha
  • 6,881
  • 12
  • 34
  • 42
  • 5
    you can use `git clone C:\folder1\.git folder2`. You need to run it from the directory where you want folder2 to appear – Akash Jan 10 '14 at 13:05
  • If you're in windows and it's still not working, you may need to prepend `file:\\` to repository path. See this https://stackoverflow.com/questions/37422428/git-internal-error-refs-remotes-origin-master-is-not-a-valid-packed-reference – Jacob H Jan 03 '18 at 21:55
  • Gosh this QA is really hard to find! – Qwerty Mar 22 '22 at 15:16

8 Answers8

229
cd /d c:\
git clone C:\folder1 folder2

From the documentation for git clone:

For local repositories, also supported by git natively, the following syntaxes may be used:

/path/to/repo.git/

file:///path/to/repo.git/

These two syntaxes are mostly equivalent, except the former implies --local option.

Chris
  • 112,704
  • 77
  • 249
  • 231
  • 6
    @grahamesd, really you do not need to map a network folder as a drive because of GIT can clone its quite good in such way: `git clone //pc_name/git` – vladimir_ki Jan 10 '17 at 09:26
26

It is worth mentioning that the command works similarly on Linux:

git clone path/to/source/folder path/to/destination/folder
Yasir Jan
  • 368
  • 5
  • 7
21

None of these worked for me. I am using git-bash on windows. Found out the problem was with my file path formatting.

WRONG:

git clone F:\DEV\MY_REPO\.git

CORRECT:

git clone /F/DEV/MY_REPO/.git

These commands are done from the folder you want the repo folder to appear in.

KANJICODER
  • 3,199
  • 25
  • 16
9

It's as easy as it looks.

14:27:05 ~$ mkdir gittests
14:27:11 ~$ cd gittests/
14:27:13 ~/gittests$ mkdir localrepo
14:27:20 ~/gittests$ cd localrepo/
14:27:21 ~/gittests/localrepo$ git init
Initialized empty Git repository in /home/andwed/gittests/localrepo/.git/
14:27:22 ~/gittests/localrepo (master #)$ cd ..
14:27:35 ~/gittests$ git clone localrepo copyoflocalrepo
Cloning into 'copyoflocalrepo'...
warning: You appear to have cloned an empty repository.
done.
14:27:42 ~/gittests$ cd copyoflocalrepo/
14:27:46 ~/gittests/copyoflocalrepo (master #)$ git status
On branch master

Initial commit

nothing to commit (create/copy files and use "git add" to track)
14:27:46 ~/gittests/copyoflocalrepo (master #)$ 
Andreas Wederbrand
  • 35,944
  • 10
  • 64
  • 76
8

In case you have space in your path, wrap it in double quotes:

$ git clone "//serverName/New Folder/Target" f1/
Yar
  • 6,330
  • 10
  • 43
  • 62
7

Using the path itself didn't work for me.

Here's what finally worked for me on MacOS:

cd ~/projects
git clone file:///Users/me/projects/myawesomerepo myawesomerepocopy

This also worked:

git clone file://localhost/Users/me/projects/myawesomerepo myawesomerepocopy

The path itself worked if I did this:

git clone --local myawesomerepo myawesomerepocopy
kris larson
  • 29,774
  • 5
  • 61
  • 72
  • Yes, the OP's example is Windows, but the question isn't tagged Windows, so I posted in the hopes of helping Mac users – kris larson Jan 03 '20 at 19:00
3

Use git clone c:/folder1 c:/folder2

git clone [--template=<template_directory>] [-l] [-s] [--no-hardlinks]
[-q] [-n] [--bare] [--mirror] [-o <name>] [-b <name>] [-u <upload-pack>]
[--reference <repository>] [--separate-git-dir <git dir>] [--depth <depth>]
[--[no-]single-branch] [--recursive|--recurse-submodules] [--]<repository>
[<directory>]


<repository>

    The (possibly remote) repository to clone from.
    See the URLS section below for more information on specifying repositories.
<directory>

    The name of a new directory to clone into.
    The "humanish" part of the source repository is used if no directory 
    is explicitly given (repo for /path/to/repo.git and foo for host.xz:foo/.git).
    Cloning into an existing directory is only allowed if the directory is empty.
Bleeding Fingers
  • 6,594
  • 7
  • 44
  • 72
2

I am using git-bash in windows.The simplest way is to change the path address to have the forward slashes:

git clone C:/Dev/proposed 

P.S: Start the git-bash on the destination folder.

Path used in clone ---> c:/Dev/proposed

Original path in windows ---> c:\Dev\proposed

Mahmoud
  • 150
  • 2
  • 8