Git:将本地目录放入版本控制

3

举个例子,假设我在我的主目录中有一个旧的 phpMyAdmin 副本(未受版本控制)。我想将其升级到“stable”分支的最新版本。

因此,基本上我只希望能够执行以下操作:

git pull

我希望将我的phpMyAdmin副本“升级”到最新版本。

这是否可能?我认为我需要首先将phpMyAdmin置于版本控制下。

谢谢!


1
你为什么不直接删除旧版本的phpMyAdmin,然后从头克隆存储库呢?那里面有你想要保留的东西吗? - tobiasvl
@tobiasvl - 目录中有一些文件是创建的(尽管没有修改)。phpMyAdmin只是一个例子。因此,如果我完全删除该目录,这些文件将会丢失。 - Maxim Neaga
1
好的。我相信有一种方法可以实现它(请参见可能的重复内容),因为Git是无所不能的,但我只想将远程repo克隆到另一个目录中,git checkout对应于您本地拥有的旧版本的修订,并且要么只需执行diff -r clone old 或将.git子目录移动到您的旧副本上或其他什么方法。 - tobiasvl
2个回答

5

如果您需要保留现有的代码,则可以使用以下步骤创建一个Git仓库:

cd <dir>; git init; git add --all .; git commit -m 'Initial commit'

然后添加远程并拉取(主分支 -> 主分支)

git remote add origin <path-to-remote>;
git pull origin master

如果您不需要现有的代码库(这似乎不是您正在询问的内容),则:
git clone <path-to-remote> <into-some-dir>

然后,您可以在两个目录(原始目录和新克隆的目录)上使用 diff 工具。


3

您不需要将本地未经修订的代码包含在版本控制中

您可以使用以下命令将存储库克隆到本地:

git checkout

然后执行一个


diff -b path-to-cloned-repo path-to-unrevisioned-local-repo > difference.patch

然后将此补丁应用到您的克隆仓库中:

patch -p1 < difference.patch

在应用补丁之前,您可以进行测试:

patch -p1 --dry-run < difference.patch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接