我从GitHub中的一个存储库中分叉了一个分支,并为我提交了一些特定的东西.现在我发现原始存储库有一个很好的功能HEAD.
我想在没有事先提交的情况下合并它.我该怎么办?我知道如何合并所有提交:
git branch -b a-good-feature
git pull repository master
git checkout master
git merge a-good-feature
git commit -a
git push
Run Code Online (Sandbox Code Playgroud) 我和其他开发人员一起在一个项目上使用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) 有人可以帮我理解Git中分支,分支和克隆之间的区别吗?
同样,当我做一个git fetch而不是一个时,它意味着什么git pull?
另外,rebase与之相比,意味着什么merge呢?
我怎样才能将各个提交自己压缩在一起?
他们是如何使用的,为什么使用它们以及它们代表什么?
GitHub如何计算?
git merge和之间有什么区别git rebase?
我跑了git pull一场冲突结束了.我解决了冲突,现在一切都很好(我也使用了mergetool).
当我提交已解析的文件时,git commit file.php -m "message"我收到错误:
fatal: cannot do a partial commit during a merge.
Run Code Online (Sandbox Code Playgroud)
之前我遇到了同样的问题,并且-a在提交中使用完美.我认为这不是完美的方式,因为我不想做出所有改变.我想分别使用单独的注释提交文件.我怎样才能做到这一点?为什么git不允许用户在合并后单独提交文件?我找不到这个问题的满意答案.
我们的开发团队一直在使用GitFlow分支策略,它一直很棒!
最近我们招募了一些测试人员来提高我们的软件质量.这个想法是每个功能都应该由测试人员测试/ QA.
过去,开发人员在单独的功能分支上处理功能,并develop在完成后将它们合并回分支.开发人员将在该feature分支上自行测试他的工作.现在有了测试人员,我们开始问这个问题
测试人员应该在哪个分支上测试新功能?
显然,有两种选择:
develop树枝上最初,我们相信这是肯定的方法,因为:
develop自开发开始以来,该功能已与所有其他功能合并到分支进行测试.develop).他不需要向开发人员询问哪个分支是针对哪个功能的(功能分支是由相关开发人员独立管理的个人分支)最大的问题是:
该develop分支被污染与臭虫.
当测试人员发现错误或冲突时,他会将它们报告给开发人员,开发人员会在开发分支上修复问题(功能分支在合并后被放弃),之后可能需要更多修复.多个子序列提交或合并(如果develop再次在分支上重新创建分支以修复错误),develop如果可能的话,从分支回滚功能非常困难.develop在不同时间有多个功能合并到分支并在其上固定.当我们想要创建仅包含develop分支中某些功能的版本时,这会产生一个大问题
所以我们再次思考并决定我们应该在功能分支上测试功能.在我们测试之前,我们将更改从develop分支合并到功能分支(赶上develop分支).这很好:
develop分支;但是,存在一些缺点
develop分支.这意味着,develop无论如何,当两个功能都合并到开发分支时,您将不得不再次测试分支.你必须记得将来测试这个.以上是我们的故事.由于资源有限,我想避免在所有地方进行测试.我们仍在寻找更好的方法来应对这种情况.我很想知道其他团队如何应对这种情况.
我是Git中的菜鸟,并试图了解git pullvs 之间的区别git rebase.有人可以提供一个示例何时使用哪个选项,因为我觉得两者都有相同的用途.
我在git下有一个项目.我想开始一个新的分支来添加一个主要的新功能.在主分支下,我将继续添加错误修复和次要功能.我定期将主要分支的变化拉到我的"主要新功能"分支.最好的方法是什么?最终,我将"主要新功能"分支合并到主分支中.
抱歉,如果这看起来多余,因为我知道有很多关于Merge和Rebase的问题,但似乎也没有任何关于'Branch Default'的问题.
您将获得一个案例,您可以同时处理多个人(即Android Studio中的Android应用程序).如果有人推送到主分支并且您想要引入新主服务器以便它不会覆盖您仍在处理并且尚未提交并推送到主服务器的工作,那么更新项目/拉动的最佳选项是什么?单击"更新项目"时,Android Studio会列出"合并""重新生成"和"分支默认".听起来,我想做'Rebase'(接着'合并'?),但我不完全确定.
我想在使用vcs或dvcs时学习其他人的工作流程.
请描述您处理以下任务的策略:
您可以随意组织您的答案,不按任务分组,但按照您认为相关的任何分组,但请通过VCS/DVCS进行组织(请不要混用它们).
谢谢.