我从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) 我有两个分支:master和dev
我想从dev分支创建一个"功能分支" .
目前在分支开发,我做:
$ git checkout -b myfeature dev
Run Code Online (Sandbox Code Playgroud)
... (一些工作)
$ git commit -am "blablabla"
$ git push origin myfeature
Run Code Online (Sandbox Code Playgroud)
但是,在对我的树枝进行可视化之后,我得到了:
--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**
Run Code Online (Sandbox Code Playgroud)
我的意思是分支似乎合并了,我不明白为什么......
我做错了什么?
请问您如何解释我如何从另一个分支分支并推回到功能分支的远程存储库?
所有这些都在分支模型中,就像这里描述的那样.
我有以下存储库布局:
我想要实现的是从工作分支中挑选一系列提交并将其合并到集成分支中.我是git的新手,我无法弄清楚如何正确地做到这一点(在一次操作中不提取合并的樱桃选择提交范围)而不会弄乱存储库.关于这个的任何指针或想法?谢谢!
有谁知道如何在Mac上安装gitk?
从他们的官方网站来看,似乎gitk带有git,但我的git(git version 1.7.12.4 (Apple Git-37)
)的版本没有附带gitk.
brew install gitk
不适用于gitk.
版本信息(从评论中复制):
我经常读到Hg(和Git和......)在合并方面比SVN更好但是我从未见过Hg/Git可以合并SVN失败的地方(或者SVN需要人工干预的地方)的实际例子.您可以发布一些分支/修改/提交/ ....-操作的逐步列表,显示SVN在Hg/Git愉快地移动时会失败的位置吗?实用,非常特殊的情况请...
一些背景:我们有几十个开发人员在使用SVN进行项目,每个项目(或一组类似项目)都在自己的存储库中.我们知道如何应用发布和功能分支,所以我们不会经常遇到问题(即,我们一直在那里,但我们已经学会克服Joel的问题 "一个程序员给整个团队造成创伤"或"需要六个开发人员两周才能重新整合分支机构").我们的发布分支非常稳定,仅用于应用错误修正.我们的中继线应该足够稳定,能够在一周内创建发布.我们还有一些开发人员或开发人员可以使用的功能分支.是的,它们在重新集成后被删除,因此它们不会使存储库混乱.;)
所以我仍然试图找到Hg/Git优于SVN的优势.我很想获得一些实践经验,但目前还没有任何我们可以移动到汞/ GIT中还没有更大的项目,所以我坚持用只含有少量由文件小型人工玩的项目.而且我正在寻找一些你可以感受到Hg/Git令人印象深刻的力量的案例,因为到目前为止我经常读到它们但却未能自己找到它们.
我有2个分支:
我结帐branchB
,并在我在那个分支上修理一个小东西.
commit f2c88cad3d7648cad9c12e724d09db0952abec63
Author: Name <email>
Date: Fri Mar 18 09:10:22 2016 -0400
Fix small bug on dashboard
Run Code Online (Sandbox Code Playgroud)
然后,我做了git push origin branchB
我应该做的
git push origin branchA branchB
现在,在branchB我有
commit f2c88cad3d7648cad9c12e724d09db0952abec63
Run Code Online (Sandbox Code Playgroud)
但我没有在branchA上
如何将1个提交复制f2c88ca
到我的branchA中?
任何关于此的提示将非常感谢!
我有一个主分支,其中包含一些不会被释放的功能.我被要求从master中删除这些功能并创建一个包含它们的新分支,以便我们稍后可以合并回master.
我采取的步骤是:
期望是我会继续研究"NewFeatures"并定期将master合并到"NewFeatures"中,这样当我合并回来时,它是无缝的.
现在,当我想让"NewFeatures"与master保持同步时,master想要删除NewFeatures中的所有代码.
我的问题是,用Git"从主人那里删除一堆功能并将它们放入另一个分支以便以后合并"的合适方法是什么?
更新 感谢您的回复.我已经制作了一张希望能够解释事物的图表.最大的问题是,在从main到feature的第一次合并(第二行的第一个xy)中,主分支想要删除所有y,因为我删除了所有y.
- y - x - y - (remove y's) - x - x - (release x)-x - x - xy - xy - xy - (release xy)
\ \ \ /
y - y - y - y - y - xy - y - y - xy - (done)
更新2 我最后将分支移动到刚刚从main删除NewFeature(但我已经删除了已删除的文件)然后将已删除的文件复制回来.这样,main可以合并到NewFeature而不会杀死东西,而NewFeature可以合并回主要没有问题.我丢失了一些提交日志跟踪,但它似乎比接下来三天的挑选文件更好.
以下帮助似乎是正确的方法,但这种方式似乎对我来说足够好了(讨论引导我走向我最终做到的方式,所以谢谢你们).
谢谢,Brian