2017-01-03 79 views
0

我有一个git回购在目录中有文件。使用git回购覆盖目录

我在我的Linux机器上有一个目录,它与旧版本 有类似的文件来自某处。

Linux中还包含数千个重要文件,这些文件不能被移动,复制或删除,并且不受git管理。

我需要一个命令,将下载/结帐/克隆(我不在乎)该回购协议中的git文件 ,并覆盖任何现有文件的旧版本和/或创建它们,如果它们不存在但不删除非托管数据。

没有我试过的作品,你如何做到这一点?

谢谢。

+0

是你计划从Git的某个分支做到这一点?无论如何,我不认为Git与你的问题有太大关系。您的问题减少到有选择地用另一个文件夹中的内容覆盖一个文件夹。 –

回答

2

如果覆盖文件较旧,如果它们不存在则创建新文件,我认为您需要使用rsync。网上有很多指南。 rsync也有一个--dry-run选项来测试您正在运行的命令的效果。

+0

是的'rsync'是为你一般想要做的事情而做的工具。 – willoller

0

所以你想最终得到一个你最新版本的git仓库,但是有很多额外的文件你不想让git来管理?这可能不是一个好主意,因为原因,但我会继续前进。

关闭我的头顶,所以一定要小心:

你可以在当前目录中尝试git init。这将开始管理目录的git,但一切都将git“新”。

接下来,git add remote将您现有的回购添加为远程。这会让你在不改变工作目录的情况下访问最新的git状态。

然后,git reset origin/master --hard应导致任何跟踪的文件被覆盖最新版本从origin。如果你的本地文件系统上有更新的文件,它们将被覆盖!所以小心!


(但你可能要重新考虑整个事情。我将与我在Linux中项目的重新检出快乐,在另一个目录,并保留老版本分开)