在TFS(我们正在使用2012)中,为什么默认将源文件夹转换为分支?

我真的不认为源是一个分支.这有什么优点/缺点?
有两个分支,我如何找到两个分支合并的最新版本?是否有标准的Mercurial命令来做到这一点?
这与如何在SVN中找到两个分支的共同祖先的问题相同?,但对于Mercurial而不是颠覆.
我不明白为什么Lazy Badger的答案是对的,所以我不得不做一点画,现在我明白了:
当两个分支合并时,它们实际上并未"合并",但是来自一个分支的更改将集成到第二个分支中.这意味着合并提交仅属于原始分支,而不属于合并分支.这就是合并修订是祖先修订的两个孩子之一的原因.
这可能是最好看的图片:
default o----o----a---b---o---o
\ \
other `-o---o---m---o
ancestor(default,other) == a
children(ancestor(default,other)) == (b,m)
children(ancestor(default,other)) and merge() == m
Run Code Online (Sandbox Code Playgroud) 我们使用git-flow来处理修补程序和功能,使用开发分支和主分支(用于生产).
将临时分支添加到组合中的最简单方法是什么,以便我们可以在开发过程中验证正在进行生产的工作,同时仍然保持git-flow的有用性?
我听说在Mercurial存储库中创建分支的唯一方法是在工作副本中进行更改,然后将它们提交到新分支.
在Subversion中,我可以创建一个分支而无需进行更改(通过复制trunk到下面的路径tags) - 是否可以在Mercurial中执行此操作?
我目前只看过TortoiseHg,所以这可能只能通过命令行工具完成,我不知道.
我的工作流程是:
提前谢谢了.
我一直试图围绕git分支模型.我一直在关注http://nvie.com/posts/a-successful-git-branching-model/以获取一些想法并从Subversion获得一件我真正期待的事情就是在一个地方进行改变将它合并到需要它的所有分支.在Subversion中,我们最终做了很多代码副本.
但是我仍然没有完全理解这一点.这是我所拥有的标准类型的工作流程,它总是会产生冲突.
# create new version branch
git checkout master
git checkout -b v3
vim pom.xml # change branch version to "3.1-SNAPSHOT"
git commit -a
git checkout master
vim pom.xml # change master version to "4.0-SNAPSHOT"
git commit -a
Run Code Online (Sandbox Code Playgroud)
因此主设备处于4.0-SNAPSHOT,分支处于3.1-SNAPSHOT.
不是我想在分支上创建一个修补程序并将其移动到主干.
git checkout v3
git checkout -b hotfix
vim file.txt # make a bugfix change
git commit -a
git checkout v3
git merge hotfix # this works fine
git checkout master
git merge hotfix # this has a …Run Code Online (Sandbox Code Playgroud) 我已经开始在一个分支上做一些工作了,我认为这是一个错误的分支.有没有办法将分支移动到不同的分支.
例如:
A -- B -- C -- D -- HEAD
\-- E -- F -- G -- H -- I -- J
\-- K -- L
Run Code Online (Sandbox Code Playgroud)
我想要这个:
A -- B -- C -- D -- HEAD
\ \-- K -- L
\
\-- E -- F -- G -- H -- I -- J
Run Code Online (Sandbox Code Playgroud) 推送后我一直在远程存储库中看到此消息:
1在master后面提交.
此合并具有必须在提交之前解决的冲突.
要手动将这些更改合并到TA20footerLast,请运行以下命令:
> git checkout 7c891f50c557
#注意:这将创建一个独立的头!
> git merge remotes/origin/master
git github bitbucket branching-and-merging git-merge-conflict
我有一些模板/起点代码,我在项目中重复使用.在处理新项目时,我总是想在模板中添加和更改内容.我想,与项目一起开发模板.
我的一些新增内容是特定于项目的,不应该提交给模板.其他人应该.
我打赌我可以使用git,但我不确定如何.我有一个模板的git存储库和每个项目的一个存储库.我想要一些,但不是全部,我做的提交被推回到模板.我可以制作一些未提交的文件子集吗?我应该在一个分支中处理特定于项目的事物而在主分支中处理模板吗?
我非常感谢任何见解.我的google-fu产量很少.
我们在最新的iOS项目中使用Git Flow,我正在尝试使用QA的方式,以便他们可以测试最新版本,以及测试新功能,而无需担心修复了哪些错误哪个分支.
目前,他们已经在release/v1.0.1分支机构进行了测试,该分支机构已经修复了多个错误release/v1.0.同时,我一直致力于为v1.1发布计划的新功能,但同时从develop分支机构分支出来release/v1.0.1,因此没有任何错误修复.
今天,QA部门希望将我的新功能用于试驾.但是,如果我从我的分支创建它们,那么他们已经重新测试和关闭的错误修复都不在那里.因此,我会收到大量关于已经重新引入的错误的投诉和恐慌......我想避免哪些错误!
那么,让他们测试这个的最佳方法是什么?我可以合并release/v1.0.1到我的功能分支,但是我应该确保在发布develop之前我没有合并回来release/v1.0.1...而且我想在一定程度上,这打破了Git Flow方法.我可以创建一个全新的分支,仅用于QA测试,它将我的功能合并release/v1.0.1,但是我如何处理他们在这个分支上找到的任何错误?在QA之后,我将它合并到哪里?
最重要的是,我必须考虑构建号和版本号,以便它们有意义.目前,版本号是用于发布的版本号,并且构建号随着QA的每个新构建而递增.但是,如果他们从两个独立的分支接收构建,我最终可能会发生构建数字冲突,这会引起混淆.
处理这些问题的最佳方法是什么?
我有一个包含许多分支的远程存储库.例如,我的存储库名称是:
http://navis.com/MyRepo.git
Run Code Online (Sandbox Code Playgroud)
它的分支是:
development
production (master)
testing
Run Code Online (Sandbox Code Playgroud)
我想将development分支合并到production(主)分支中.任何人都可以共享一个Git命令来合并两个远程分支吗?
git ×7
git-branch ×2
git-flow ×2
mercurial ×2
bitbucket ×1
branch ×1
git-remote ×1
github ×1
merge ×1
qa ×1
templates ×1
testing ×1
tfs ×1
tfs2012 ×1
tortoisehg ×1