我已经使用了一个本地的git仓库,与我的团队的CVS仓库进行数月的交互。 我做了一个几乎神经质的分支,其中大部分已经合并到我的箱子里了。 但命名开始成为一个问题。 如果我有一个简单的标签命名的任务,但是我分三个阶段完成,每个阶段都包含自己的分支和合并情况,那么我可以每次都重复分支名称,但这会使历史有点混乱。 如果我在名称上更加具体,每个阶段都有单独的描述,那么分支名称就会变得漫长而笨拙。 我确实在这里学习了一些旧线程,我可以用这个名字来命名分支,比如topic / task,或者类似的东西。 我可能会开始这样做,看看是否有助于保持组织更好。 命名git分支的一些最佳实践是什么? 编辑:没有人提出任何命名约定。 我完成删除分支。 由于pipe理层不断调整优先顺序,我恰好碰巧有几个。 :)作为一个为什么我可能需要在一个任务上有多个分支的示例,假设我需要将任务中的第一个离散里程碑提交给组的CVS存储库。 在那个时候,由于我与CVS的交互不完善,我会执行这个提交,然后杀死那个分支。 (如果我试图在这一点上继续使用同一个分支,我已经看到了太多与CVS交互的奇怪现象。)
我想得到一个Git仓库中所有分支的列表,其中“最新鲜的”分支在最上面,“最新鲜的”分支是最近被承诺的分支(并且因此更可能是我想要注意)。 有没有一种方法可以使用Git来(a)通过最新的提交对分支列表进行sorting,或者(b)以某种机器可读的格式获取分支列表以及每个分支的最后提交date? 最糟糕的情况是,我总是可以运行git branch来获取所有分支的列表,parsing它的输出,然后对每个分支的git log -n 1 branchname –format=format:%ci来获取每个分支的提交date。 但是这会在一个Windows机器上运行,在这个机器上启动一个新的进程相对比较昂贵,所以如果有很多分支机构,每个分支启动一次git可执行文件就会变慢。 有一种方法可以用一个命令完成所有这些吗?
我和我的同事正在研究同一个存储库,我们已经将它分成两个分支,每个分支在技术上适用于不同的项目,但是它们有相似之处,所以我们有时想要从分支中重新提交给* master。 不过,我有分支,我的同事怎能具体拉那个分支。 回购的git clone似乎并没有为他在本地创build分支,尽pipe我可以看到他们在推动我的结束后依然活着。 另外,当我最初做分支时,我做了-b checkout 。 不知道这是否有很大的不同? iMac:test_solar dave$ git branch -r origin/HEAD -> origin/master origin/daves_branch origin/discover origin/master git fetch origin discover git checkout discover 这是我跑的命令。 但绝对不行。 我希望能够检查出该分支,然后推送并恢复来自各个协作者或工作站的分支更改。
我想合并两个已经分离了一段时间的分支,并想知道哪些文件已被修改。 遇到这个链接: http : //linux.yyz.us/git-howto.html这是非常有用的。 比较我遇到的分支的工具是: git diff master..branch git log master..branch git shortlog master..branch 想知道是否有像“混帐状态master..branch”只看到这两个分支之间的不同文件。 没有创build一个新的工具,我认为这是最接近你现在可以做到这一点(当然,如果一个文件被修改多次,这将显示重复): git diff master..branch | grep "^diff" 想知道是否有我错过了…
最近我从SVN切换到Mercurial。 现在我想知道如何根据好的实践来实现Mercurial中我想要的分支工作stream程,希望其他开发人员能够理解存储库中会发生什么。 这是工作stream程: 通常我有一个中继/默认分支,在当前版本系列的工作发生。 假设这是1.x. 同时我使用一个分支2.x在下一个主要版本上工作。 这个分支的变化可能是激进的,所以与trunk / default / 1.x分支合并在这里是没有意义的。 一段时间后,2.x版本可能会完成,版本2.0获得释放。 现在我希望2.x分支是新的默认/中继分支,当前的默认/中继是1.x分支。 重复这个过程,可能会出现一个新的3.x分支。 和以前一样,如果3.0被释放,3.x应该成为新的默认分支,而当前的默认应该成为2.x分支(再次)。 我的问题不是这个工作stream程是否是一个好的(我想这不是根本错误的)。 我的问题是,我在Mercurial中意识到这一点的方式是否可以被看作是好的做法,或者是否有更好的机会。 所以这里是我如何计划在Mercurial中pipe理分支机构… 从具有包含当前版本系列1.x的代码的单个分支的存储库开始: $ hg init $ echo "hello world" > file1.txt $ hg ci -A -m "Initial commit of 1.x code" 开始在2.x版本上工作: $ hg branch 2.x $ hg ci -m "Create new branch for 2.x development" $ echo […]
我在本地使用Mercurial进行项目(这是唯一一个没有任何其他地方推/拉的回购)。 迄今为止,它有一个线性的历史。 然而,目前我正在做的事情,我现在已经意识到是一个可怕的方法,我想回到这个版本之前,我开始实施它不同的方式。 我对Mercurial中的branch / revert / update -C命令有点困惑。 基本上我想恢复到版本38(目前在45),并有我的下一个承诺有38作为父母,从那里进行。 我不在乎修订版39-45是否永远丢失,或者最终落入他们自己的死胡同里。 我需要哪个命令/一组命令?
我尝试git-svn的动机是毫不费力的合并和分支。 然后我注意到man git-svn(1)说: 运行git-merge或git-pull不build议在你打算从dcommit分支。 颠覆不代表任何合理或有用的方式合并; 所以使用Subversion的用户不能看到你所做的任何合并。 另外,如果你从SVN分支的镜像分支合并或者拉出,dcommit可能会提交错误的分支。 这是否意味着我不能从svn / trunk(或分支)创build一个本地分支,破解,合并回svn / trunk,然后dcommit? 我知道svn用户会看到在svn pre 1.5.x中合并的混乱,但是还有其他的缺点吗? 最后一句话也让我担心。 人们经常做这些事情吗?
我试图寻找一个特殊的git命令,但找不到一个。 任何人都可以build议比以下更短或更快 git branch | awk '/\*/ { print $2; }'
我们有一个networking应用程序,我们几乎每天更新和发布。 我们使用git作为我们的VCS,而我们目前的分支策略非常简单和破坏:我们有一个主分支,并且检查我们感觉良好的变化。 这工作,但直到我们检查一个突破性的变化。 有没有人有一个小团队满足以下要求的最喜欢的git分支策略: 适用于2到3名开发人员的团队 轻量级,并没有太多的过程 允许开发人员轻松隔离错误修复和更大function的工作 允许我们保持一个稳定的分支(当我们必须让我们的生产服务器工作的时候,那些“糟糕的”时刻) 理想情况下,我很乐意看到一个开发一个新bug的开发过程
我想默认推拉所有分支,包括新创build的分支。 有没有可以为其定义的设置? 否则,当我添加一个新的分支,在本地,我想从服务器拉它,最简单的方法是什么? 我创build了一个具有相同名称的新分支,并试图拉,但它不起作用。 问我所有分支的远程configuration。 我如何设置它。