【发布时间】:2017-12-12 03:38:58
【问题描述】:
我已经看到了有关如何将不同的目录推送到不同的分支、如何从不同的存储库中为不同的目录拉/推等的答案。但是我遇到了将这两件事结合起来的问题。
所以我在 mydir/ 中有一个 git 存储库,它有两个子目录:
1.)mydir/包 2.)mydir/foo。
mydir/package 是从另一个 git 存储库克隆的,我已经对其进行了设置,以便它从原始 git 存储库中提取并推送到个人存储库。我主要在这个 repo 的开发分支中工作。
mydir/foo 目录是我编写个人代码的地方。它仅拉取和推送到个人仓库。它使用 mydir/package 中的源代码,这就是我将这些目录保存在一个 repo 中的原因。
现在的样子:差不多好了。我移动到 mydir/package 文件夹,我可以根据需要更新、推送、拉取到正确的位置(不是正确的分支,而是正确的存储库)。 mydir/foo 也是如此。
哪里出错了:如果我是从mydir/push,那么去看看个人repo,有两个分支;掌握和发展
Master:repo 有一个文件夹 /foo,这很好。但是没有/package文件夹
开发:repo 包含 /package 的所有内容。没有 /foo 文件夹,也没有父目录。
为什么会出现问题:我已经能够对所有内容使用源代码控制,但是将两个目录的推送/更改放在两个单独的分支上很烦人。我必须分别进入每个目录并提交/添加/推送/等,然后每个目录都转到不同的分支。文件已备份,这很好,但对于下一个尝试克隆我的 repo 的人来说,这并不实用。
我想要什么:除了从 mydir/ 推送之外,这个 repo 的几乎所有内容都对我有用。我想从 mydir/ 中提取以从我的个人仓库中提取(这样我就不会意外更新 mydir/package 文件夹)。我仍然想从 mydir/package 中提取开发以从原始包的开发分支中提取。我只想从 mydir 提交/添加/推送来表示“更新个人 repo 的主分支以现在包含 mydir/package 和 mydir/foo 的当前状态。”当我查看这个个人 repo 时,我想查看 master 分支上的两个文件夹。
我尝试了什么->发生了什么: 1.) git push remote master(来自 mydir/package 文件夹)。
错误 ! [rejected] master -> master(先获取) 错误:未能将一些参考推送到“mypersonalrepo.git”
2.) 在个人仓库上拉取请求以合并开发和主分支
然后 mydir 文件夹有 mydir/package(它仍然在开发分支上并且有我所有的修改)、mydir/foo(它在正确的分支上),然后是远程 repo 的 master 分支中的所有文件.
3.) git add package/ -> git push origin master
什么都没有改变。这些文件夹仍然被推送到个人仓库的单独分支。
作为参考,如果我从 mydir/package 键入 git remote show origin 时的样子,也许我需要创建第二个远程仓库来进行这种自定义?
remote origin
Fetch URL: their_package_repo.git
Push URL: mypersonal_repo.git
HEAD branch: master
Remote branches:
develop tracked
master tracked
some_other_branch tracked
Local branches configured for 'git pull':
develop merges with remote develop
master merges with remote master
Local refs configured for 'git push':
develop pushes to develop (fast-forwardable)
master pushes to master (local out of date)
【问题讨论】:
标签: git version-control merge branch git-remote