有没有一种简单的方法可以在本地存储库中创建文件夹的副本,跟踪完全相同的文件(不关心提交历史记录或未跟踪的文件)?
该文件夹包含跟踪和未跟踪(但不忽略)文件和目录的层次结构。我基本上想递归地复制跟踪的结构。除了复制所有内容,然后仅手动添加相关文件(有很多)之外,还有其他方法吗?
如果你不关心历史记录,你可以复制目录然后
git add
它:
$ cp -R old_dir new_dir
$ git add new_dir
$ git commit -m "first revision of new_dir's copied files"
您可以转到您想要的目录并再次克隆您的 git 项目。
$ cd "new_directory"
$ git clone "your_project_git_address"
如果您想在 git 中拥有两个相同的项目,请按照以下命令行操作:
$ mkdir "duplicated_project"
$ cd "your_project_path"
$ sudo cp -R * "duplicated_project_path/"
然后你必须在 git 上添加/定义这个重复的项目,这样你就可以按照:
使用命令行教程将现有项目添加到 GitHub:
或者
您可以在 Web ui 中复制您的项目:
即如果您从 Gitlab 使用,您可以复制/导出您的项目,例如以下说明:
然后按照以下命令行操作:
$ git clone "duplicated/exported_project"
[注意]:
在这些提到的方法中没有干扰提交。
基本上你的问题是如何将版本化文件与未版本化文件分开。
这个答案假设您设置了一个服务器,您可以在其中推送存储库以进行备份等。
将您的分支开发推送到服务器源: git push origin dev
请注意,只有版本控制的文件才会发送到服务器。
使用网络浏览器查看服务器并找到您要复制的文件夹。
右键单击要复制的文件夹,然后选择下载为 zip。
在 Windows 中创建一个文件夹 new_project。将 zip 文件中的文件夹复制到 new_project。
现在您将所有版本化文件复制到 new_project。
将新项目添加到 git:git add new_project。
这将通过一个命令将文件夹 new_project、所有文件和子文件夹添加到 git。
享受你的新项目吧。
解决办法是
git clone
目录。然后需要处理远程源 url(否则将设置为克隆源)。例如:
# Clone the repository
git clone <existing directory> <new directory>
cd <new directory>
# Set origin url to the same one as old repository
git remote set-url origin `git -C <existing directory> config --get remote.origin.url`
另一个较慢的选择是从远程存储库(github / bitbucket?)克隆,这是 @Sergey_S 的解决方案 - 这意味着再次下载所有内容。