将Git仓库克隆到非空文件夹

4

我有一个大型的C项目使用git进行管理。另一个人也有同样的C项目,但他没有使用git进行管理。

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

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

你如何在git中完成这个操作?


可能是重复的问题:如何克隆到非空目录? - Tobias Kienzler
2个回答

5

你的朋友应该执行以下命令:$ 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(当然,如果还没有 push,则只能使用 rebase...) - Tobias Kienzler

1

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

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

然后将他的源代码复制到新的树中。现在 Git 状态 / diff 应该显示他所做的修改。

在该分支上执行 git commit,然后您应该可以拥有包含开发的两个 fork 的一个 repo。

执行 git merge master,将您的工作(即在“master”分支上的工作)合并到您同事的新分支中。解决冲突,提交,然后你就完成了。

如果您想将更改带回自己的 repo,则可以从他的 repo 中执行 pullfetch,使用 ssh:// URL(如果您具有 ssh 访问权限)或 file: /// (如果您可以直接查看它)。


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