Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EclipseLink/Development/Process/Git"

(Brief Overview and History of Git)
Line 9: Line 9:
 
=== Brief Overview and History of Git ===
 
=== Brief Overview and History of Git ===
 
Git is a <b>D</b>istributed <b>V</b>ersion <b>C</b>ontrol <b>S</b>ystem (DVCS), which means there is no single point-of-failure and one can do useful work without a server. The ability to work while disconnected is very useful if a server is down or if the network connection to a server is unreliable (slow or firewalled).
 
Git is a <b>D</b>istributed <b>V</b>ersion <b>C</b>ontrol <b>S</b>ystem (DVCS), which means there is no single point-of-failure and one can do useful work without a server. The ability to work while disconnected is very useful if a server is down or if the network connection to a server is unreliable (slow or firewalled).
 +
 +
[[Image:gitArch.png]]
  
 
The distributed nature of Git means that the source code is inherently backed-up across all the various 'clones' that may exist 'out there.' In addition, Git supports types of work-flows that are different from those supported by Subversion; these work-flows, while unfamiliar, are quite powerful and can 'overlap' - one developer may prefer a 'golden repository' work-flow while another likes 'trusted-lieutenants'; both can be supported simultaneously by the same repository.
 
The distributed nature of Git means that the source code is inherently backed-up across all the various 'clones' that may exist 'out there.' In addition, Git supports types of work-flows that are different from those supported by Subversion; these work-flows, while unfamiliar, are quite powerful and can 'overlap' - one developer may prefer a 'golden repository' work-flow while another likes 'trusted-lieutenants'; both can be supported simultaneously by the same repository.
Line 15: Line 17:
  
 
=== How do I get started? ===
 
=== How do I get started? ===
 +
 +
http://git-scm.com/download
 +
 +
==== Windows  ====
 +
 +
For those currently using Tortise SVN with Windows, I would recommend using Tortoise Git.
 +
 +
Download and install the latest Git for Windows All the versions appear to be beta/preview, so just pick the latest.
 +
 +
*[http://code.google.com/p/msysgit/downloads/list http://code.google.com/p/msysgit/downloads/list]Install Wizard (accept most defaults)
 +
*Command Line: Use Git Bash Only
 +
*Choosing the SSH executable: Use (Tortoise)Plink
 +
 +
Download and install tortoisegit tortoisegit has the same look &amp; feel as tortoisesvn&lt;span id="fck_dom_range_temp_1332162837456_947" /&gt;
 +
 +
*[http://code.google.com/p/tortoisegit/ http://code.google.com/p/tortoisegit/]
 +
*Install Wizard:
 +
*Choose SSH Client: TortoisePLink, coming from Putty, integrates with Windows better,
 +
  
 
=== How does Git differ from SVN? ===
 
=== How does Git differ from SVN? ===
Line 33: Line 54:
  
 
=== What tools do you recommend, what are their strengths and weaknesses?  ===
 
=== What tools do you recommend, what are their strengths and weaknesses?  ===
 
==== Windows  ====
 
 
For those currently using Tortise SVN with Windows, I would recommend using Tortoise Git.
 
 
Download and install the latest Git for Windows All the versions appear to be beta/preview, so just pick the latest.
 
 
*[http://code.google.com/p/msysgit/downloads/list http://code.google.com/p/msysgit/downloads/list]Install Wizard (accept most defaults)
 
*Command Line: Use Git Bash Only
 
*Choosing the SSH executable: Use (Tortoise)Plink
 
 
Download and install tortoisegit tortoisegit has the same look &amp; feel as tortoisesvn&lt;span id="fck_dom_range_temp_1332162837456_947" /&gt;
 
 
*[http://code.google.com/p/tortoisegit/ http://code.google.com/p/tortoisegit/]
 
*Install Wizard:
 
*Choose SSH Client: TortoisePLink, coming from Putty, integrates with Windows better,
 
  
 
=== I've seen some issues with renaming things and how those things behave when other people update.  Are there any gotchas? ===
 
=== I've seen some issues with renaming things and how those things behave when other people update.  Are there any gotchas? ===

Revision as of 16:18, 19 March 2012

EclipseLink Development in Git

This page is for the Git usage portion of the dev process. It does not discuss issues with the build in Git, for more information on that please see: wiki.eclipse.org/EclipseLink/Build/Git .

This page is a work in progress, posing the questions that need to be answered.  If you feel that you have more questions, please post them, if you can answer a question, please do.

EclipseLink Git FAQ

Brief Overview and History of Git

Git is a Distributed Version Control System (DVCS), which means there is no single point-of-failure and one can do useful work without a server. The ability to work while disconnected is very useful if a server is down or if the network connection to a server is unreliable (slow or firewalled).

GitArch.png

The distributed nature of Git means that the source code is inherently backed-up across all the various 'clones' that may exist 'out there.' In addition, Git supports types of work-flows that are different from those supported by Subversion; these work-flows, while unfamiliar, are quite powerful and can 'overlap' - one developer may prefer a 'golden repository' work-flow while another likes 'trusted-lieutenants'; both can be supported simultaneously by the same repository.

Git was created by Linus Torvalds in 2005 to handle the source control requirements of the Linux kernel project. Linus previously used a for-pay DVCS called BitKeeper and grew to like the 'trusted -lieutenants' work-flow; however, the special license grant that let him use BitKeeper for free for kernel development changed. Shortly thereafter, he created Git. By 2008, other major open-source projects (Ruby-on-Rails, Android, etc.) moved to it as well.

How do I get started?

http://git-scm.com/download

Windows

For those currently using Tortise SVN with Windows, I would recommend using Tortoise Git.

Download and install the latest Git for Windows All the versions appear to be beta/preview, so just pick the latest.

Download and install tortoisegit tortoisegit has the same look & feel as tortoisesvn<span id="fck_dom_range_temp_1332162837456_947" />


How does Git differ from SVN?

How do patches in Git differ from in SVN?

How is merging different between Git and SVN

How do I work on two different tasks at the same time?

What do I do when I am working on a large task, and have to put it aside to complete a shorter task?

What is the difference between a git fetch, git pull and git clone?

When/how do I create branches?

After the server branches, how do I get the information to my local repo?

What tools do you recommend, what are their strengths and weaknesses?

I've seen some issues with renaming things and how those things behave when other people update. Are there any gotchas?

What is Git Rebase? When would I use it?

How do I verify that 'what I push to the repo is actually there'?

Back to the top