我如何克隆成非
我有目录A,文件与目录B匹配。目录A可能有其他需要的文件。 目录B是一个git回购。
我想克隆目录B到目录A,但git-clone不允许我,因为该目录非空。
我希望它只是克隆.git,因为所有的文件匹配我可以从那里去?
我无法克隆到一个空目录,因为我有目录A中不在目录B中的文件,我想保留它们。
复制.git不是一个选项,因为我想参考推/拉,我不想手动设置它们。
有没有办法做到这一点?
更新:我认为这有效,任何人都可以看到任何问题? - >
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
这对我有效:
git init
git remote add origin PATH/TO/REPO
git fetch
git reset origin/master # this is required if files in the non-empty directory are in the repo
git checkout -t origin/master
注意: -t
会为你设置上游分支,如果这是你想要的,通常是。
在以下shell命令中, existing-dir
是其内容与repo-to-clone
git存储库中的跟踪文件匹配的目录。
# Clone just the repository's .git folder (excluding files as they are already in
# `existing-dir`) into an empty temporary directory
git clone --no-checkout repo-to-clone existing-dir/existing-dir.tmp # might want --no-hardlinks for cloning local repo
# Move the .git folder to the directory with the files.
# This makes `existing-dir` a git repo.
mv existing-dir/existing-dir.tmp/.git existing-dir/
# Delete the temporary directory
rmdir existing-dir/existing-dir.tmp
cd existing-dir
# git thinks all files are deleted, this reverts the state of the repo to HEAD.
# WARNING: any local changes to the files will be lost.
git reset --hard HEAD
对我工作的答案中的一个稍作修改:
git init
git remote add origin PATH/TO/REPO
git pull origin master
立即开始在主分支上工作。
链接地址: http://www.djcxy.com/p/7845.html