<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<!--
Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
-->

<html>
<head>
        <title>Video of Setting Up a GitHub Repository Using NetBeans IDE</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
        <link rel="stylesheet" type="text/css" href="../../../netbeans.css"> 
        <meta name="description" content="This screencast demonstrates some new JavaFX related features implemented in NetBeans IDE 7.4 Beta.">
</head>
<body>
    

<h1>Video of Setting Up a GitHub Repository Using NetBeans IDE</h1>

<table>
<tr>
<td class="valign-top">

<p>This screencast demonstrates how to set up a Git repository in NetBeans IDE and put it up to GitHub using the IDE's support for the Git versioning system.</p>
<p>You are going to see how to:</p>
<ul>
<li>create a sample project in the IDE</li>
<li>initialize a Git repository in the created project</li>
<li>push the project to GitHub</li>
</ul>
<P>Authors: Ondrej Vrabec, Alyona Stashkova <br>
  Time: 5:52 </p>
 <p><a href="http://bits.netbeans.org/media/github_nb.mp4">Watch full size/Download</a> (.mp4)
                        (Ctrl-Click to download, 11,3 MB)</p>

 <div class="feedback-box"><a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20Screencast%20-%20Setting%20Up%20a%20GitHub%20Repository%20Using%20NetBeans%20IDE">Send Us Your Feedback</a></div>


 <br style="clear:both;">
    </td>

                <td width="5">&nbsp; </td>
      <td class="valign-top" width="486">
   <script src="/images_www/js/mediaplayer-5.2/swfobject.js" type="text/javascript"></script>
    <div id="player" >
        <center>
	    <div id="flashContent"></div>
        </center>
    </div>
    <script type="text/javascript">
	$(function(){
	    var targetFile='http://bits.netbeans.org/media/github_nb.mp4';
            var s1 = new SWFObject('/images_www/js/mediaplayer-5.2/player.swf','player','530','340','9');
            s1.addParam('allowfullscreen','true');
            s1.addParam('allowscriptaccess','always');
            s1.addParam('flashvars','file='+targetFile+'&autostart=true');
            s1.write('flashContent');
	});
    </script>
 
  </td>
  </tr>
</table>
        <h2>Related links</h2>

        <ul>
            <li><a href="http://wiki.netbeans.org/NewAndNoteworthyNB74">NetBeans 74 New And Noteworthy</a></li>
			<li><a href="https://netbeans.org/kb/docs/ide/git.html">Using Git Support in NetBeans IDE</a></li>
			<li><a href="http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG234">Versioning Applications with Version Control</a> in <em>Developing Applications with NetBeans IDE</em></li>
	    </ul>

</body>
</html>
