我有一个大型的C项目使用git进行管理。另一个人也有同样的C项目,但他没有使用git进行管理。
我们都从相同的基线开始,但我只是执行了git init
/git add .
并开始使用git。
我想将我基于git进行的更改合并到另一个分支中,并在他的项目文件夹中初始化git,这样我们就可以同步使用git。
你如何在git中完成这个操作?
我有一个大型的C项目使用git进行管理。另一个人也有同样的C项目,但他没有使用git进行管理。
我们都从相同的基线开始,但我只是执行了git init
/git add .
并开始使用git。
我想将我基于git进行的更改合并到另一个分支中,并在他的项目文件夹中初始化git,这样我们就可以同步使用git。
你如何在git中完成这个操作?
你的朋友应该执行以下命令:$ 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 arjan
或 git rebase arjan
(当然,如果还没有 push
,则只能使用 rebase...) - Tobias Kienzler首先将您的 repo 克隆到一个空目录中。
接下来,在新 repo 中,为您的朋友的工作创建并检出一个新分支。分支点应该是您们两个有相同源代码的最后一次提交(可能是您的初始提交)。
然后将他的源代码复制到新的树中。现在 Git 状态 / diff 应该显示他所做的修改。
在该分支上执行 git commit
,然后您应该可以拥有包含开发的两个 fork 的一个 repo。
执行 git merge master
,将您的工作(即在“master”分支上的工作)合并到您同事的新分支中。解决冲突,提交,然后你就完成了。
如果您想将更改带回自己的 repo,则可以从他的 repo 中执行 pull
或 fetch
,使用 ssh://
URL(如果您具有 ssh 访问权限)或 file: ///
(如果您可以直接查看它)。