我有一个项目的工作副本,没有任何源控制元数据。现在,我想把git-clone复制到这个文件夹中,并保留我的本地更改。
Git-clone不允许我克隆到现有的文件夹。这里的最佳实践是什么?
我有一个项目的工作副本,没有任何源控制元数据。现在,我想把git-clone复制到这个文件夹中,并保留我的本地更改。
Git-clone不允许我克隆到现有的文件夹。这里的最佳实践是什么?
当前回答
已经有很多答案可以按照OP要求的方式来做了。但值得注意的是,用相反的方式来做要简单得多:
git clone repo-url tmp/
cp -R working/ tmp/
现在,您拥有了所需的目标状态—刷新克隆+本地更改。
其他回答
要将一个git repo克隆到一个空的现有目录,请执行以下步骤:
cd myfolder
git clone https://myrepo.com/git.git .
注意。在git克隆命令的末尾。这将把repo下载到当前工作目录中。
git clone your_repo tmp && mv tmp/.git . && rm -rf tmp && git reset --mixed
这是我遇到的所有方法中最好的
只克隆存储库的.git文件夹(不包括已经在exists -dir中的文件)到一个空的临时目录
Git clone——no-checkout repo-path-to clone exists -dir/ exists -dir.tmp //可能需要——no-hardlinks用于克隆本地repo
将.git文件夹移动到文件所在的目录。 这使得exists -dir成为一个git回购。
mv existing-dir / existing-dir.tmp /。git existing-dir /
删除临时目录
删除目录existing-dir / existing-dir.tmp cd existing-dir
Git认为所有文件都被删除了,这将回购的状态恢复到HEAD。
警告:对文件的任何本地更改都将丢失。
git重置-混合头部
已经有很多答案可以按照OP要求的方式来做了。但值得注意的是,用相反的方式来做要简单得多:
git clone repo-url tmp/
cp -R working/ tmp/
现在,您拥有了所需的目标状态—刷新克隆+本地更改。
这可以通过克隆到一个新目录,然后将.git目录移动到现有目录来实现。
如果您的现有目录名为“code”。
git clone https://myrepo.com/git.git temp
mv temp/.git code/.git
rm -rf temp
这也可以在不执行克隆命令的情况下完成;更多信息可以在这里找到。