我有一个项目的工作副本,没有任何源控制元数据。现在,我想把git-clone复制到这个文件夹中,并保留我的本地更改。

Git-clone不允许我克隆到现有的文件夹。这里的最佳实践是什么?


当前回答

你可以递归地输入以下命令行:

mkdir temp_dir   //  Create new temporary dicetory named temp_dir
git clone https://www...........git temp_dir // Clone your git repo inside it
mv temp_dir/* existing_dir // Move the recently cloned repo content from the temp_dir to your existing_dir
rm -rf temp_dir // Remove the created temporary directory

其他回答

已经有很多答案可以按照OP要求的方式来做了。但值得注意的是,用相反的方式来做要简单得多:

git clone repo-url tmp/
cp -R working/ tmp/

现在,您拥有了所需的目标状态—刷新克隆+本地更改。

git clone your_repo tmp && mv tmp/.git . && rm -rf tmp && git reset --mixed

作为参考,来自Gitlab命令行指令:

推送一个现有文件夹

cd existing_folder
git init
git remote add origin <url>
git add .
git commit -m "Initial commit"
git push -u origin master

或者推送一个现有的Git存储库

cd existing_repo
git remote rename origin old-origin
git remote add origin <url>
git push -u origin --all
git push -u origin --tags

下面我做了,在一个现有目录下签出主分支:

git init
git remote add origin [my-repo]
git fetch
git checkout origin/master -ft

这是我遇到的所有方法中最好的

只克隆存储库的.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重置-混合头部