CINXE.COM
PHP: Using Git for PHP Development
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("http://php.net/git-php.php","20130116061900","https://web.archive.org/","web","/_static/", "1358317140"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <title>PHP: Using Git for PHP Development</title> <style type="text/css" media="all"> @import url("https://web.archive.org/web/20130116061900cs_/http://static.php.net/www.php.net/styles/site.css"); @import url("https://web.archive.org/web/20130116061900cs_/http://static.php.net/www.php.net/styles/phpnet.css"); </style> <!--[if IE]><![if gte IE 6]><![endif]--> <style type="text/css" media="print"> @import url("https://web.archive.org/web/20130116061900cs_/http://static.php.net/www.php.net/styles/print.css"); </style> <!--[if IE]><![endif]><![endif]--> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <link rel="shortcut icon" href="https://web.archive.org/web/20130116061900im_/http://static.php.net/www.php.net/favicon.ico"/> <link rel="canonical" href="//web.archive.org/web/20130116061900/http://php.net/git-php.php"/> <script type="text/javascript" src="https://web.archive.org/web/20130116061900js_/http://static.php.net/www.php.net/userprefs.js"></script> <base href="https://web.archive.org/web/20130116061900/http://php.net/git-php.php"/> </head> <body> <div id="headnav"> <a href="/web/20130116061900/http://php.net/" rel="home"><img src="https://web.archive.org/web/20130116061900im_/http://static.php.net/www.php.net/images/php.gif" alt="PHP" width="120" height="67" id="phplogo"/></a> <div id="headmenu"> <a href="/web/20130116061900/http://php.net/downloads.php">downloads</a> | <a href="/web/20130116061900/http://php.net/docs.php">documentation</a> | <a href="/web/20130116061900/http://php.net/FAQ.php">faq</a> | <a href="/web/20130116061900/http://php.net/support.php">getting help</a> | <a href="/web/20130116061900/http://php.net/mailing-lists.php">mailing lists</a> | <a href="/web/20130116061900/http://php.net/license">licenses</a> | <a href="https://web.archive.org/web/20130116061900/https://wiki.php.net/">wiki</a> | <a href="https://web.archive.org/web/20130116061900/https://bugs.php.net/">reporting bugs</a> | <a href="/web/20130116061900/http://php.net/sites.php">php.net sites</a> | <a href="/web/20130116061900/http://php.net/conferences/">conferences</a> | <a href="/web/20130116061900/http://php.net/my.php">my php.net</a> </div> </div> <div id="headsearch"> <form method="post" action="/web/20130116061900/http://php.net/search.php" id="topsearch"> <p> <span title="Keyboard shortcut: Alt+S (Win), Ctrl+S (Apple)"> <span class="shortkey">s</span>earch for </span> <input type="text" name="pattern" value="" size="30" accesskey="s"/> <span>in the</span> <select name="show"> <option value="all">all php.net sites</option> <option value="local">this mirror only</option> <option value="quickref" selected="selected">function list</option> <option value="manual">online documentation</option> <option value="bugdb">bug database</option> <option value="news_archive">Site News Archive</option> <option value="changelogs">All Changelogs</option> <option value="pear">just pear.php.net</option> <option value="pecl">just pecl.php.net</option> <option value="talks">just talks.php.net</option> <option value="maillist">general mailing list</option> <option value="devlist">developer mailing list</option> <option value="phpdoc">documentation mailing list</option> </select> <input type="image" src="https://web.archive.org/web/20130116061900im_/http://static.php.net/www.php.net/images/small_submit_white.gif" class="submit" alt="search"/> </p> </form> </div> <div id="layout_2"> <div id="leftbar"> <h3>More about Git</h3> <p> You can find more information about Git and download clients for most major platforms at <a href="https://web.archive.org/web/20130116061900/http://git-scm.com/">the official Git site</a>. </p> <h3>Git access</h3> <p> If you would like to grab PHP sources or other PHP.net hosted project data from PHP.net, you can also use <a href="/web/20130116061900/http://php.net/git.php">Git</a>. No Git account is required. </p> </div> <div id="content" class="."> <h1>Using Git for PHP Development</h1> <p> All PHP development is done through a distributed revision control system called Git. This helps us track changes and it makes it possible for people located in all corners of the world to collaborate on a project without having to worry about stepping on each others' toes. </p> <p> Please note that you do <strong>not</strong> need a Git account to <a href="/web/20130116061900/http://php.net/git.php"><strong>access</strong> the Git tree</a>, to use PHP, or to write PHP scripts. You only need a Git account if you will be a regular contributor to the development of PHP itself. </p> <p> And once again, since people just don't seem to understand this point: </p> <table border="0" cellpadding="3" class="standard"> <tr> <th>Does Not Require Git Account</th> <th>Requires Git Account</th> </tr> <tr> <td class="sub">Learning PHP</td> <td>Developing the PHP runtime</td> </tr> <tr> <td class="sub">Coding in PHP</td> <td>Maintaining an official, bundled PHP extension</td> </tr> <tr> <td class="sub">Reading the PHP source</td> <td><a href="https://web.archive.org/web/20130116061900/https://wiki.php.net/doc/howto">Maintaining the documentation</a></td> </tr> <tr> <td class="sub">Using PHP extensions</td> <td><a href="https://web.archive.org/web/20130116061900/https://wiki.php.net/doc/howto">Translating the documentation</a></td> </tr> <tr> <td class="sub">Creating experimental PHP extensions</td> <td>Maintaining php.net</td> </tr> <tr> <td class="sub">Submitting a patch to PHP</td> <td> </td> </tr> <tr> <td class="sub">Adding notes to the documentation</td> <td> </td> </tr> <tr> <td class="sub">Writing web pages with PHP</td> <td> </td> </tr> <tr> <td class="sub">Setting up a php.net mirror site</td> <td> </td> </tr> </table> <p> If you are contributing a patch, a small fix, or another minor change you do not need to ask for a Git account before submitting it. Fork our <a href="https://web.archive.org/web/20130116061900/https://github.com/php/php-src">GitHub repository</a> and create a <a href="https://web.archive.org/web/20130116061900/http://help.github.com/send-pull-requests/">pull request</a>, attach a patch to a <a href="https://web.archive.org/web/20130116061900/https://bugs.php.net/">bug report or feature request</a>, or send your patch to <a href="https://web.archive.org/web/20130116061900/mailto:internals@lists.php.net">the Internals mailing list</a>. If you send the patch to Internals, you should <a href="https://web.archive.org/web/20130116061900/mailto:internals-subscribe@lists.php.net">subscribe to that list</a> to participate in any discussion your patch generates! Your patch may not get noticed the first time. Make sure that when you send your patch, you explain what it does. Make sure you use a clear subject when sending your patch (you might even want to prefix it with <tt>"[PATCH]"</tt>). If nobody seems to take notice after a few days, you might want to try resubmitting it. Your original message might have gotten missed because of another heated discussion. </p> <p> Submitting patches and participating in the discussion on the Internals list <strong>before</strong> requesting full Git access is strongly suggested, so the PHP development team can get to know you and what you'll be contributing. It is suggested that all PHP developers (<strong>people developing PHP itself</strong>, not people developing in PHP) subscribe to this list. Similarly, if you plan on contributing documentation, you should <a href="https://web.archive.org/web/20130116061900/mailto:phpdoc-subscribe@lists.php.net">subscribe to the documentation mailing list</a>, and read the <a href="https://web.archive.org/web/20130116061900/https://wiki.php.net/doc/howto">PHP Documentation HOWTO</a>. </p> <p> If you wish to contribute to the documentation please contact the translation team for the language you wish to help with. If you have trouble finding the team, ask on the phpdoc mailing list. Once you have made contact you may apply for a Git/SVN account here by including the name of one or more people from the existing translation team that referred you and of course the language you wish to translate to. </p> <p> If you have a new PEAR package you wish to contribute, propose it through the <a href="https://web.archive.org/web/20130116061900/http://pear.php.net/pepr/">PEPR system</a> on <a href="https://web.archive.org/web/20130116061900/http://pear.php.net/">the PEAR website</a>. If you have a new PECL extension you wish to contribute, bring it up on the appropriate <a href="https://web.archive.org/web/20130116061900/http://pecl.php.net/support.php">PECL mailing list</a> first. </p> <p> Once your PEAR package has been approved, or you get the sense that people generally agree that your PECL contribution is worthwhile, you may apply for a Git account here. Specify the name of your PEAR package or PECL contribution (single word Git module name) and also reference an existing account holder who can vouch for your contribution, or provide a link to your PEAR proposal. </p> <p> Okay, if you are still reading, then you may actually need a Git account. This is <strong>not</strong> an automatic process. Fill in the form below to request an account. In the box next to "Purpose", describe what it is that you intend to do with Git access. If it isn't clear from what you've described already, tell us what parts of the Git repository you need access to (for example, "phpdoc" is the documentation tree, "php-src/ext/readline" is the PHP readline extension). If someone told you to fill out the form here, make sure to mention them here! </p> <p> The Git account, once granted and activated (which could take a while, so be patient!), gives you access to a number of things. First, and most importantly, it gives you access to modify those parts of the PHP Git tree for which you have requested and been granted access. It also allows you to comment on and close bugs in our <a href="https://web.archive.org/web/20130116061900/http://bugs.php.net/">bug database</a>, and allows you to modify the documentation notes in the <a href="/web/20130116061900/http://php.net/manual/">annotated manual</a>. Your Git account also translates into a foo@php.net forwarding email address where <strong>foo</strong> is your Git user id. Feel free to use it! </p> <h2>Request a Git account</h2> <p class="warn"> Please note that you do <em>NOT</em> need a Git account to study PHP. You do <em>NOT</em> need a Git account to learn PHP, to use PHP or to in any way do anything at all with PHP. If you are sitting there wondering if you need a Git account, then you don't! If an existing Git account holder suggested you request an account, please mention their Git id in the request. </p> <p class="warn"> Also note that information provided here will be sent to a public mailing list. </p> <form action="/web/20130116061900/http://php.net/git-php.php" method="post"> <table border="0" class="standard" style="width: 80%;"> <tr> <th class="subr">Full Name:</th> <td><input type="text" size="50" name="fullname" class="max" value=""/></td> </tr> <tr> <th class="subr">Email:</th> <td><input type="text" size="50" name="email" class="max" value=""/></td> </tr> <tr> <th class="subr">For what purpose do you require a Git account:<br/> (check all that apply)</th> <td> <input type="checkbox" name="purpose[0]" value="1" checked="checked"/>Learning PHP<br/> <input type="checkbox" name="purpose[1]" value="1" checked="checked"/>Coding in PHP<br/> <input type="checkbox" name="purpose[2]" value="1" checked="checked"/>Reading the PHP source<br/> <input type="checkbox" name="purpose[3]" value="1" checked="checked"/>Using PHP extensions<br/> <input type="checkbox" name="purpose[4]" value="1" checked="checked"/>Creating experimental PHP extensions<br/> <input type="checkbox" name="purpose[5]" value="1" checked="checked"/>Submitting a patch to PHP<br/> <input type="checkbox" name="purpose[6]" value="1" checked="checked"/>Adding notes to the documentation<br/> <input type="checkbox" name="purpose[7]" value="1" checked="checked"/>Writing web pages with PHP<br/> <input type="checkbox" name="purpose[8]" value="1" checked="checked"/>Setting up a php.net mirror site<br/> </td> </tr> <tr> <th class="subr">If your intended purpose is not in the list, <br/>please state it here:</th> <td><textarea cols="50" rows="5" name="realpurpose" class="max"></textarea></td> </tr> <tr> <th class="subr">Do you agree to follow the <a href="license/contrib-guidelines-code.php">contribution guidelines</a>?</th> <td><input type="checkbox" name="guidelines" value="1"/>Check the box if you agree.</td> </tr> <tr> <th class="subr">User ID:<br/> <small>(single word, lower case)</small></th> <td><input type="text" size="10" name="id" class="max" value=""/></td> </tr> <tr> <th class="subr">Requested Password:</th> <td><input type="password" size="10" name="password" class="max" value=""/></td> </tr> <tr> <th class="subr">Did you fill this form out correctly (yes/no)?</th> <td><input type="text" size="10" name="yesno" class="max" value="no"/></td> </tr> <tr> <th class="subr">Type of initial karma (who to send this request to):</th> <td> <select name="group"> <option value="none">Choose One</option> <option value="php">PHP Group</option> <option value="pear">PEAR Group</option> <option value="pecl">PECL Group</option> <option value="doc">Doc Group</option> </select> </td> </tr> <tr> <th colspan="2"><input type="submit" value="Send Request"/></th> </tr> </table> </form> </div> <div class="cleaner"> </div> </div> <div id="footnav"> <a href="/web/20130116061900/http://php.net/source.php?url=/git-php.php">show source</a> | <a href="/web/20130116061900/http://php.net/credits.php">credits</a> | <a href="/web/20130116061900/http://php.net/stats/">stats</a> | <a href="/web/20130116061900/http://php.net/sitemap.php">sitemap</a> | <a href="/web/20130116061900/http://php.net/contact.php">contact</a> | <a href="/web/20130116061900/http://php.net/contact.php#ads">advertising</a> | <a href="/web/20130116061900/http://php.net/mirrors.php">mirror sites</a> </div> <div id="pagefooter"> <div id="copyright"> <a href="/web/20130116061900/http://php.net/copyright.php">Copyright © 2001-2013 The PHP Group</a><br/> All rights reserved. </div> <div id="thismirror"> <a href="/web/20130116061900/http://php.net/mirror.php">This unofficial mirror</a> is operated at: <a href="https://web.archive.org/web/20130116061900/http://php.net/">http://php.net/</a><br/> Last updated: Tue Jan 15 22:01:09 2013 PST </div> </div> <!--[if IE 6]> <script type="text/javascript"> /*Load jQuery if not already loaded*/ if(typeof jQuery == 'undefined'){ document.write("<script type=\"text/javascript\" src=\"//ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js\"></"+"script>"); var __noconflict = true; } var IE6UPDATE_OPTIONS = { icons_path: "/ie6update/images/" } </script> <script type="text/javascript" src="/ie6update/ie6update.js"></script> <![endif]--> </body> </html><!-- FILE ARCHIVED ON 06:19:00 Jan 16, 2013 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 02:28:42 Dec 04, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.888 exclusion.robots: 0.044 exclusion.robots.policy: 0.026 esindex: 0.017 cdx.remote: 16.99 LoadShardBlock: 575.853 (3) PetaboxLoader3.datanode: 230.639 (4) PetaboxLoader3.resolve: 117.806 (2) load_resource: 98.297 -->