构建git分支的最佳实践

时间:2015-06-06 08:57:06

标签: git github

好的,所以我开始对我混乱的git分支感到困惑。一些背景:我在simplare / stoffi-web上有我的主要官方回购,以及我在ephracis / stoffi-web上的个人分享。我通常做一个功能分支,处理它,执行拉回请求,然后将它合并到我自己的分支中。

我通常同时使用命令行和适用于Windows / Mac的应用程序Github。我在应用程序中克隆并提交,而我在命令行中执行诸如rebase和处理子模块之类的东西。

第一个问题:这是一个好的做法还是我应该在做PR之前将功能分支合并到我的个人分支中?

接下来,我已经陷入了一些混乱。我收到这条消息:

$ git merge simplare/master
warning: refname 'simplare/master' is ambiguous.
Already up-to-date.

$ git branch -a
* master
  simplare/master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/simplare/master

第二个问题:我该如何清理它?

第三个问题:simplare / master应该是“普通”分支还是远程分支?我相信这就是为什么我会收到模棱两可的警告,因为我目前都有这两种警告。

2 个答案:

答案 0 :(得分:3)

  

我通常做一个功能分支,处理它,做一个拉回请求   simplare然后将它合并到我自己的fork中。

我们在那里遇到了你的问题:只要一切都是快速合并,这就像从简化中解脱出来一样。

但是,如果其他人在您发送PR之间的时间内更改了文件,并且您将自己的分支合并到您自己的主分支中,那么您最近可能会遇到冲突。

机制应如下:

  1. 在你自己的主要分支上(假设他是主人):Text
  2. 创建功能分支:function table(num){ var num = prompt("please enter any number"); var x = num; if (num <= 0){ alert("invalid number or Zero") ; table(); // <---------------- } else { for(var i=1; i <= 10; i++){ var y = x * i; document.write(x + ' X ' + i +' = ' + y + '<br/>') ; } } }
  3. 做你的工作;如果simplare / master中的某些东西改变了你想要使用的东西,你可以在这里拉simplare / master。
  4. 拉请求
  5. 一旦合并到simplare,删除您的功能分支和var data={ { "Id": "12345", "Name": "Acme Widget 1", "Price": "£25.99", "Status": "In Stock" }, { "Id": "67890", "Name": "Acme Widget 2", "Price": "£28.99", "Status": "In Stock" }, { "Id": "11123", "Name": "Acme Widget 3", "Price": "£15.99", "Status": "In Stock" }, { "Id": "14156", "Name": "Acme Widget 4", "Price": "£33.99", "Status": "In Stock" } } $.each(data, function(i, v) { alert(v.id); });

答案 1 :(得分:1)

问题1:

这个过程应该是:

  1. origin
  2. 上创建一个功能分支
  3. 使用该功能分支
  4. 将PR制作成simplare
  5. 一旦simplare合并您的功能,请下拉到您的origin主人
  6. 在将广告投放到origin之前未将您的功能分支合并到simplare的原因是,您的公关可能会遭到拒绝,而您的origin会有错误的代码。

    问题2:

    只需删除本地分支:

    $ git branch -d simplare/master
    

    问题3:

    simplare应该是一个远程分支。