如何在git中复制目录,跟踪新文件?

问题描述 投票:0回答:5

有没有一种简单的方法可以在本地存储库中创建文件夹的副本,跟踪完全相同的文件(不关心提交历史记录或未跟踪的文件)?

该文件夹包含跟踪和未跟踪(但不忽略)文件和目录的层次结构。我基本上想递归地复制跟踪的结构。除了复制所有内容,然后仅手动添加相关文件(有很多)之外,还有其他方法吗?

git directory
5个回答
7
投票

如果你不关心历史记录,你可以复制目录然后

git add
它:

$ cp -R old_dir new_dir

$ git add new_dir

$ git commit -m "first revision of new_dir's copied files"

1
投票

您可以转到您想要的目录并再次克隆您的 git 项目。

$ cd "new_directory"
$ git clone "your_project_git_address"

1
投票

如果您想在 git 中拥有两个相同的项目,请按照以下命令行操作:

$ mkdir "duplicated_project"
$ cd "your_project_path"
$ sudo cp -R * "duplicated_project_path/"

然后你必须在 git 上添加/定义这个重复的项目,这样你就可以按照:

使用命令行教程将现有项目添加到 GitHub:

GitHub 参考

或者

您可以在 Web ui 中复制您的项目:

即如果您从 Gitlab 使用,您可以复制/导出您的项目,例如以下说明:

  • 在左侧的 Setting 选项卡中 --> 选择 General --> 展开 Export project --> 单击 export

然后按照以下命令行操作:

$ git clone "duplicated/exported_project"

[注意]:

在这些提到的方法中没有干扰提交。


1
投票

基本上你的问题是如何将版本化文件与未版本化文件分开。 这个答案假设您设置了一个服务器,您可以在其中推送存储库以进行备份等。 将您的分支开发推送到服务器源: git push origin dev
请注意,只有版本控制的文件才会发送到服务器。 使用网络浏览器查看服务器并找到您要复制的文件夹。 右键单击要复制的文件夹,然后选择下载为 zip。 在 Windows 中创建一个文件夹 new_project。将 zip 文件中的文件夹复制到 new_project。 现在您将所有版本化文件复制到 new_project。 将新项目添加到 git:git add new_project。 这将通过一个命令将文件夹 new_project、所有文件和子文件夹添加到 git。 享受你的新项目吧。


1
投票

解决办法是

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 的解决方案 - 这意味着再次下载所有内容。

© www.soinside.com 2019 - 2024. All rights reserved.