如何克隆到非空目录?

这篇博客讨论了如何在非空目录下克隆Git仓库,由于Git默认不允许克隆到非空目录,作者提出了多种解决方案,包括编辑.gitignore、使用git submodule、将现有文件添加到.gitignore后克隆,以及使用git --mirror和git subtree等方法。社区成员提供了不同的思路和命令示例,帮助在保留非Git控制文件的同时,成功克隆仓库。
摘要由CSDN通过智能技术生成

我的目录A具有与目录B匹配的文件。目录A可能还有其他需要的文件。 目录B是git仓库。

我想将目录B克隆到目录A,但是git-clone不允许我这样做,因为该目录是非空的。

我希望它只是克隆.git,既然所有文件都匹配,我可以从那里去吗?

我无法克隆到空目录,因为目录A中的文件不在目录B中,因此我想保留它们。

复制.git是不可行的,因为我想使用refs进行推/拉操作,并且我不想手动设置它们。

有什么办法吗?

更新:我认为这可行,任何人都可以看到任何问题吗? ->

cd a
git clone --no-hardlinks --no-checkout ../b a.tmp 
mv a.tmp/.git .
rm -rf a.tmp
git unstage # apparently git thinks all the files are deleted if you don't do this

#1楼

这是我遇到相同问题时所要做的(至少我认为这是相同问题)。 我进入目录A并运行git init

由于我不希望目录A中的文件后面跟随git,因此我编辑了.gitignore并将现有文件添加到其中。 在此之后,我运行git remote add origin '<url>' && git pull origin master等,然后将B克隆到A中,而不会打h。


#2楼

这为我工作:

git init
git remote add origin PATH/TO/REPO
git fetch
git reset origin/master  # Required when the versioned files existed in path before "git init" of this repo.
git checkout -t origin/master

注意: -t将为您设置上游分支,如果您想要的话

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值