我有一个项目的工作副本,没有任何源控制元数据。现在,我想把git-clone复制到这个文件夹中,并保留我的本地更改。
Git-clone不允许我克隆到现有的文件夹。这里的最佳实践是什么?
我有一个项目的工作副本,没有任何源控制元数据。现在,我想把git-clone复制到这个文件夹中,并保留我的本地更改。
Git-clone不允许我克隆到现有的文件夹。这里的最佳实践是什么?
当前回答
如果您正在克隆相同的存储库,那么在现有的存储库中运行以下代码片段
git pull origin master
其他回答
已经有很多答案可以按照OP要求的方式来做了。但值得注意的是,用相反的方式来做要简单得多:
git clone repo-url tmp/
cp -R working/ tmp/
现在,您拥有了所需的目标状态—刷新克隆+本地更改。
下面我做了,在一个现有目录下签出主分支:
git init
git remote add origin [my-repo]
git fetch
git checkout origin/master -ft
如果你正在使用至少git 1.7.7(教会克隆——config选项),将当前目录转换为工作副本:
git clone example.com/my.git ./.git --mirror --config core.bare=false
这是通过:
将存储库克隆到一个新的.git文件夹中 ——mirror会像.git需要的那样,将新的克隆文件放到纯元数据文件夹中 ——配置的核心。Bare =false撤销了——mirror选项中隐含的Bare =true,从而允许存储库拥有一个相关联的工作目录,并像正常的克隆一样工作
如果您希望转换为工作副本的目录中已经存在.git元数据目录,那么这显然是行不通的。
使用临时目录是可以的,但是如果您想避免这一步,这样也可以。从你的工作目录的根目录:
$ rm -fr .git
$ git init
$ git remote add origin your-git-url
$ git fetch
$ git reset --mixed origin/master
我将git克隆到一个新目录,并将现有目录的内容复制到新的克隆。