提交 9590e64d 编写于 作者: LinuxSuRen's avatar LinuxSuRen

Auto commit by hugo-plugin.

上级 c1dedfca
<!DOCTYPE html>
<html class="no-js" lang="zh-CN">
<head>
<meta charset="utf-8">
<link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-200.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-400.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-800.woff2" as="font" type="font/woff2" crossorigin>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>分支策略 - Jenkins 中文社区</title>
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="description" content="推荐使用的分支策略">
<meta name="keywords" content="Jenkins,Jenkins中文社区,Jenkins官方公众号,持续集成,持续交付,开源社区,DevOps">
<meta name="viewport" content="width=device-width,minimum-scale=1">
<meta name="generator" content="Hugo 0.54.0" />
<META NAME="ROBOTS" CONTENT="INDEX, FOLLOW">
<link href='/dist/main.css' rel='stylesheet' type="text/css" /><style>
img.avatar {
width: 32px;
display: inline;
}
</style>
<meta property="og:title" content="分支策略" />
<meta property="og:description" content="推荐使用的分支策略" />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://jenkins-zh.cn/about/branching-strategy/" />
<meta property="article:published_time" content="2019-07-09T19:56:04&#43;08:00"/>
<meta property="article:modified_time" content="2019-07-09T19:56:04&#43;08:00"/>
<meta itemprop="name" content="分支策略">
<meta itemprop="description" content="推荐使用的分支策略">
<meta itemprop="datePublished" content="2019-07-09T19:56:04&#43;08:00" />
<meta itemprop="dateModified" content="2019-07-09T19:56:04&#43;08:00" />
<meta itemprop="wordCount" content="148">
<meta itemprop="keywords" content="" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="分支策略"/>
<meta name="twitter:description" content="推荐使用的分支策略"/>
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-4216293-5"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-4216293-5');
var trackOutboundLink = function(id, url) {
console.log("track:", id, url)
gtag('event', 'click', {
'event_category': 'outbound',
'event_label': id,
'transport_type': 'beacon',
'event_callback': function(){document.location = url;}
});
}
</script>
</head>
<body class="ma0 sans-serif bg-primary-color-light">
<nav class="bg-primary-color-dark pv4 w-100" role="navigation">
<div class="center flex-ns flex-wrap items-center justify-start mw9">
<h1 class="dim f3 lh-solid ml0-ns mr0 mr4-l mv0 pl3 pl4-ns">
<a href="https://jenkins-zh.cn/" class="link white">
Jenkins 中文社区
</a>
</h1>
<ul class="list ma0 pa0 dn dib-l">
<li class="f5 dib mr4" role="menuitem">
<a href="/wechat/" class="dim link light-silver"
>
博客
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/event/" class="dim link light-silver"
>
活动
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/partner/" class="dim link light-silver"
>
合作伙伴
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/about/" class="dim link light-silver"
>
关于我们
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="http://jenkins.io/zh" class="dim link light-silver"
target="_blank">
Jenkins 官网
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="10" height="10" viewBox="0 0 32 32" class="fill-current v-base" aria-label="External Link">
<path d="M25.152 16.576v5.696q0 2.144-1.504 3.648t-3.648 1.504h-14.848q-2.144 0-3.648-1.504t-1.504-3.648v-14.848q0-2.112 1.504-3.616t3.648-1.536h12.576q0.224 0 0.384 0.16t0.16 0.416v1.152q0 0.256-0.16 0.416t-0.384 0.16h-12.576q-1.184 0-2.016 0.832t-0.864 2.016v14.848q0 1.184 0.864 2.016t2.016 0.864h14.848q1.184 0 2.016-0.864t0.832-2.016v-5.696q0-0.256 0.16-0.416t0.416-0.16h1.152q0.256 0 0.416 0.16t0.16 0.416zM32 1.152v9.12q0 0.48-0.352 0.8t-0.8 0.352-0.8-0.352l-3.136-3.136-11.648 11.648q-0.16 0.192-0.416 0.192t-0.384-0.192l-2.048-2.048q-0.192-0.16-0.192-0.384t0.192-0.416l11.648-11.648-3.136-3.136q-0.352-0.352-0.352-0.8t0.352-0.8 0.8-0.352h9.12q0.48 0 0.8 0.352t0.352 0.8z"></path>
</svg>
</a>
</li>
</ul>
<div class="db dib-ns pl3"><form id="site-search-form" action="" role="search">
<fieldset class="bn ma0 pa0">
<label class="clip" for="email-address">Search</label>
<input type="search" id="search-input" class="needs-js bg-left bg-transparent bn f5 input-reset lh-solid mt3 mt0-ns pl4 pv2 w5 white"
placeholder="搜索文档" type="text"
name="email-address" value="" style="background-image:url('/images/icon-search.png');background-size:16px 16px;">
</fieldset>
</form>
</div>
<div class="list ma0 pa0 dn dib-l"></div>
<span class="absolute mt1 mt2-l pr3 right-0 top-0">
<a class="github-button needs-js link primary-color-dark" href="https://github.com/jenkins-zh/jenkins-zh/" data-size="large" data-show-count="false" aria-label="Star Jenkins WeChat GitHub">Star</a>
</span>
</div>
</nav>
<main role="main" class="content-with-sidebar min-vh-100 pb7 pb0-ns">
<main>
<article class="w-100 ph4 pb5 pb6-ns pt1 pt5-ns">
<div class="flex-l">
<div class="order-2 w-100 w-20-l ph5-m ph0-l mb4 sticky">
<aside class="mw5 br3 mv3 nested-links">
<h3 class="f4 dib author">
Donghui Wang
</h3>
<p class="lh-copy measure center mt0 f6 black-60 bio">
a long-time Jenkins user and contributor
</p>
<a href="https://github.com/donhui" target="_blank" class="link dim v-mid dib">
<svg version="1.1" fill="gray" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="18" viewBox="0 0 27 32">
<path d="M9.28 21.44q0.064-0.128-0.064-0.256-0.16-0.128-0.256-0.032-0.064 0.128 0.064 0.224 0.16 0.128 0.256 0.064zM8.768 20.704q-0.096-0.128-0.224-0.096-0.096 0.096 0 0.224 0.128 0.16 0.224 0.096t0-0.224zM8.032 19.968q0.032-0.064-0.096-0.128-0.128-0.032-0.128 0.032-0.064 0.096 0.064 0.16 0.16 0.032 0.16-0.064zM8.416 20.384q0.032 0 0.032-0.064t-0.064-0.096q-0.128-0.128-0.192-0.064t0.032 0.192q0.096 0.096 0.192 0.032zM9.952 21.728q0.032-0.128-0.16-0.192-0.16-0.064-0.224 0.064t0.16 0.192q0.16 0.064 0.224-0.064zM10.688 21.792q0-0.16-0.192-0.16t-0.192 0.16 0.192 0.128 0.192-0.128zM11.392 21.664q-0.032-0.128-0.224-0.096t-0.16 0.16q0.032 0.16 0.192 0.096t0.192-0.16zM22.848 16q0-3.776-2.656-6.464t-6.464-2.688-6.464 2.688-2.688 6.464q0 2.976 1.76 5.376t4.48 3.296q0.32 0.064 0.48-0.096t0.16-0.352q0-0.928-0.032-1.696-0.096 0.032-0.256 0.064t-0.64 0.032-0.864-0.096-0.768-0.352-0.544-0.736q-0.416-1.056-1.024-1.312-0.032-0.032-0.064-0.064l-0.16-0.16t-0.096-0.16 0.064-0.128 0.352-0.064q0.096 0 0.256 0.032t0.544 0.288 0.576 0.64q0.288 0.48 0.672 0.736t0.768 0.256 0.704-0.064 0.512-0.16q0.128-0.864 0.608-1.248-0.896-0.096-1.536-0.32t-1.312-0.704-0.992-1.344-0.352-2.144q0-1.408 0.96-2.464-0.448-1.088 0.096-2.4 0.32-0.128 0.96 0.128t1.088 0.512l0.448 0.288q1.056-0.288 2.304-0.288t2.272 0.288q0.192-0.128 0.512-0.32t0.992-0.448 1.024-0.16q0.512 1.312 0.096 2.4 0.928 1.056 0.928 2.464 0 1.024-0.256 1.792t-0.64 1.248-0.928 0.8-1.12 0.448-1.216 0.224q0.608 0.544 0.608 1.696 0 0.704 0 1.6t-0.032 0.896q0 0.224 0.16 0.352t0.48 0.096q2.752-0.928 4.512-3.296t1.728-5.376zM27.424 7.424v17.152q0 2.112-1.504 3.616t-3.648 1.536h-17.12q-2.144 0-3.648-1.536t-1.504-3.616v-17.152q0-2.112 1.504-3.616t3.648-1.536h17.12q2.144 0 3.648 1.536t1.504 3.616z"></path>
</svg>
</a>
</aside>
<aside class="fixed-lTK mw5-l right-0 f6 bl-l b--moon-gray pv4 pv0-ns ph4-l nested-list-reset nested-links nested-copy-line-height">
<p class="b">此页面上的内容</p>
<nav id="TableOfContents">
<ul>
<li>
<ul>
<li><a href="#三个-repo">三个 repo</a></li>
<li><a href="#每个任务一个分支">每个任务一个分支</a></li>
<li><a href="#分支策略">分支策略</a></li>
</ul></li>
</ul>
</nav>
<div date-pref>
<a href=".." class="dib f6 pl1 hover-bg-light-gray br-100">
<svg class="fill-current" height="30px" viewBox="0 0 24 24" width="30px" xmlns="http://www.w3.org/2000/svg">
<path transform="rotate(90 11.704999923706055,12.000000000000002) " d="m15.41,7.41l-1.41,-1.41l-6,6l6,6l1.41,-1.41l-4.58,-4.59l4.58,-4.59z" id="svg_1"/>
<path d="M0 0h24v24H0z" fill="none"/>
</svg>
</a>
<a href="https://jenkins-zh.cn/about/code-of-conduct/" class="dib f6 pl1 hover-bg-light-gray br-100" title="行为规范 ">
<svg class="fill-current" height="30px" viewBox="0 0 24 24" width="30px" xmlns="http://www.w3.org/2000/svg">
<path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/>
<path d="M0 0h24v24H0z" fill="none"/>
</svg>
</a>
<a href="https://jenkins-zh.cn/about/plugins/" class="dib f6 pr1 hover-bg-light-gray br-100" title="插件列表">
<svg class="fill-current" height="30px" viewBox="0 0 24 24" width="30px" xmlns="http://www.w3.org/2000/svg">
<path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/>
<path d="M0 0h24v24H0z" fill="none"/>
</svg>
</a>
</div>
</aside>
</div>
<div class="order-1 w-80-l mw8 ph0 ph5-ns mid-gray nested-copy-line-height no-underline nested-links nested-img nested-copy-seperator nested-blockquote mt0-ns" style="flex-grow:1;">
<button id="copyMe" onclick="copyMe()" style="display: none">Copy Me</button>
<div class="documentation-copy center mw8">
<div id="readout" class="fixed right-0 bottom-0">
</div>
<header class="flex-none w-100">
<h1 class="lh-title mb3 mv0 pt3 primary-color-dark">分支策略</h1>
</header>
<aside class="bt bw1 pt3 mt2 mid-gray b--mid-gray fn w-100">
<div class="f4 fw4 lh-copy">
推荐使用的分支策略
</div>
</aside>
<div class="prose" id="prose">
<p>本文讨论分支策略主要是提供执行并行任务时的参考指引,方便社区贡献者借鉴使用。</p>
<p>需要理解和注意以下几点:
- 三个代码仓库
- 每个任务一个分支
- 分支策略</p>
<h2 id="三个-repo">三个 repo</h2>
<p>git 是一个分布式版本管理系统。以提交文章到 <a href="https://github.com/jenkins-infra/wechat">jenkins-infra/wechat</a> 为例,在这个过程中,我们会涉及到三个代码仓库。
1. jenkins-infra/wechat repo,也就是 upstream repo,你需要 <code>git remote add upstream</code> 将其配置为 upstream repo 。
2. fork/wechat repo,如果你从这里 clone 的话,也就是对应的 origin repo 。
3. local repo,所有的分支管理都是从这里发起的。</p>
<h2 id="每个任务一个分支">每个任务一个分支</h2>
<p>每个任务一个分支的目的是,保证在 PR review/merge 的时候不会发生冲突。
换言之,PR review/merge 不存在先后关系,可以独立进行。
对于原创文章或翻译文章,每篇文章(包括资源文件)是一个独立的任务,每个任务对应一个分支。</p>
<h2 id="分支策略">分支策略</h2>
<p>假设已经完成 PR 提交操作(<code>jenkins-infra/wechat:master &lt;- fork/wechat:dev-01</code>),下面是可能存在的相关分支。</p>
<pre><code>jenkins-infra/wechat: master
fork/wechat: master dev-01
local: master dev-01
</code></pre>
<p>这里的故事可以分为以下几步:</p>
<ol>
<li>在 Github UI 上完成 fork 操作,所以,<code>jenkins-infra/wechat:master</code> 对应到 <code>fork/wechat:master</code></li>
<li><code>git clone</code> 到本地,所以 <code>fork/wechat:master</code> 对应到 <code>local:master</code></li>
<li>在本地创建 <code>dev-01</code> 分支</li>
<li>提交 commit,并 push 到 <code>fork/wechat:dev-01</code></li>
<li>GitHub UI 发起 PR (<code>jenkins-infra/wechat:master &lt;- fork/wechat:dev-01</code></li>
</ol>
<p>这里需要注意的是,<code>jenkins-infra/wechat:master</code><code>fork/wechat:master</code> 经常会
不一致(<code>jenkins-infra/wechat:master</code> 是 source of truth ,会有很多 merge 来的 commits),
这并没有什么大的影响。</p>
<p>有了上面的认识,下面就是一步一步的命令行,假设上面的 <code>dev-01</code> 已经被合并,需要新建 <code>dev-02</code> 分支执行新的任务:</p>
<ol>
<li><code>git checkout master</code></li>
<li><code>git pull upstream master --rebase</code></li>
<li><code>git checkout -b dev-02</code></li>
<li>(do something)</li>
<li><code>git add . &amp;&amp; git commit -m 'do something'</code></li>
<li><code>git push origin dev-02</code> # origin is your fork</li>
<li>via Github UI (<code>jenkins-infra/wechat:master &lt;- fork/wechat:dev-02</code>)</li>
</ol>
</div>
<aside class="bt bw1 pt3 mt2 mid-gray b--mid-gray fn w-100">
</aside>
<script src="https://utteranc.es/client.js"
repo="jenkins-zh/jenkins-zh.github.io"
issue-term="pathname"
theme="github-light"
crossorigin="linuxsuren"
async>
</script>
</div>
</div>
</div>
</article>
<div class="w-100 bg-light-gray">
<div class="mw7 pa4 center nested-lh-copy lh-copy">
<h6 class="f4 dark-gray mb2">
<a href="https://jenkins-zh.cn/about/branching-strategy/" class="hide-child link primary-color">
<span class="nl3 child"><svg class="grow" fill="" height="14px" viewBox="0 0 24 24" width="14px" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h24v24H0z" fill="none"/><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/></svg>
</span>
“分支策略”
</a> 更新于:July 9, 2019
</h6>
<a href="https://github.com/jenkins-zh/jenkins-zh/edit/master/content/about/branching-strategy.md" class="
f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
" target="_blank">改善此页</a>
</div>
</div>
</main>
<script type="text/javascript">
if(window.location.search == "?copy=true") {
showCopyBut();
}
function copyMe(){
var tempElements = [];
var logoZone = document.createElement("div");
logoZone.innerHTML = "<a href=\"https://jenkins-zh.cn\"><img width=\"520\" src=\"https://jenkins-zh.cn/wechat/images/grey-backgroud-jenkins-slogan.jpg\"/></a>";
document.getElementById('prose').append(logoZone);
tempElements.push(logoZone);
var doc = document.getElementsByClassName('documentation-copy')[0];
var articleHeader = document.createElement("div");
tempElements.push(articleHeader);
articleHeader.innerHTML = "本文首发于:<a href=\"https:\/\/jenkins-zh.cn\/about\/branching-strategy\/\">Jenkins 中文社区</a>";
var rangeToSelect = document.createRange();
rangeToSelect.selectNodeContents(doc);
var data = window.getSelection();
data.addRange(rangeToSelect);
tempElements.push(appendArticleFooter(data.getRangeAt(0)));
data.getRangeAt(0).insertNode(articleHeader);
document.execCommand("copy", true, null);
for(var i in tempElements) {
tempElements[i].remove();
}
clearSelection();
hideCopyBut();
}
function clearSelection(){
window.getSelection().empty();
}
function showCopyBut() {
document.getElementById('copyMe').style="";
}
function hideCopyBut() {
document.getElementById('copyMe').style="display:none";
}
function appendArticleFooter(range) {
var articleFooter = createArticleFooter();
range.insertNode(articleFooter);
return articleFooter;
}
function createArticleFooter() {
var articleFooter = document.createElement("div");
var authors = document.getElementsByClassName("author");
var originalAuthors = document.getElementsByClassName("originalAuthor");
var originalLinks = document.getElementsByClassName("originalLink");
var articleFooterHtml = "";
var isTranslated = false;
if(originalAuthors.length > 0){
articleFooterHtml += "<div>";
if(originalLinks.length > 0){
articleFooterHtml += "<a href=" + originalLinks[0].innerText + ">原文链接</a>&nbsp;&nbsp;&nbsp;&nbsp;";
}
articleFooterHtml += "作者:" + originalAuthors[0].innerText;
articleFooterHtml += "</div>";
isTranslated = true;
}
if(authors.length > 0){
articleFooterHtml += "<div>";
if(isTranslated) {
articleFooterHtml += "译者:" + authors[0].innerText;
} else {
articleFooterHtml += "作者:" + authors[0].innerText;
}
articleFooterHtml += "</div>";
}
articleFooter.innerHTML = articleFooterHtml;
return articleFooter;
}
</script>
</main>
<footer class="bg-primary-color-dark ph4-ns pt4 relative w-100" role="contentinfo">
<div class="center flex-ns flex-wrap justify-between mw9 w-90">
<div class="pb3 pt4 w-100 w-50-ns">
<div class="b f3 light-gray mb3 nested-links tc">
<a href="https://github.com/jenkins-zh/jenkins-zh/graphs/contributors" target="_blank" class="link">Jenkins 社区贡献者</a> 维护<br/>
</div>
<ul class="center f6 list ma0 mv3 pa0 tc" style="display:none"><li class="dib mr3"><a href="https://github.com/jenkins-zh/jenkins-zh/issues/new" class="dim link light-gray pv2">File an Issue</a></li></ul>
<ul class="center f6 list ma0 mv4 pa0 tc">
<li class="dib mr3">
<a href="https://twitter.com/suren69811254" target="_blank" class="dim link light-gray pv2">@suren69811254</a>
</li>
<li class="dib mr3">
<a href="https://www.youtube.com/channel/UC63xz3pq26BBgwB3cnwCoqQ" target="_blank" class="dim link light-gray pv2">YouTube</a>
</li>
</ul>
</div>
<div>
<a href="https://mp.weixin.qq.com/s/vifdduC3kRGSIMpyL03yVA" target="_blank">
<img src="https://jenkins.io/images/jenkins-wechat.png" with="100" height="100">
</a>
</div>
</div>
<div class="f7 gray mb5 mb0-ns ph3 w-100" style="display:none"> 
<p class="dib mr4">Jenkins&reg; is a registered trademark of <a href="https://www.spi-inc.org/" class="link">Software in the Public Interest, Inc.</a></p>
<p class="dib">Copyright 2018–2019 the original authors.</p>
</div>
<div class="bg-primary-color-dark bottom-0 left-0 right-0 dn-l fixed pb3 ph3 w-100"><div class="globalmenu mobilemenu pb3 dn">
<ul class="list hidden dib ph0 ma0 scrolling-touch tc">
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/wechat/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
博客
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/event/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
活动
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/partner/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
合作伙伴
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/about/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
关于我们
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="http://jenkins.io/zh" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
Jenkins 官网
</a>
</li>
</ul>
</div>
<div class="docsmenu mobilemenu pb3 dn">
<ul class="list dib ph0 ma0 scrolling-touch tc">
</ul>
</div>
<div class="flex dn-l justify-between">
<button class="js-toggle flex-auto dib dn-l f6 tc db mt4-ns ph3 pv2 link mr2 white bg-primary-color-dark hover-bg-primary-color ba b--white-40 w-auto" data-target=".globalmenu">Menu</button>
<button class="js-toggle flex-auto dib dn-l f6 tc db mt4-ns ph3 pv2 link white bg-primary-color-dark hover-bg-primary-color ba b--white-40 w-auto" data-target=".docsmenu">Docs Menu</button>
</div>
</div>
</footer>
<link href="/dist/auto-complete.css" rel="stylesheet">
<script type="text/javascript">
var baseurl = "https:\/\/jenkins-zh.cn\/";
</script>
<script src="/dist/lunr.js"></script>
<script src="/dist/autocomplete.js"></script>
<script src="/dist/jquery-3.2.1.min.js"></script>
<script src="/dist/search.js"></script>
<script async defer src="https://buttons.github.io/buttons.js"></script>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?6db234f713318730f0e5f6a95bdd8d47";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
<script>
(function(){
var src = (document.location.protocol == "http:") ? "http://js.passport.qihucdn.com/11.0.1.js?6276dcef5c15f276644151772390c1f9":"https://jspassport.ssl.qhimg.com/11.0.1.js?6276dcef5c15f276644151772390c1f9";
document.write('<script src="' + src + '" id="sozz"><\/script>');
})();
</script>
</body>
</html>
......@@ -209,7 +209,7 @@ var trackOutboundLink = function(id, url) {
<a href="https://jenkins-zh.cn/about/plugins/" class="dib f6 pr1 hover-bg-light-gray br-100" title="插件列表">
<a href="https://jenkins-zh.cn/about/branching-strategy/" class="dib f6 pr1 hover-bg-light-gray br-100" title="分支策略">
<svg class="fill-current" height="30px" viewBox="0 0 24 24" width="30px" xmlns="http://www.w3.org/2000/svg">
<path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/>
<path d="M0 0h24v24H0z" fill="none"/>
......
......@@ -45,7 +45,7 @@
<meta itemprop="datePublished" content="2019-01-05T22:56:04&#43;08:00" />
<meta itemprop="dateModified" content="2019-01-05T22:56:04&#43;08:00" />
<meta itemprop="wordCount" content="182">
<meta itemprop="wordCount" content="184">
......@@ -319,7 +319,11 @@ var trackOutboundLink = function(id, url) {
<p>但是,具体怎么做呢?</p>
<p>首先,我们都是基于 Git 工具进行协作的,所以,你需要会一些 Git 及 GitHub 的基础操作。接下来,咱们分别介绍每一种参与方式。</p>
<p>首先,我们都是基于 Git 工具进行协作的,所以,你需要会一些 Git 及 GitHub 的基础操作。</p>
<p><a href="/about/branching-strategy">分支策略</a>主要是提供执行并行任务时的参考指引,方便社区贡献者借鉴使用。</p>
<p>接下来,咱们分别介绍每一种参与方式。</p>
<h1 id="jenkins-中文社区代码仓库列表">Jenkins 中文社区代码仓库列表</h1>
......
......@@ -38,7 +38,7 @@
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/about/" />
<meta property="og:updated_time" content="2019-05-15T20:30:05&#43;08:00"/>
<meta property="og:updated_time" content="2019-07-09T19:56:04&#43;08:00"/>
<meta itemprop="name" content="关于我们">
<meta itemprop="description" content="有关于 Jenkins 中文社区相关介绍">
......@@ -224,6 +224,33 @@ var trackOutboundLink = function(id, url) {
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/about/branching-strategy/" class="link primary-color dim">分支策略</a>
</h1>
<div class="lh-copy links">
推荐使用的分支策略
<a href="/about/branching-strategy/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
......
......@@ -6,7 +6,7 @@
<description>Recent content in 关于我们 on Jenkins 中文社区</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-CN</language>
<lastBuildDate>Wed, 15 May 2019 20:30:05 +0800</lastBuildDate>
<lastBuildDate>Tue, 09 Jul 2019 19:56:04 +0800</lastBuildDate>
<atom:link href="https://jenkins-zh.cn/about/index.xml" rel="self" type="application/rss+xml" />
......@@ -24,6 +24,21 @@
GitHub 请您使用同一个 GitHub 账号来与大家交流,不欢迎使用所谓的“小号”。</description>
</item>
<item>
<title>分支策略</title>
<link>https://jenkins-zh.cn/about/branching-strategy/</link>
<pubDate>Tue, 09 Jul 2019 19:56:04 +0800</pubDate>
<guid>https://jenkins-zh.cn/about/branching-strategy/</guid>
<description>本文讨论分支策略主要是提供执行并行任务时的参考指引,方便社区贡献者借鉴使用。
需要理解和注意以下几点: - 三个代码仓库 - 每个任务一个分支 - 分支策略
三个 repo git 是一个分布式版本管理系统。以提交文章到 jenkins-infra/wechat 为例,在这个过程中,我们会涉及到三个代码仓库。 1. jenkins-infra/wechat repo,也就是 upstream repo,你需要 git remote add upstream 将其配置为 upstream repo 。 2. fork/wechat repo,如果你从这里 clone 的话,也就是对应的 origin repo 。 3. local repo,所有的分支管理都是从这里发起的。
每个任务一个分支 每个任务一个分支的目的是,保证在 PR review/merge 的时候不会发生冲突。 换言之,PR review/merge 不存在先后关系,可以独立进行。 对于原创文章或翻译文章,每篇文章(包括资源文件)是一个独立的任务,每个任务对应一个分支。
分支策略 假设已经完成 PR 提交操作(jenkins-infra/wechat:master &amp;lt;- fork/wechat:dev-01),下面是可能存在的相关分支。
jenkins-infra/wechat: master fork/wechat: master dev-01 local: master dev-01 这里的故事可以分为以下几步:
在 Github UI 上完成 fork 操作,所以,jenkins-infra/wechat:master 对应到 fork/wechat:master git clone 到本地,所以 fork/wechat:master 对应到 local:master 在本地创建 dev-01 分支 提交 commit,并 push 到 fork/wechat:dev-01 GitHub UI 发起 PR (jenkins-infra/wechat:master &amp;lt;- fork/wechat:dev-01) 这里需要注意的是,jenkins-infra/wechat:master 和 fork/wechat:master 经常会 不一致(jenkins-infra/wechat:master 是 source of truth ,会有很多 merge 来的 commits), 这并没有什么大的影响。</description>
</item>
<item>
<title>插件列表</title>
<link>https://jenkins-zh.cn/about/plugins/</link>
......@@ -64,7 +79,9 @@ GitHub 请您使用同一个 GitHub 账号来与大家交流,不欢迎使用
<description>为什么要参与开源社区 翟志军:想亲身参与一个开源社区,了解其运行机制。而为什么选择 Jenkins 中文社区?是想更多人了解持续交付。 zhangc819:日常工作里经常需要开源社区的力量来解决问题、学习经验,参与开源社区建设也是为了给社区提供更多的力量,相互左右才能壮大下去。 如何参与 Jenkins 中文社区 参与 Jenkins 中文社区的方式不只有 Coding 一条路可选,还有很多方式,比如:
发表或翻译 Jenkins 相关的文章,并发表到社区网站及微信公众号。 Jenkins 本地化。 成为 Jenkins 线下或线上活动的志愿者。 Review 别人提交到 Pull Request。 发现 Jenkins 社区哪里可以改善,然后提个 Issue 或 Pull Request。 等等。所有你能想到的,促进 Jenkins 中文社区发展的事情都算是参与 Jenkins 中文社区。
但是,具体怎么做呢?
首先,我们都是基于 Git 工具进行协作的,所以,你需要会一些 Git 及 GitHub 的基础操作。接下来,咱们分别介绍每一种参与方式。
首先,我们都是基于 Git 工具进行协作的,所以,你需要会一些 Git 及 GitHub 的基础操作。
分支策略主要是提供执行并行任务时的参考指引,方便社区贡献者借鉴使用。
接下来,咱们分别介绍每一种参与方式。
Jenkins 中文社区代码仓库列表 那么,我们可以向哪些源代码仓库进行贡献呢?以下是各仓库的链接及简单介绍:
wechat:存放 jenkins-zh.cn 网站的文章。也就是发文章可在此仓库提 PR。 jenkins-zh:Jenkins 中文社区网站源码,由 Hugo 实现。 wechat-backend:Jenkins 微信公众号机器人。 hugo-jenkins-theme:Jenkins 中文社区网站主题。 artwork:Jenkins 中文社区的艺术作品,比如 Jenkins 中文社区 Logo。 贡献 Jenkins 中文社区的具体工作 具体有哪些工作,可以让我们参与?</description>
</item>
......
......@@ -200,7 +200,7 @@ var trackOutboundLink = function(id, url) {
</a>
<a href="https://jenkins-zh.cn/about/code-of-conduct/" class="dib f6 pl1 hover-bg-light-gray br-100" title="行为规范 ">
<a href="https://jenkins-zh.cn/about/branching-strategy/" class="dib f6 pl1 hover-bg-light-gray br-100" title="分支策略 ">
<svg class="fill-current" height="30px" viewBox="0 0 24 24" width="30px" xmlns="http://www.w3.org/2000/svg">
<path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/>
<path d="M0 0h24v24H0z" fill="none"/>
......
......@@ -425,7 +425,7 @@ var trackOutboundLink = function(id, url) {
<div>
<img width="120px;" src="/images/sponsors/alauda.png">
<img style="max-height: 70px;" src="/images/sponsors/alauda.png">
</div>
......
......@@ -359,7 +359,7 @@ var trackOutboundLink = function(id, url) {
<div>
<img width="120px;" src="/images/sponsors/alauda.png">
<img style="max-height: 70px;" src="/images/sponsors/alauda.png">
</div>
......
......@@ -359,9 +359,9 @@ var trackOutboundLink = function(id, url) {
<div>
<img width="120px;" src="/images/sponsors/alauda.png">
<img style="max-height: 70px;" src="/images/sponsors/alauda.png">
<img width="120px;" src="/images/sponsors/jingdongyun.png">
<img style="max-height: 70px;" src="/images/sponsors/jingdongyun.png">
</div>
......
......@@ -270,7 +270,7 @@ var trackOutboundLink = function(id, url) {
<div>
<span class="title">地点:</span>
<span>
<a target="_blank" href=""></a>
<a target="_blank" href="">北京市朝阳区东直门外斜街56号A座302</a>
</span>
</div>
<div>
......@@ -286,7 +286,7 @@ var trackOutboundLink = function(id, url) {
<div class="topic-detail">
<h4 class="topic-title">主题介绍</h4>
<div>
本次活动是由 Jenkins 中文社区与“开源社”联合主办的一次关于如何参与开源的见会。<br/><br/>大家共同探讨什么是开源精神、为什么以及如何参与开源、开源与个人以及企业之间的关系、开源社区存在的重要意义、996是否与开源背道而驰。<br/><br/>我们的观点是:社区重于代码。是否与你的想法一致?欢迎来辩!
本次活动是由 Jenkins 中文社区与“开源社”联合主办的一次关于如何参与开源的见会。<br/><br/>大家共同探讨什么是开源精神、为什么以及如何参与开源、开源与个人以及企业之间的关系、开源社区存在的重要意义、996是否与开源背道而驰。<br/><br/>我们的观点是:社区重于代码。是否与你的想法一致?欢迎来辩!
</div>
</div>
......@@ -348,6 +348,24 @@ var trackOutboundLink = function(id, url) {
</div>
<div class="guest">
<div style="min-width: 100px;">
<img src="/images/speakers/pengzhixiong.png" alt>
</div>
<div class="guest-detail">
<div class="title">
彭志雄
<span class="job-title">平安云GitHub产品专家</span>
</div>
<div>13年IT行业工作经验,领域包括系统集成、售前支持和咨询、云计算和DevOps等业务。</div>
</div>
</div>
<div class="guest">
<div>本次活动还有空余的话题,欢迎您<a href="mailto:events@mail.jenkins-zh.cn?subject=活动-%e5%bc%80%e6%ba%90%e4%ba%ba%e7%ba%bf%e4%b8%8b%e8%a7%81%e9%9d%a2%e4%bc%9a-讲师申请&body=请提供您的个人简介以及分享的题目"
......@@ -411,7 +429,7 @@ var trackOutboundLink = function(id, url) {
<div class="schedule-content">
<div class="time">16:00-16:30</div>
<div class="schedule-timeline"></div>
<div class="content">尽情期待</div>
<div class="content">用平安云GitHub转变企业软件开发模式——彭志雄</div>
</div>
<div class="schedule-content">
......@@ -428,13 +446,19 @@ var trackOutboundLink = function(id, url) {
<h4 class="topic-title">赞助单位</h4>
<div>
<img style="max-height: 70px;" src="/images/sponsors/10fund.png">
<img style="max-height: 70px;" src="/images/sponsors/pingan-github.png">
</div>
</div>
<div class="topic-detail">
<h4 class="topic-title">注意事项</h4>
<div>
</div>
</div>
......
......@@ -320,7 +320,7 @@ var trackOutboundLink = function(id, url) {
</td>
<td>
<a target="_blank" href=""></a>
<a target="_blank" href="">北京市朝阳区东直门外斜街56号A座302</a>
</td>
<td>
......@@ -329,11 +329,11 @@ var trackOutboundLink = function(id, url) {
</td>
<td>
<a href="mailto:admin@mail.jenkins-zh.cn?subject=活动-%e5%bc%80%e6%ba%90%e4%ba%ba%e7%ba%bf%e4%b8%8b%e8%a7%81%e9%9d%a2%e4%bc%9a-赞助"
class="f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link"
target="_blank">
立即申请
</a>
<div><img width="120px;" src="/images/sponsors/10fund.png"></div>
<div><img width="120px;" src="/images/sponsors/pingan-github.png"></div>
</td>
</tr>
......
......@@ -279,17 +279,13 @@ var trackOutboundLink = function(id, url) {
<a href="/event/beijing-2019-07-27/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/ci-cd.jpeg"></img>
<a href="/event/beijing-2019-08-24/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/hacktberfest.jpg"></img>
</a>
<a href="/event/shanghai-2019-09/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/shanghai.jpeg"></img>
</a>
......@@ -300,17 +296,21 @@ var trackOutboundLink = function(id, url) {
<a href="/event/beijing-2019-08-24/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/hacktberfest.jpg"></img>
<a href="/event/shanghai-2019-09/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/shanghai.jpeg"></img>
</a>
<a href="/event/beijing-2019-06-22/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/ci-cd.jpeg"></img>
</a>
<a href="/event/beijing-2019-06-22/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<a href="/event/beijing-2019-07-27/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/ci-cd.jpeg"></img>
</a>
......
......@@ -38,6 +38,19 @@
"original": "",
"poster": "pipeline-example.png"
},
{
"uri": "https://jenkins-zh.cn/about/branching-strategy/",
"title": "分支策略",
"type": "about",
"date": "2019-07-09 19:56:04 +0800 +0800",
"tags": [],
"description": "推荐使用的分支策略",
"content": " 本文讨论分支策略主要是提供执行并行任务时的参考指引,方便社区贡献者借鉴使用。\n需要理解和注意以下几点: - 三个代码仓库 - 每个任务一个分支 - 分支策略\n三个 repo git 是一个分布式版本管理系统。以提交文章到 jenkins-infra/wechat 为例,在这个过程中,我们会涉及到三个代码仓库。 1. jenkins-infra/wechat repo,也就是 upstream repo,你需要 git remote add upstream 将其配置为 upstream repo 。 2. fork/wechat repo,如果你从这里 clone 的话,也就是对应的 origin repo 。 3. local repo,所有的分支管理都是从这里发起的。\n每个任务一个分支 每个任务一个分支的目的是,保证在 PR review/merge 的时候不会发生冲突。 换言之,PR review/merge 不存在先后关系,可以独立进行。 对于原创文章或翻译文章,每篇文章(包括资源文件)是一个独立的任务,每个任务对应一个分支。\n分支策略 假设已经完成 PR 提交操作(jenkins-infra/wechat:master \u0026lt;- fork/wechat:dev-01),下面是可能存在的相关分支。\njenkins-infra/wechat: master fork/wechat: master dev-01 local: master dev-01 这里的故事可以分为以下几步:\n 在 Github UI 上完成 fork 操作,所以,jenkins-infra/wechat:master 对应到 fork/wechat:master git clone 到本地,所以 fork/wechat:master 对应到 local:master 在本地创建 dev-01 分支 提交 commit,并 push 到 fork/wechat:dev-01 GitHub UI 发起 PR (jenkins-infra/wechat:master \u0026lt;- fork/wechat:dev-01) 这里需要注意的是,jenkins-infra/wechat:master 和 fork/wechat:master 经常会 不一致(jenkins-infra/wechat:master 是 source of truth ,会有很多 merge 来的 commits), 这并没有什么大的影响。\n有了上面的认识,下面就是一步一步的命令行,假设上面的 dev-01 已经被合并,需要新建 dev-02 分支执行新的任务:\n git checkout master git pull upstream master --rebase git checkout -b dev-02 (do something) git add . \u0026amp;\u0026amp; git commit -m 'do something' git push origin dev-02 # origin is your fork via Github UI (jenkins-infra/wechat:master \u0026lt;- fork/wechat:dev-02) ",
"auhtor": "donhui",
"translator": "",
"original": "",
"poster": ""
},
{
"uri": "https://jenkins-zh.cn/wechat/articles/2019/07/2019-07-18-jenkins-weekly-release/",
"title": "Jenkins 每周版更新",
......@@ -799,7 +812,7 @@
"date": "2019-01-05 22:56:04 +0800 +0800",
"tags": [],
"description": "参与 Jenkins 中文社区的具体步骤",
"content": " 为什么要参与开源社区 翟志军:想亲身参与一个开源社区,了解其运行机制。而为什么选择 Jenkins 中文社区?是想更多人了解持续交付。 zhangc819:日常工作里经常需要开源社区的力量来解决问题、学习经验,参与开源社区建设也是为了给社区提供更多的力量,相互左右才能壮大下去。 如何参与 Jenkins 中文社区 参与 Jenkins 中文社区的方式不只有 Coding 一条路可选,还有很多方式,比如:\n 发表或翻译 Jenkins 相关的文章,并发表到社区网站及微信公众号。 Jenkins 本地化。 成为 Jenkins 线下或线上活动的志愿者。 Review 别人提交到 Pull Request。 发现 Jenkins 社区哪里可以改善,然后提个 Issue 或 Pull Request。 等等。所有你能想到的,促进 Jenkins 中文社区发展的事情都算是参与 Jenkins 中文社区。\n但是,具体怎么做呢?\n首先,我们都是基于 Git 工具进行协作的,所以,你需要会一些 Git 及 GitHub 的基础操作。接下来,咱们分别介绍每一种参与方式。\nJenkins 中文社区代码仓库列表 那么,我们可以向哪些源代码仓库进行贡献呢?以下是各仓库的链接及简单介绍:\n wechat:存放 jenkins-zh.cn 网站的文章。也就是发文章可在此仓库提 PR。 jenkins-zh:Jenkins 中文社区网站源码,由 Hugo 实现。 wechat-backend:Jenkins 微信公众号机器人。 hugo-jenkins-theme:Jenkins 中文社区网站主题。 artwork:Jenkins 中文社区的艺术作品,比如 Jenkins 中文社区 Logo。 贡献 Jenkins 中文社区的具体工作 具体有哪些工作,可以让我们参与?\n翻译 Jenkins 相关文章 所有的翻译任务都会列在 GitHub的看板上。可以在看板上找到自己感兴趣的文章,然后将其拖到“In progress”列。这样可以避免重复的翻译。\n当然,为保证翻译质量,希望大家能做到:\n 认真、负责第一位。 翻译任务通常不建议超过两周。 遵守翻译规范。 Jenkins 中文本地化 本地化的工作包括:\n 对 Jenkins 官方网站及 博客 的翻译。Pull Request 提交到: cn.jenkins.io 代码仓库 。 维护 简体中文语言插件 Pull Request 提交到 localization-zh-cn-plugin 。 发表 Jenkins 原创文章 原创内容包括:Jenkins 相关、持续集成、持续交付、DevOps\n在 Jenkins 中文社区提交的 PR 通过后,会发布在多个不同的媒体平台上,目前包括:\n Jenkins 中文社区网站 Jenkins 微信公众号 开源中国博客 简书专栏 掘金 发表原创文章的步骤 Fork wechat 仓库,如果你还没有 fork。 在本地,参考 范文 写文章。动手前请仔细阅读请阅读规范。如果实在不明白的话,你也可以参考其它仓库中 articles 目录下的其它文章来写就好。 将本地的提交,推到自己的仓库。 在 GitHub 上提一个 PR。 关于排期 为了尽可能满足你期望的发布日期,可以自行选择,但同时需要满足如下的条件:\n 为保障大家有足够的时间进行 Review,建议排到一周以后 工作日 避免同一天有相同类型的文章 提 PR 时的要求 PR 的标题格式:[类型-文章排期] 标题 在 PR 类型列表前的 [] 中加入一个 x,例如:[x] 更多内容请参考 PULL_REQUEST_TEMPLATE.md\n分享 你可以在本站或者 Meetup 上分享你在使用 Jenkins 或者相关技术时总结的经验、教训、成果等。\n维护本站点 你可以从了解本站的架构开始。小到错别字修正,大到站点风格、架构完善都需要你的参与。\nReview 别人提交到 Pull Request Review 代码也算贡献社区的一种方式。\nLinus 说过:“Given enough eyeballs, all bugs are shallow(足够多的眼睛,就可让所有问题浮现)”。所以,当有贡献者提 Pull Request 到 Jenkins 中文社区的任何一个代码仓库,原则上,我们都需要两人及以上的人对该 Pull Request 进行 review。\n",
"content": " 为什么要参与开源社区 翟志军:想亲身参与一个开源社区,了解其运行机制。而为什么选择 Jenkins 中文社区?是想更多人了解持续交付。 zhangc819:日常工作里经常需要开源社区的力量来解决问题、学习经验,参与开源社区建设也是为了给社区提供更多的力量,相互左右才能壮大下去。 如何参与 Jenkins 中文社区 参与 Jenkins 中文社区的方式不只有 Coding 一条路可选,还有很多方式,比如:\n 发表或翻译 Jenkins 相关的文章,并发表到社区网站及微信公众号。 Jenkins 本地化。 成为 Jenkins 线下或线上活动的志愿者。 Review 别人提交到 Pull Request。 发现 Jenkins 社区哪里可以改善,然后提个 Issue 或 Pull Request。 等等。所有你能想到的,促进 Jenkins 中文社区发展的事情都算是参与 Jenkins 中文社区。\n但是,具体怎么做呢?\n首先,我们都是基于 Git 工具进行协作的,所以,你需要会一些 Git 及 GitHub 的基础操作。\n分支策略主要是提供执行并行任务时的参考指引,方便社区贡献者借鉴使用。\n接下来,咱们分别介绍每一种参与方式。\nJenkins 中文社区代码仓库列表 那么,我们可以向哪些源代码仓库进行贡献呢?以下是各仓库的链接及简单介绍:\n wechat:存放 jenkins-zh.cn 网站的文章。也就是发文章可在此仓库提 PR。 jenkins-zh:Jenkins 中文社区网站源码,由 Hugo 实现。 wechat-backend:Jenkins 微信公众号机器人。 hugo-jenkins-theme:Jenkins 中文社区网站主题。 artwork:Jenkins 中文社区的艺术作品,比如 Jenkins 中文社区 Logo。 贡献 Jenkins 中文社区的具体工作 具体有哪些工作,可以让我们参与?\n翻译 Jenkins 相关文章 所有的翻译任务都会列在 GitHub的看板上。可以在看板上找到自己感兴趣的文章,然后将其拖到“In progress”列。这样可以避免重复的翻译。\n当然,为保证翻译质量,希望大家能做到:\n 认真、负责第一位。 翻译任务通常不建议超过两周。 遵守翻译规范。 Jenkins 中文本地化 本地化的工作包括:\n 对 Jenkins 官方网站及 博客 的翻译。Pull Request 提交到: cn.jenkins.io 代码仓库 。 维护 简体中文语言插件 Pull Request 提交到 localization-zh-cn-plugin 。 发表 Jenkins 原创文章 原创内容包括:Jenkins 相关、持续集成、持续交付、DevOps\n在 Jenkins 中文社区提交的 PR 通过后,会发布在多个不同的媒体平台上,目前包括:\n Jenkins 中文社区网站 Jenkins 微信公众号 开源中国博客 简书专栏 掘金 发表原创文章的步骤 Fork wechat 仓库,如果你还没有 fork。 在本地,参考 范文 写文章。动手前请仔细阅读请阅读规范。如果实在不明白的话,你也可以参考其它仓库中 articles 目录下的其它文章来写就好。 将本地的提交,推到自己的仓库。 在 GitHub 上提一个 PR。 关于排期 为了尽可能满足你期望的发布日期,可以自行选择,但同时需要满足如下的条件:\n 为保障大家有足够的时间进行 Review,建议排到一周以后 工作日 避免同一天有相同类型的文章 提 PR 时的要求 PR 的标题格式:[类型-文章排期] 标题 在 PR 类型列表前的 [] 中加入一个 x,例如:[x] 更多内容请参考 PULL_REQUEST_TEMPLATE.md\n分享 你可以在本站或者 Meetup 上分享你在使用 Jenkins 或者相关技术时总结的经验、教训、成果等。\n维护本站点 你可以从了解本站的架构开始。小到错别字修正,大到站点风格、架构完善都需要你的参与。\nReview 别人提交到 Pull Request Review 代码也算贡献社区的一种方式。\nLinus 说过:“Given enough eyeballs, all bugs are shallow(足够多的眼睛,就可让所有问题浮现)”。所以,当有贡献者提 Pull Request 到 Jenkins 中文社区的任何一个代码仓库,原则上,我们都需要两人及以上的人对该 Pull Request 进行 review。\n",
"auhtor": "linuxsuren",
"translator": "",
"original": "",
......@@ -2369,7 +2382,7 @@
"uri": "https://jenkins-zh.cn/about/",
"title": "关于我们",
"type": "about",
"date": "2019-05-15 20:30:05 +0800 +0800",
"date": "2019-07-09 19:56:04 +0800 +0800",
"tags": [],
"description": "有关于 Jenkins 中文社区相关介绍",
"content": "我们是由 Jenkins 社区在国内的爱好者、贡献者组成。\n请准守我们的行为规范,文明留言。\n",
......
......@@ -56,6 +56,21 @@ Kubernetes 已经成为容器技术中必不可少的平台,甚至会作为未
最后,让我们一起感谢京东云为我们本次活动提供的 Kubernetes 云计算资源。因此,每一位参加练习的同学,只需要带上自己的笔记本,以及 SSH 客户端即可。</description>
</item>
<item>
<title>分支策略</title>
<link>https://jenkins-zh.cn/about/branching-strategy/</link>
<pubDate>Tue, 09 Jul 2019 19:56:04 +0800</pubDate>
<guid>https://jenkins-zh.cn/about/branching-strategy/</guid>
<description>本文讨论分支策略主要是提供执行并行任务时的参考指引,方便社区贡献者借鉴使用。
需要理解和注意以下几点: - 三个代码仓库 - 每个任务一个分支 - 分支策略
三个 repo git 是一个分布式版本管理系统。以提交文章到 jenkins-infra/wechat 为例,在这个过程中,我们会涉及到三个代码仓库。 1. jenkins-infra/wechat repo,也就是 upstream repo,你需要 git remote add upstream 将其配置为 upstream repo 。 2. fork/wechat repo,如果你从这里 clone 的话,也就是对应的 origin repo 。 3. local repo,所有的分支管理都是从这里发起的。
每个任务一个分支 每个任务一个分支的目的是,保证在 PR review/merge 的时候不会发生冲突。 换言之,PR review/merge 不存在先后关系,可以独立进行。 对于原创文章或翻译文章,每篇文章(包括资源文件)是一个独立的任务,每个任务对应一个分支。
分支策略 假设已经完成 PR 提交操作(jenkins-infra/wechat:master &amp;lt;- fork/wechat:dev-01),下面是可能存在的相关分支。
jenkins-infra/wechat: master fork/wechat: master dev-01 local: master dev-01 这里的故事可以分为以下几步:
在 Github UI 上完成 fork 操作,所以,jenkins-infra/wechat:master 对应到 fork/wechat:master git clone 到本地,所以 fork/wechat:master 对应到 local:master 在本地创建 dev-01 分支 提交 commit,并 push 到 fork/wechat:dev-01 GitHub UI 发起 PR (jenkins-infra/wechat:master &amp;lt;- fork/wechat:dev-01) 这里需要注意的是,jenkins-infra/wechat:master 和 fork/wechat:master 经常会 不一致(jenkins-infra/wechat:master 是 source of truth ,会有很多 merge 来的 commits), 这并没有什么大的影响。</description>
</item>
<item>
<title>Jenkins 每周版更新</title>
<link>https://jenkins-zh.cn/wechat/articles/2019/07/2019-07-18-jenkins-weekly-release/</link>
......@@ -904,7 +919,9 @@ import jenkins.model.Jenkins import hudson.model.Job import jenkins.model.BuildD
<description>为什么要参与开源社区 翟志军:想亲身参与一个开源社区,了解其运行机制。而为什么选择 Jenkins 中文社区?是想更多人了解持续交付。 zhangc819:日常工作里经常需要开源社区的力量来解决问题、学习经验,参与开源社区建设也是为了给社区提供更多的力量,相互左右才能壮大下去。 如何参与 Jenkins 中文社区 参与 Jenkins 中文社区的方式不只有 Coding 一条路可选,还有很多方式,比如:
发表或翻译 Jenkins 相关的文章,并发表到社区网站及微信公众号。 Jenkins 本地化。 成为 Jenkins 线下或线上活动的志愿者。 Review 别人提交到 Pull Request。 发现 Jenkins 社区哪里可以改善,然后提个 Issue 或 Pull Request。 等等。所有你能想到的,促进 Jenkins 中文社区发展的事情都算是参与 Jenkins 中文社区。
但是,具体怎么做呢?
首先,我们都是基于 Git 工具进行协作的,所以,你需要会一些 Git 及 GitHub 的基础操作。接下来,咱们分别介绍每一种参与方式。
首先,我们都是基于 Git 工具进行协作的,所以,你需要会一些 Git 及 GitHub 的基础操作。
分支策略主要是提供执行并行任务时的参考指引,方便社区贡献者借鉴使用。
接下来,咱们分别介绍每一种参与方式。
Jenkins 中文社区代码仓库列表 那么,我们可以向哪些源代码仓库进行贡献呢?以下是各仓库的链接及简单介绍:
wechat:存放 jenkins-zh.cn 网站的文章。也就是发文章可在此仓库提 PR。 jenkins-zh:Jenkins 中文社区网站源码,由 Hugo 实现。 wechat-backend:Jenkins 微信公众号机器人。 hugo-jenkins-theme:Jenkins 中文社区网站主题。 artwork:Jenkins 中文社区的艺术作品,比如 Jenkins 中文社区 Logo。 贡献 Jenkins 中文社区的具体工作 具体有哪些工作,可以让我们参与?</description>
</item>
......
......@@ -16,6 +16,11 @@
<lastmod>2019-07-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://jenkins-zh.cn/about/branching-strategy/</loc>
<lastmod>2019-07-09T19:56:04+08:00</lastmod>
</url>
<url>
<loc>https://jenkins-zh.cn/wechat/articles/2019/07/2019-07-18-jenkins-weekly-release/</loc>
<lastmod>2019-07-09T00:00:00+00:00</lastmod>
......@@ -938,7 +943,7 @@
<url>
<loc>https://jenkins-zh.cn/about/</loc>
<lastmod>2019-05-15T20:30:05+08:00</lastmod>
<lastmod>2019-07-09T19:56:04+08:00</lastmod>
</url>
<url>
......
{
"type": "speaker",
"displayName": "彭志雄",
"title": "平安云GitHub产品专家",
"github": "",
"bio": "13年IT行业工作经验,领域包括系统集成、售前支持和咨询、云计算和DevOps等业务。",
"blog": ""
}
\ No newline at end of file
......@@ -351,10 +351,10 @@ var trackOutboundLink = function(id, url) {
<h2>参考</h2>
<ul>
<li><a href="/wechat/articles/2019/07/2019-07-04-performance-testing-jenkins/">Jenkins 插件的微基准测试框架</a></li>
<li><a href="/wechat/articles/2019/07/2019-07-10-phase-1-multibranch-pipeline-support-for-gitlab/">多分支流水线任务对 GitLab SCM 的支持</a></li>
<li><a href="/wechat/articles/2019/07/2019-07-04-performance-testing-jenkins/">Jenkins 插件的微基准测试框架</a></li>
</ul>
</div>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册