【问题标题】:Git (Windows) - failure cloning from a separate-git-dir repositoryGit (Windows) - 从单独的 git-dir 存储库克隆失败
【发布时间】:2011-08-16 19:07:55
【问题描述】:

这几天我一直在努力寻找答案:(

在尝试从使用 --separate-git-dir 初始化的存储库中克隆时,谁能确认我是否在下面的示例中获得了“Git clone”的语法正确?

如果是这样,这是否适用于 Linux 系统?

在 Windows 上使用 Git(从 GitExtensions224SetupComplete.msi 安装的 git 版本 1.7.6.msysgit.0)我收到一个错误,如下所示,看起来好像“Git 克隆”期望存储库具有“正常”积分.git 目录

由于 --separate-git-dir 是 msysgit 中一个相当新的功能,也许克隆命令还不支持它?

F:\>mkdir repo2
F:\>mkdir repo2git
F:\>cd repo2
F:\repo2>call git init --separate-git-dir="..\repo2git\.git"
Initialized empty Git repository in F:/repo2git/.git/
F:\repo2>echo abc >file1.txt
F:\repo2>call git add . -A
F:\repo2>call git commit -m "first"
[master (root-commit) c7e4766] first
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 file1.txt
F:\repo2>cd ..
F:\>call git clone repo2 clone2
Cloning into clone2...
fatal: failed to open 'F:/repo2/objects': No such file or directory

非常感谢您对此的任何见解。

【问题讨论】:

    标签: windows git clone


    【解决方案1】:

    在逐步完成您在这里所做的之后,您最初的“git init”是不正确的。您在克隆时遇到问题,因为您的存储库一开始就不正确。这是我所做的:

    Travis@CASTLE ~/travtemp
    $ git init travis
    Initialized empty Git repository in c:/Users/Travis/travtemp/travis/.git/
    
    Travis@CASTLE ~/travtemp
    $ ls
    repo2  repo2git  travis
    
    Travis@CASTLE ~/travtemp
    $ cd travis/
    
    Travis@CASTLE ~/travtemp/travis (master)
    $ touch t1
    
    Travis@CASTLE ~/travtemp/travis (master)
    $ git status
    # On branch master
    #
    # Initial commit
    #
    # Untracked files:
    #   (use "git add <file>..." to include in what will be committed)
    #
    #       t1
    nothing added to commit but untracked files present (use "git add" to track)
    
    Travis@CASTLE ~/travtemp/travis (master)
    $ git add .
    
    Travis@CASTLE ~/travtemp/travis (master)
    $ git commit -m "first"
    [master (root-commit) d93a0d0] first
     0 files changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 t1
    
    Travis@CASTLE ~/travtemp/travis (master)
    $ git status
    # On branch master
    nothing to commit (working directory clean)
    
    Travis@CASTLE ~/travtemp/travis (master)
    $ cd ..
    
    Travis@CASTLE ~/travtemp
    $ git clone travis new
    Cloning into new...
    done.
    
    Travis@CASTLE ~/travtemp
    $ ls
    new  repo2  repo2git  travis
    

    还有关于线程GIT clone repo across local file system的其他信息

    【讨论】:

    • 感谢您的回答,但我特别想克隆一个使用 --separate-git-dir 初始化的 repo(因为我正在尝试使用 Git 每天备份 Web 服务器目录并且真的不想要网站根目录中的 .git 存储库)。 Git gui 将我的示例 repo 显示为有效且包含第一次提交等,尽管它也未能尝试克隆它:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-07
    • 2013-04-19
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    相关资源
    最近更新 更多