我几乎没有关于git或github的线索,我不想要一个线索.但我碰巧在这里有一个开源项目的两行错误修正.本着合作的精神,无论如何,我想回馈它.如果它不会花费我太多的痛苦.
所以,很久以前我分叉了存储库,然后偶尔做了一些我自己的修改,然后最近才做了这个两行错误修正.一切都已经检查到主分支并推回原点.现在我想对两行错误修正提出拉取请求.似乎github没有提供任何此类设施.
回想起来,我可能应该在制作我的两行错误修复之前完成一个完整的项目分支,但是a)这两行代码的管理上的痛苦太多了b)我不知道我想要贡献我编写它时修复了错误.无论如何,现在已经太晚了.
我可以创建一个新分支,但仍然包含所有其他垃圾更改.所以它不会让我到处都是.我想从上游创建一个新的分支,排除我所有的本地更改,然后重做这一个更改.但除了制作一个全新的分叉之外,我无法看到任何方法,而且我不想要一个全新的分叉.
现在我最好的解决方案就是放弃:代码现在适用于我,这不是我的问题.有人有更好的计划吗?
我想执行拉取和合并请求,但我也想从这个拉取请求中排除一些文件.
Example: a.py b.py c.py
Run Code Online (Sandbox Code Playgroud)
我想执行拉请求并合并除b.py文件.
实现这一目标的最简单方法是什么?
[编辑]该文件尚未提交.
我正在向项目提交两个独立的新功能作为pull-requests.每个功能都在主题分支中,每个功能都从主服务器的分支开始分支.
/-- feature1
master ---
\-- feature2
Run Code Online (Sandbox Code Playgroud)
问题是虽然任何一个分支都可以自己干净地合并到master中,但是当合并第二个分支时,它会产生冲突.这不是因为这些功能相互依赖,而是碰巧碰到相同的代码.
一个简单的例子:如果原始文件是逗号分隔的列表,并且每个提交想要向其添加一个新项目,它可能如下所示:
master:
a,
b,
c
feature1:
- c
+ c,
+ d
feature2:
- c
+ c,
+ e
Run Code Online (Sandbox Code Playgroud)
在一天结束时,如果两个拉取请求都被接受,则d和e最终应该以任何顺序添加到列表中(因为这些特征是完全独立的,因此它们不相互依赖).但是,如果你试图将它们拉进去,你就会发生冲突.
处理这个问题的最佳方法是什么?feature2应该基于feature1的结尾,然后它们应该以正确的顺序合并到master中吗?
master ---
\--- feature1
\------ feature2
Run Code Online (Sandbox Code Playgroud)
如果我这样做,feature2的pull-request会显示feature2提交,还是会显示所有feature1 + feature2提交?
或者我应该在feature1合并到master之后重新设置feature2?
好的,我还没有找到更好的方法来标题我的问题.解释方案更容易.但请记住这是一个Github问题,而不是 Prototype-JS问题(请不要为我添加标签)
我正在研究基于Prototype的Web应用程序.我发现1.7.1(对作者没有责备)有一些令我们讨厌的错误.幸运的是,对于我们来说,所有这些错误确实通过已经被主分支接受的拉取请求进行公开修复.
我的老板和我讨论了为我们发现的每个不兼容性修补Prototype 1.7.1之间的选择,我们同意在即将生产的应用程序中使用"开发"版本不是最好的选择,所以我们的想法是修补我们的Prototype版本.
我对此负责.因为我想跟踪我的公司应用于Prototype的变化(即使我是唯一一个触摸JS文件的人),我想以一种有效的方式来做,可以留给后代.
Github允许您将任何项目分成您自己的工作区,以便您可以随意使用它.我想通过实际将它们链接到对原始项目的现有拉取请求来跟踪我导入Prototype的补丁.
鉴于Github上的一个通用开源项目,我已经分叉了,有没有什么方法可以找到提交给原始分支的pull请求,并选择在我自己的fork中"导入"它(假设文件应该是diff-兼容)这样它将被应用到我的分支?
当然,随着时间的推移,这使我能够跟踪记录(通过评论和讨论)关于我选择在我的分支中导入哪些 PR 以及哪些 PR没有.
我正和我的同事一起开展一些合作项目.我们开始采用Git了.
我在Bitbucket有一个存储库,我给了我的一个同事只读访问权限.在他对项目做出更正和贡献之后,如果他的用户档案是只读的,他怎么能做出"拉取请求"呢?他如何将他的分支上传到存储库?
第二个是写一个用户配置文件,因为我们可以阻止它的分支将存储库合并到主服务器而不经过"拉取请求"并且管理员决定接受你的请求.
我只是在玩bitbucket/mercurial pull requests功能,而且有些事情表现得很奇怪,或者我正在做一些非常愚蠢的事情.
我(theukdave)是一个存储库'RepoA'的所有者,它是在'团队'下创建的(我收集的bitbucket实际上已经没有了).让我们说它住在bitbucket.org/team1/RepoA
所以我用自己的用户名创建了一个存储库的fork,称之为RepoB.所以现在有一个生活在bitbucket.org/theukdave/RepoB的分叉
然后,我在主开发分支'develop'的分支上创建一个测试提交,然后将新分支合并回develop.我推到了bitbucket.org/theukdave/RepoB,然后创建了一个从'theukdave/RepoB develop'到'team1/RepoA develop'的拉取请求,我添加了一个标题和描述,没有评论者(因为我只是测试正确)现在)并单击"创建拉取请求"按钮.
片刻之后,RepoB的测试提交和合并显示在我的RepoA中.拉请求在那里,我可以看到它,我还没有批准它,但是提交和合并并且可供RepoA的所有用户使用.即使我拒绝了拉取请求,测试提交仍然在RepoA中.
这是因为我是RepoA的所有者,所以我的拉取请求会自动合并吗?是因为我没有添加评论者吗?两者的组合?或者我在这里遗漏了一些东西......
Bob克隆了该项目,并A从创建一个本地分支master。
鲍勃(Bob)添加了一些有用的帮助程序类,其中包括清理/重构单元测试设置,并清理所有现有测试。
Bob提交,推送到远程服务器,然后创建拉取请求,以便从John获得有关此重构的代码审查。
负责该项目的John忙了一个星期,因此无法立即进行审查。
在要求进行代码审查之后,Bob希望编写一些全新的测试文件和一组类,并以另一个单独的请求请求结束,因为它被视为正在使用一项新功能。
显然,鲍勃想使用他的新助手来处理这些测试文件。
采用哪种策略:
对于那些新的单元测试,鲍勃应该创建一个B来源于分支master,而不是A因为A还没有任何评价。缺点是他还不能使用单元测试助手,因为它不存在B。
Bob应该等待第一个请求的代码审查,合并到master,然后B从派生master。在这段时间里,他应该专注于其他不依赖于先前的拉取请求的作品。
鲍勃应该B从A这些帮助者那里派生并使用这些帮助者,冒着A在审核后不被接受的风险。显然导致拒绝B。
约翰应该摇摇晃晃的屁股,并作为一个好的领导者,应该在短时间内审查第一个拉动请求,以便鲍勃可以串连。
处理一系列多个请求之间的依赖关系的良好做法是什么?
git version-control github branching-and-merging pull-request
我们使用Team City(版本2017.1.5)建立了构建管道,并且我们使用内部Bitbucket服务器(版本4.8)作为我们的git存储库.我们的分支模型是GitHub Flow
我们使用mendhak Team City插件向Bitbucket服务器报告构建状态.此外,我们已经在团队城市中创建了一个构建来构建具有分支触发器的拉取请求:+:refs/(pull-requests/*)/merge.
但是,此分支过滤器的构建状态在拉出请求窗口/页面的Bitbucket中不可见.
如果我们在特征分支上使用分支过滤器(例如+:refs/heads/(feature/*)),则在PR上正确显示构建状态.但是,我们有兴趣在Pull Request上显示PR构建状态.
我们发现自2013年以来Atlassian 已经存在一个未解决的问题(是的 - 差不多5年).看起来它不会很快修复.
问:
是否有任何可以解决此问题的变通方法或Bitbucket插件(或Team City插件).我们希望避免添加任何额外的分支过滤器/触发器.
我觉得这是一个相当普遍的问题,应该已经被很多其他团队/个人解决了.我恰好没有找到合适的资源/材料.
任何指针,都非常感谢.
进行更改后,我看到这样的文本:
Writing objects: 100% (5/5), 478 bytes | 239.00 KiB/s, done.
Total 5 (delta 4), reused 0 (delta 0)
remote:
remote: Create pull request for my-branch => master-branch
remote: https://bitbucket.org/my-company/repo/pull-requests/12345
Run Code Online (Sandbox Code Playgroud)
但是,如果那时我不进行PR,并且文本滚动到视线之外,则该URL已消失。如何仅生成或重新查看该URL而无需进行更改并再次提交/推送?
假设我有一个在每个要掌握的 PR 上运行的工作流程,其开头为:
on:
pull_request:
branches:
- master
Run Code Online (Sandbox Code Playgroud)
如果 PR 来自分支机构,我想跳过所有工作depbot。就像是:
on:
pull_request:
branches:
- master
head_ref-ignore:
- depbot
Run Code Online (Sandbox Code Playgroud)
我认为您可以使用跳过所有步骤(一次一个)
if: startsWith(github.head_ref, 'depbot') == false
Run Code Online (Sandbox Code Playgroud)
但这不是我想要的,因为它仍然会启动这项工作。我怎样才能在启动阶段实现这一目标?