如果我必须在我的开发分支上关注文件:
# file.rb
class Code
def methodA
'aA1'
end
def methodB
'bB2'
end
end
Run Code Online (Sandbox Code Playgroud)
但在我的主分支上,我想将方法分成不同的文件:
# in file.rb
class Code
def methodA
'aA1'
end
end
# in extra.rb
class Code
def methodB
'bB2'
end
end
Run Code Online (Sandbox Code Playgroud)
我可以简单地在开发时创建文件,然后签出以掌握,重新定位并手动分离文件,但是是否可以进行设置以便当我对开发进行更改时它将被转移到文件的右侧"部分"在主人?



以上是合并和rebase的结果.
我的问题是,在最终状态下,C5和C3'是否相同?
或者说,git rebase等于git merge+删除C3?
但是经历了最初的学习过程,我遇到了很多新的术语.我觉得理解这些术语的确切含义对于在使用实时项目时不会犯下不可逆转的错误至关重要.
你能否推荐一个有条不紊地学习关键术语含义的好资料来源,例如origin,master,commit vs. push,refs,heads,clone with checkout等?
我有一个完善的软件工具包,但通常需要小的调整(主要是为了应对来自第三方产品的兼容性问题).我现在希望生成一个"新"版本(改进的API),它将基于原始版本 - 随着时间的推移,它将与现有分支不同,但是几年后,我将需要保持原来的"实时"需要兼容性的现有客户.当然,我还需要确保"调整"也适用于"新"版本,因为这些问题(在大多数情况下!)也适用于"新"版本.
所以 - 我的理想(简单)工作流程将是:
我意识到需要偶尔的人工干预,合并是相互矛盾的,但根据过去手动更改的经验,我希望这种情况很少见.
目前,我正在寻求放弃VSS(是的 - 继续嘲笑我保持这么长时间!),我希望Git会让这很容易,但到目前为止,似乎没有任何"简单" "解决方案,我看到的所有建议都是围绕"rebase"构建的,这对我来说似乎是"错误的",因为rebase似乎做了许多其他的事情,比如重写历史,当我需要的只是一个简单,真实的时候" "根据其他分支的变化"前进.
所有的想法非常感谢!
我想了解更多git rebase.
假设我有这个工作流程,git rebase在这里会有用吗?如果是这样,这将是对提交X迁移到Z的命令(假设不使用摘樱桃)从MASTER到BRANCH.

我需要一些帮助来规划工作流程如何用于最近转换为Git的特定站点开发环境(来自SVN).
我在客户端服务器上有4个开发人员,实时和登台站点,以及一个托管"hub"(裸仓库)以及2个开发人员回购站的开发服务器.我们有几个里程碑的变化要处理,具有未知的完成顺序并由多个开发人员处理.此外,实时网站需要动态完成许多快速修复.
我的主要问题是:
我的大脑开始循环,试图找出最佳的工作流程.作为这篇文章的参考,让我们说我有两个里程碑的变化:移动和重新设计.这是我到目前为止所提出的:
每个开发人员仓库,集线器仓库和阶段仓库都有这些分支:移动,重新设计,主控.现场回购有一个分支:主人
快速修复:开发人员对其主分支进行更改,然后推送到集线器.然后在现场,从中心拉出更改(如果他们需要事先在那里测试,则先进行阶段).
最终阶段和发布"重新设计"MILESTONE:开发人员将重新设计分支推送到集线器并在阶段进行更改.客户端测试和批准.在中心,开发人员将重新设计合并到主人(并且我认为在这里创建一个标签),然后在现场拉主人.或者开发人员在他的副本中合并分支,然后将他的主人推送到集线器会更好.另外,如果创建了一个标签,最好是在现场拉标签(如果可能)而不是拉动主分支?标签应该只驻留在集线器仓库上吗?
我认为,这是一个典型的工作流程.
我们的项目适用于拉取请求.
为了开发新功能,我创建了一个dev.科.当我完成该功能时,在master中进行了一些更改,所以我想将这些更改放入我的分支中,以便我提出pull请求.
从我在互联网上看到的内容有两种选择:
但是,我尝试了两种方法,但是当我提出拉取请求时,它显示所有文件都在此公关中进行了更改.
这是我做的:
在树枝上
-- git commit -a -m "changes i made on my branch"
-- git checkout master
-- git fetch upstream
-- git merge upstream/master
-- git checkout mybranch
-- git merge master (or rebase)
-- git push origin mybranch
Run Code Online (Sandbox Code Playgroud)
结果 - 历史记录中的合并提交显示文件更改:90
从master获取更新到我的分支的正确方法是什么?
类似的情况发生在有人评论我的公关时,我需要更新我的公关.再一次,我最终需要来自master的更改.
谢谢您的帮助.
我正在致力于一个叫做的分支create.我必须将所做的更改提取到我的分支中.我已经做了 -
git checkout master
git pull origin master
现在我必须合并它.合并它的方式是什么?
我试图理解我做错了什么,但什么也没有。我完全糊涂了。我知道合并分支(或提交)的另一种方法是使用“git rebase”。我有 3 个分支:master 和另外 2 个用于不同功能的分支。我们来谈谈master,f1和f2。我正在处理我的 f1,我需要另一个功能,所以我创建了 f2。当我完成 f1 时,master 已经有另一个变化。我想在 master 上 rebase f1。我做到了,我看到了 144 个步骤。我尝试修复所有提交并推送更改。现在我将我的 f2 提交应用到 f1 并决定向 master 发出拉取请求。我尝试在 master 上重新设置 f1,我得到了 244 步。或者它只是对 master 的 4 个新提交。我已经在我当地的主人身上得到了它们。
我感到很困惑。每次我想使用 rebase 时,似乎我都会得到更多真正完成提交的步骤。
我必须说一开始我只是用“git merge”做合并,但我被要求用“git rebase”来做。
我尝试搜索为什么我的步骤太多,我再次遵循教程,但我无法再次尝试修复超过 200 个步骤。很无聊,需要时间。你能解释我更多并帮助解决这种情况吗?我不想现在解决这个问题,然后再得到 300 多个。谢谢
我是一名独立开发人员,我刚刚开始使用Git和私有BitBucket存储库.我不清楚的一点是Merge与Rebase.
我经常在台式机和笔记本电脑之间切换,并且一直使用BB来访问任一平台上的最新代码.我在加载最新提交的代码时一直在使用rebase,因为我认为它基本上清除了该平台(桌面或笔记本电脑)上的所有内容,并确保我拥有与BB相同的代码.那是对的吗?我什么时候应该使用merge这样的动作?
git ×10
branch ×1
commit ×1
git-branch ×1
git-merge ×1
rebase ×1
terminology ×1
web ×1
workflow ×1