【问题标题】:Map remote repository to an existing directory with files将远程存储库映射到包含文件的现有目录
【发布时间】:2015-10-27 23:12:45
【问题描述】:

我遇到以下问题,找不到解决方案。 我前段时间从 GitHub 下载了存储库 yii2-debug(az 一个 ZIP 文件)。我更改了一些文件(我知道我不应该这样做,但没有其他选择)。现在我想升级到最新版本,我想这样做,下次升级会很容易 - 只需从 GitHub 中提取最新的更改并合并。

  1. 我有一个包含我当前文件的目录(所以是修改后的版本 1)
  2. 我想把这个目录映射到github上的远程仓库
  3. 然后拉取最新的更改(我们称之为版本 2)
  4. 将新更改与我的代码合并

我试过了 git init 在目录上,然后 git remote add origin, 用git branch --set-upstream设置分支

然后我尝试提取最新的更改,但不知何故这并没有奏效。 GIT 认为我的更改是“较新”的,并且所有被拉出的更改都没有合并,而是大多标记为已删除文件或类似的东西。

知道如何正确执行此操作吗?我无法将来自 GitHub 的最新更改合并到我的代码中。 谢谢

【问题讨论】:

  • 你知道你下载的是什么“版本”,我的意思是,你能在github repo中找到对应的内容吗?
  • 是的,我知道版本,但这没关系。我有 2.0.3 版本,做了一些更改,现在有 2.0.4 版本
  • 好,我认为@RichardFearn 的回答应该可以解决问题,从标签 2.0.3 创建新的本地分支。

标签: git github merge git-merge git-remote


【解决方案1】:

我建议您创建上游存储库的新克隆,将克隆中的文件替换为修改后的版本,然后创建包含更改的新提交。

一种方法是删除新克隆中的所有文件,将修改后的版本复制到新克隆中,添加所有文件,然后提交。

一种更快/更简洁的方法是将.git 目录从新克隆移动到包含修改版本的目录中,添加所有文件并提交。

git clone https://github.com/yiisoft/yii2-debug.git
cd yii2-debug
git checkout -b mychanges <branch-or-tag-you-originally-downloaded>
cd ..
mv yii2-debug/.git modified-version
cd modified-version
git add -A # see note below
git commit -m "my changes"

在完成git add -A 之后,您应该使用git status 查看更改。您下载的 zip 和相应的提交可能包含稍微不同的文件(例如,zip 文件可能不包含 .gitignore 文件)。在提交之前查看更改让您有机会取消暂存您实际上并未进行的更改。

完成此操作后,包含您修改的文件的目录是 git 存储库,具有 mychanges 分支,包含在您最初下载的版本之上的单个提交。您可以将较新的分支/标签/提交合并到此分支,或将包含您的更改的提交重新定位到其他分支/标签。

【讨论】:

    猜你喜欢
    • 2018-10-29
    • 2011-11-03
    • 2011-03-19
    • 2012-10-10
    • 2014-11-26
    • 2020-09-23
    • 2012-12-17
    • 1970-01-01
    • 2019-09-23
    相关资源
    最近更新 更多