在这种情况下,git 变基是错误的/正确的(将 git master 与 SourceSafe 存储库同步)



我正在研究一些 git-VSS 互操作,我将 git master 与 SS 同步的方式是

  1. Git 结帐vss_branch

  2. ss get . -w -r -q -Y$SSNAME

  3. Git 结帐大师

  4. git 变基vss_branch主

不确定最后一部分,我阅读它的方式,与这里提到的建议相矛盾

这里的基本逻辑是,"vss_branch"始终只是当前VSS中任何内容的直接副本,"ss get .-W -R -Q -Y$SSNAME"将所有内容作为可写副本安全地从源代码中取出。

我将 master 视为"我的构建分支",因此当我觉得代码"构建就绪"时,我将我的开发分支"git 合并"到该分支上

但是,在阅读了此建议后,我觉得我的做法是错误的。

我目前更喜欢"git rebase"而不是"git merge"的原因是 git merge 引发了大量冲突,而 rebase 则没有。但这似乎很像"那个似乎有效,所以我将使用那个"的方法。我担心实际上,如果我通过多次提交反复更改一段代码,而其他人对同一段代码进行小幅更改,则实际上 git rebase 会导致一遍又一遍地重复相同的合并冲突。

我感谢任何帮助,让我/让我走上正确的轨道

我在 git 中遇到了一个非常有趣的功能

git branch --set-upstream-to <branch/remote>

这允许我

git branch --set-upstream-to vss_branch

这创造了我真正想要的关系。以前我肯定做错了,因为vss_branch是主人的一个分支,而且变基越来越痛苦(更多的变化=更多的时间)。

这允许我使用 git pull,git push 与vss_branch。

默认设置的"git pull"只是将vss_branch拉到主服务器上。

但是因为"master"和"vss_branch"不共享同一个名字,所以我必须使用

"git push . HEAD:vss_branch"

这解决了问题,但是如果你发现自己在这样做,你就在做一些非常奇怪的事情。

鉴于 git 是分布式的,更好的解决方案可能是在您的计算机上创建另一个您实际设置为"origin"的文件夹

例如:

git remote add <NAME> <PATH>

会添加一个新的遥控器,你可以

git remote add origin /c/path/to/alternate/folder

这意味着您需要两个文件夹,但如果其中一个文件夹在外部硬盘驱动器上,那么您实际上正在增加数据保护。

此时您可以使用 git push and pull,然后将另一个文件夹视为您的"上游",这就是我在这里的目的,也是我目前对"设置上游"选项感到满意的原因

它对我来说效果很好,这实际上意味着我想要的是"合并",因为这就是默认的"拉动"所做的。但我不能说这是正确的"答案",因为这更适合我的工作流程和当前对"有效方法"的看法

最新更新