Git - 如何在两个单独的文件夹中的两个独立分支上工作,并毫无问题地推送到公共源

时间:2017-05-04 12:06:44

标签: git tortoisegit

我目前在两个独立的分支机构中有两个版本的软件。一个版本有重大更改(重命名了一些文件夹,重命名了一些文件,删除了大量文件)。

我希望能够在两个版本上工作 - 例如在master中执行错误修复,将其推送到原点,也可以将其合并到另一个分支中。

我只是试图这样做,并有点困惑。我在master中做了bug修复,然后推了推。我将master拉到另一个分支文件夹中。这似乎也合并了。我把结果推了推。

现在,如果我在主文件夹中进行另一次更改,并尝试推送所有分支,我会收到投诉“更新被拒绝,因为推送的分支提示位于其远程对应的后面”与其他分支有关。

然后我试图将另一个分支拉到我的主文件夹中,但这确实是一个可怕的合并,我最终得到了错误的分支。我想我已经恢复了,但我仍然无法从我的主文件夹中推送。

显然我误解了使用TortoiseGit的正确方法,有人可以告诉我应该如何处理吗?

.

的结果
git branch -vv

我认为我(错误地)期望in master folder: CodeFirst 3b4d37b [origin/CodeFirst] Show 25 entries in DataTables if the screen is big enough. CodeFirstWebFramework be03722 Added DocumentMemo to report fields. SilverstreamMerge 778b791 default.js merge * master 6c1254c [origin/master] Prevent Download button appearing twice in reports. in branch (CodeFirstWebFramework) folder * CodeFirstWebFramework 08b9117 Merge branch 'master' of //router/var/svn/AccountServer into CodeFirstWebFramework master b7994b3 [origin/master: behind 2] Validate Schedule.RepeatFrequency in origin (upstream repo on another machine) CodeFirst 3b4d37b Show 25 entries in DataTables if the screen is big enough. CodeFirstWebFramework 08b9117 Merge branch 'master' of //router/var/svn/AccountServer into CodeFirstWebFramework SilverstreamMerge 778b791 default.js merge * master 6c1254c Prevent Download button appearing twice in reports. 命令将所有分支的所有修订从上游仓库复制到本地仓库。是否有命令这样做?

2 个答案:

答案 0 :(得分:2)

听起来你有两个回购克隆 - 一个签出到master,一个签出到some_branch。这是更明显的"在本地保留两个分支的方法,并不一定有任何问题,但它确实意味着你有两个本地的分支引用集。

如果是这种情况,您可能需要考虑git work-tree作为选项。通过这种方式,您可以将第二个工作树附加到单个本地仓库,因此可以将每个树签出到不同的分支,而无需复制存储库的其他方面(如ref列表)。这可以使所有内容保持同步变得更加简单。

就你所处的情况而言......对我来说似乎并不明显;了解您使用的确切命令可能会有所帮助。一般情况下,我可以说,当push因错误消息失败时,pull可能有所帮助(或者,如果您担心这样做而不知道为什么首先,fetch,然后检查每个分支的本地和远程引用之间的差异。)

答案 1 :(得分:1)

有一个名为“cherry pick”的Git方法:如果你在分支中有提交,你可以在另一个分支上应用这个提交。尝试使用它,但如果提交包含由于重命名而不存在的文件,我认为这种方法不起作用(我认为没有可行的解决方案)。

切换到要应用提交的分支,在TortoiseGit中打开存储库的日志(在TortoiseGit上下文菜单中显示日志)。在左上角选择所有分支或已应用提交的分支。找到提交,右键单击它,樱桃选择此提交。如果成功不要忘记推:) enter image description here