【问题标题】:clone git repo to a non-empty folder将 git repo 克隆到非空文件夹
【发布时间】:2012-11-08 11:45:12
【问题描述】:

我在 git 下有一个大型 C 项目。其他人有相同的 C 项目,但他没有使用 git。

我们都从相同的基线开始,但我只是做了一个git init / git add . 并开始使用 git。

我想将我的 git 管理更改合并到另一个分支并在他的项目文件夹中初始化 git,这样我们就可以同步并使用 git。

你会如何在 git 中做到这一点?

【问题讨论】:

标签: git git-merge git-clone git-remote


【解决方案1】:

你的朋友应该$ git init$ git add .$ git commit -a他的代码。

你们两个应该有相同的远程存储库:$ git remote add origin <your-repository-url> (使用 GitHub 看起来像 https://github.com/username/repository.git

你的朋友必须$ git pull origin master (它会将远程分支合并到他的本地分支)

他只需要$ git push -u origin master,你就可以$ git pull,应该没问题

【讨论】:

  • 这位朋友也可以运行git fetch origin master:arjor 以在单独的分支中获得 OP 的贡献,然后在他们方便的时候使用git merge arjangit rebase arjan(当然只有在尚未pushed 时才进行变基。 ..)
【解决方案2】:

首先将你的 repo 克隆到一个空白目录中。

然后,在新的 repo 中,为您朋友的工作创建并签出一个新分支。分支点应该是你们两个有相同来源的最后一次提交(可能是你的初始提交)。

然后您将他的资源复制到新树中。 Git status/diff 现在应该会显示他所做的修改。

在该分支上执行git commit,您应该拥有一个包含两个开发分支的存储库。

执行git merge master 将您的工作(位于“master”分支上)合并到您同事的新分支中。享受解决冲突的乐趣,提交,就完成了。

如果您希望将更改返回到您自己的存储库中,那么您是否可以从他的存储库中使用ssh:// URL(如果您具有对机器的 ssh 访问权限)pullfetch,或者file:///可以直接看到。

【讨论】:

    猜你喜欢
    • 2012-07-06
    • 1970-01-01
    • 2017-08-15
    • 2014-12-21
    • 1970-01-01
    • 2013-10-31
    • 2016-08-29
    • 2014-08-22
    • 2013-08-07
    相关资源
    最近更新 更多