我试图弄清楚如何将分支从单独的仓库合并到当前.
我有以下内容:
PJT1 - 包含分支默认和foodog
PJT2 - 包含分支默认值
来自PJT2,我做了以下几点:
$ hg fetch -y ../PJT1 -r foodog -m "this is a test"
Run Code Online (Sandbox Code Playgroud)
现在,如果我查看PJT2,我会看到正确的文件和更改.但是,如果我这样做hg branches,我会得到以下内容:
[someone@myhome pjt2]$ hg branches
foodog 1:c1e14fde816b
default 0:7b1adb938f71 (inactive)
Run Code Online (Sandbox Code Playgroud)
并hg branch揭示以下内容:
[someone@myhome pjt2]$ hg branch
foodog
Run Code Online (Sandbox Code Playgroud)
如何从PJT1的foodog分支机构获取PJT2 分支的内容default?
我有两个分支.分期和Beta.暂存中包含代码(包括文件),我根本不需要.如何让Beta完全覆盖Staging,以便这些文件或代码都不会从Staging合并到Beta.
我看到有些人建议这样做:
git checkout staging
git merge -s ours beta
Run Code Online (Sandbox Code Playgroud)
但我不相信预先存在的文件会是"代码冲突",因此不会被删除.我错了吗?如果我是对的,我将如何做到这一点?
我习惯有一个主分支(主)和主题分支工作.但我现在正在开展一个项目,有两个主要分支(主要和实验),我不确定如何最好地将我的主题分支合并到两个分支中?
这是正确的方法吗?如果没有,有人可以让我知道正确的方法.
(master)$ git checkout -b bugfix
# do bug fix here
(bugfix)$ git commit -a -m 'Fixed bug.'
(bugfix)$ git checkout master
(master)$ git merge bugfix
(master)$ git checkout bugfix
(bugfix)$ git rebase experimental
(bugfix)$ git checkout experimental
(experimental)$ git merge bugfix
Run Code Online (Sandbox Code Playgroud)
谢谢.
我目前正在从事一个项目,在这个项目中,分支和合并从一开始就没有起到很好的作用.为了改变这种状况,我们一直在讨论各种不同的方法.我假设每个人都有自己的哲学关于如何做这种事情,所以它似乎也在这里.
我们一直在谈论的一件事是按功能分支.我们碰巧对这种特殊的方法有什么不同的看法.
你有过这样做的经验吗?它运作得好吗?你有问题 - 什么样的问题?
我知道这个问题确实没有正确的答案,但我发现听到全世界其他开发人员的意见非常有趣,而stackowerflow似乎是一个很好的选择.
我今天早上醒来,看了我的开发团队在BitBucket上的一个私有存储库的提交历史.我看到了这个:
匿名犯了fcde879
MERGE将https://bitbucket.org/abc/xyz的分支"开发"合并到开发中
这有点不寻常.我的猜测是,这是从没有正确配置git的新机器推出的.不过,我不确定为什么这样做.在BitBucket上,它显示两个单独的哈希作为提交父项,但它没有其他提交的"查看原始提交"选项.
我检查了那个分支,拉了,并手动查看了日志.
sidious@DS-1:/path/to/repo$ git log -1 --format=raw
tree 2931d14f48e61eaf0bbe0660af5b5dd76c07f063
parent 6bb38dee681df7620ffa42b6790641a7873166f2
parent f59c82e19e3e79310a53e273bab78139c49ff063
author root <root@somemachine> 1437069530 +0000
committer root <root@somemachine> 1437069530 +0000
Merge branch 'develop' of https://bitbucket.org/abc/xyz into develop
Run Code Online (Sandbox Code Playgroud)
据我所知,6bb父级在开发分支上,而f59父级似乎来自不同的分支.很难说出发生了什么.
我搜索但找不到答案,我需要回到研究中,因此我在这里提出我的问题:为什么git将一个分支合并到自身?或者说,为什么这个命名法被用作提交消息?
这是我的情景:
我的项目遵循主题分支模式.
我创建了一个分支来修复一些问题,让我们调用这个分支problem_fixes.我进行了更改,并提交了拉取请求.
我需要开始处理一个新功能,所以我创建了一个名为my_feature的第二个分支并提交了一系列更改.
在某些时候,我意识到my_feature依赖于尚未被接受和合并的problem_fixes(my_feature分支依赖于第一个分支的一些修复,没有它们我无法取得进展).
如果没有捣乱,我的项目会更快地接受并合并我的第一个分支,这里最好的流程是什么?
我想知道我是否需要基于problem_fixes(而不是master)启动新的第三个分支并在我的提交中合并到my_feature?或者,如果我简单地将problem_fixes合并到my_feature并继续工作也可以 - 假设problem_fixes首先合并为master,当my_feature合并时理论上应该没问题(?)
我正在为我的项目使用Git并尝试遵循最佳实践:
git merge --squash.这使我的开发分支保持清洁.这应该保留我们的历史,并使用gitk,我们可以看到所有提交的位置.但是,我希望能够只看到应用于主分支的提交.我试过了:
git log master
git show-branch
Run Code Online (Sandbox Code Playgroud)
这些都不显示只是在历史的主分支.有没有办法轻松做到这一点?
我在根据TFS Ranger团队提供的最佳实践了解如何配置TFS时遇到了问题.问题是这样的:
我公司有几种产品可以使用共享的公共代码库.
> $/Core
> -> /Main/Source (Parent Branch)
>
> $/Product1
> -> /Main/Source
> -> /Main/Source/Core/Source (Child Branch from $/Core)
> -> /Main/Source/...
>
> $/Product2
> -> /Main/Source
> -> /Main/Source/Core/Source (Child Branch from $/Core)
> -> /Main/Source/...
Run Code Online (Sandbox Code Playgroud)
因此,我们有一个团队集合,并说这个例子有三个团队项目.($/*是一个团队项目)
我们的初始版本分支有点痛苦.我们不是分支/ Main到/ Releases,或/ Main to/Development,而是分别对每个项目进行分支.(不是团队项目......解决方案项目.)
这是由于无法嵌套分支根.(参见TFS错误:TF203028和TF203071)
根据TFS游侠指南和我们修订的分支发布,修补程序,开发方法,我们应该从/ Main而不是/ Main/Source/Proj1,/ Proj2,/ Proj3等分支.这只是一个相当大的烦恼.
理想情况下,我们希望:
> $/Product1
> -> /Main/ (Branch - Parent)
> -> /Releases
> -> /1.x
> /1 Service Pack (Child Branch from $/Product1/Main …Run Code Online (Sandbox Code Playgroud) 我有一个分支,说" XYZ ",我工作并在该分支上做了一些提交,然后将它与我的主分支合并.现在,我想在我的代码中做一些更改,并希望使用相同的分支.我没有删除分支.
我可以再次使用同一个分支吗?我可以再次将新提交与master合并吗?或者是创建另一个分支的唯一解决方案?