我有一个项目的工作副本,没有任何源控制元数据。现在,我想把git-clone复制到这个文件夹中,并保留我的本地更改。
Git-clone不允许我克隆到现有的文件夹。这里的最佳实践是什么?
我有一个项目的工作副本,没有任何源控制元数据。现在,我想把git-clone复制到这个文件夹中,并保留我的本地更改。
Git-clone不允许我克隆到现有的文件夹。这里的最佳实践是什么?
当前回答
作为参考,来自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
其他回答
你可以递归地输入以下命令行:
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
要将一个git repo克隆到一个空的现有目录,请执行以下步骤:
cd myfolder
git clone https://myrepo.com/git.git .
注意。在git克隆命令的末尾。这将把repo下载到当前工作目录中。
下面我做了,在一个现有目录下签出主分支:
git init
git remote add origin [my-repo]
git fetch
git checkout origin/master -ft
通常我将首先克隆初始存储库,然后将现有文件夹中的所有内容移动到初始存储库。每次都管用。
这种方法的优点是您不会丢失初始存储库的任何内容,包括README或.gitignore。
您也可以使用下面的命令来完成步骤:
$ git clone https://github.com/your_repo.git && mv existing_folder/* your_repo
不要克隆,而是获取。在回购中:
git init
git remote add origin $url_of_clone_source
git fetch origin
git checkout -b master --track origin/master # origin/master is clone's default
然后你可以重置树来获得你想要的提交:
git reset origin/master # or whatever commit you think is proper...
你就像克隆的一样。
这里有一个有趣的问题(也是一个没有答案的问题):如何找出你的裸树是基于哪个提交的,因此要重置到哪个位置。