我目前在两个独立的分支机构中有两个版本的软件。一个版本有重大更改(重命名了一些文件夹,重命名了一些文件,删除了大量文件)。
我希望能够在两个版本上工作 - 例如在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.
命令将所有分支的所有修订从上游仓库复制到本地仓库。是否有命令这样做?
答案 0 :(得分:2)
听起来你有两个回购克隆 - 一个签出到master
,一个签出到some_branch
。这是更明显的"在本地保留两个分支的方法,并不一定有任何问题,但它确实意味着你有两个本地的分支引用集。
如果是这种情况,您可能需要考虑git work-tree
作为选项。通过这种方式,您可以将第二个工作树附加到单个本地仓库,因此可以将每个树签出到不同的分支,而无需复制存储库的其他方面(如ref列表)。这可以使所有内容保持同步变得更加简单。
就你所处的情况而言......对我来说似乎并不明显;了解您使用的确切命令可能会有所帮助。一般情况下,我可以说,当push
因错误消息失败时,pull
可能有所帮助(或者,如果您担心这样做而不知道为什么首先,fetch
,然后检查每个分支的本地和远程引用之间的差异。)
答案 1 :(得分:1)