什么时候建议使用git rebasevs. git merge?
成功改造后我还需要合并吗?
我和其他开发人员一起在一个项目上使用Git几个月了.我有几年的SVN经验,所以我想我给这段关系带来了很多包袱.
我听说Git非常适合分支和合并,到目前为止,我只是没有看到它.当然,分支很简单,但是当我尝试合并时,一切都变得很糟糕.现在,我已经习惯了SVN,但在我看来,我只是将一个低于标准的版本系统换成了另一个.
我的搭档告诉我,我的问题源于我不顾一切地合并,并且我应该在很多情况下使用rebase而不是合并.例如,这是他所规定的工作流程:
clone the remote repository
git checkout -b my_new_feature
..work and commit some stuff
git rebase master
..work and commit some stuff
git rebase master
..finish the feature
git checkout master
git merge my_new_feature
Run Code Online (Sandbox Code Playgroud)
基本上,创建一个功能分支,始终从主分支到分支,并从分支合并回主分支.需要注意的重要一点是,分支始终保持在本地.
这是我开始的工作流程
clone remote repository
create my_new_feature branch on remote repository
git checkout -b --track my_new_feature origin/my_new_feature
..work, commit, push to origin/my_new_feature
git merge master (to get some changes that my partner added)
..work, commit, push to origin/my_new_feature
git merge master
..finish …Run Code Online (Sandbox Code Playgroud) 我读了这个,但没有解释分支默认.在一篇文章中对所有内容进行简短的解释会很好.谢谢
我们已决定为我们添加到移动应用程序中的每个新功能创建新的SVN分支.这背后的最终目标是保留每个代码更改的历史记录(当我们手动将项目文件夹复制到SVN而不是创建和合并分支时,这不会发生).
我的问题是,到目前为止,我无法将更改从一个分支合并到另一个分支.
我已经提到以下帖子但没有成功:
这是我到目前为止所尝试的:
我有两个功能分支,如下面Tortoise SVN中所示:
我想将分支Feature_A3中的更改合并到分支Feature_A2中.为此,我Merge from在A2工作副本中使用Android Studio的VCS中的选项:
然后它要求我选择要从(A3)合并的分支或配置其他分支:
我点击配置分支,只是为了显示现有的分支配置:
如您所见,A2是Trunk,A3是分支.它是否正确?
然后它问我想要合并到A2的A3部分.我选择/src目录(存在相关更改的位置):
然后它慷慨地给了我三种不同的方式来执行合并操作:
我选择了第三个选项,因为它直接给了我需要合并的更改:
我点击Merge Selected和BAM!我每次都会收到此错误:
关于"未解决的冲突"或"跳过的项目"是什么,没有任何线索.为什么我会收到此错误,如何将A3中的更改合并到A2中?有人可以帮忙吗?所有答案将不胜感激.谢谢 ...
我一直在关注以下官方的Intellij IDEA文档:
请注意:
目前我使用的是Subversion,而不是Git.
我本地工作副本的目录结构与SVN repos的目录结构不完全相同.这可能是错误的原因吗?
答案 ...
感谢Peter Parker,尤其是Yoav Aharoni的宝贵意见.正如Yoav正确指出的那样,确实是指定分支位置文件夹的方式.它需要是包含分支的文件夹,而不是分支文件夹本身:正如Peter正确地说的那样,选中"Include merged revisions"会显示合并的历史记录.我现在能够从IDE本身合并,并在TortoiseSVN中查看合并的历史记录.没有命令行!好极了!!! …
svn android intellij-idea branching-and-merging android-studio