我的目录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
将为您设置上游分支,如果您想要的话