Difference between revisions of "Version control with Git"

From Geos-chem
Jump to: navigation, search
(Why use Git?)
(Redirected page to Guide to using Git with GEOS-Chem)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Overview ==
+
#REDIRECT [[Guide to using Git with GEOS-Chem]]
 
+
=== Why use Git? ===
+
 
+
This section has been moved to our [[Introduction to Git#Why_use_Git.3F|''Introduction to Git'']] web page.
+
 
+
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 21:24, 18 June 2019 (UTC)
+
 
+
=== Advantages of using Git ===
+
 
+
Git offers many improvements over previous source code management software such as [http://cvsbook.red-bean.com/cvsbook.html CVS] and [http://subversion.apache.org/ Subversion].
+
 
+
#Git avoids some of the [http://stackoverflow.com/questions/802573/difference-between-git-and-cvs limitations of CVS] (which is by now 20-year-old software).
+
#*Git is a distributed source code management system. Instead of having one central GEOS–Chem repository residing on a single server, Git allows you to keep an identical copy (a.k.a. "clone") of the GEOS–Chem source code repository on your own system. Having several copies of the GEOS–Chem repository allows for redundancy in case of catastrophic server failure or other such calamity.
+
#*Modifications that you make to your own repository will not affect the repositories of other users. (That is, unless you consciously decide to "push" your changes to another repository).
+
#*When you are ready to submit your source code modifications for inclusion into the "standard" code, the GEOS–Chem Support Team can simply get them with a Git "pull" operation.
+
#*Git allows you to save out your source code changes to a "patch" file (a text file with a list of source code differences). This can be emailed to other users and applied to their local source code repository.<br><br>
+
#In general, Git is much simpler to use than CVS.
+
#*With Git, you can "pull" changes from other users directly into your own local source code repository.
+
#*With Git, you can easily create several branches off of code development of the "master" branch. (Branching was always problematic in CVS).
+
#**Each branch can hold a new "feature", which may be tested independently of the rest of the code. 
+
#**Branches can be merged back into the "master" branch when the new feature has been validated.
+
#*The Git repository browser, called GitK, allows you to see every single line of code that has been modified, going all the way back to the start of the project.
+
#*A graphic user interface, called the Git Gui, lets you control Git in a visual manner rather than using command-line options.<br><br>
+
#With Git, GEOS–Chem developers are able to:
+
#*download the most current GEOS–Chem source code online.
+
#*download the most current GEOS–Chem run directories online.
+
#*develop and test their source code additions to GEOS–Chem in their own local repository.
+
#*submit their mature source code updates back to the [[GEOS-Chem Support Team]] for inclusion in the standard mainline code (via "Git pull" or patch files).
+
 
+
== Tutorials about Git ==
+
 
+
Here are some useful resources for learning the various Git commands:
+
 
+
=== For beginners ===
+
 
+
; [https://git-scm.com/docs/user-manual.html Git user manual]: The official Git user manual
+
; [https://services.github.com/on-demand/downloads/github-git-cheat-sheet.pdf Github Cheat Sheet (PDF)]: Brief overview of commonly used Git commands
+
; [http://ndpsoftware.com/git-cheatsheet.html Visual Git Cheat Sheet]: Interactive guide for visual learners
+
;[http://excess.org/article/2008/07/ogre-git-tutorial/ Git tutorial video]: Excellent lecture given by Bart Trojanowski for the Ottawa Group of Ruby Enthusiasts.  '''''HIGHLY RECOMMENDED!'''''
+
 
+
=== For more advanced users ===
+
 
+
;[https://git-scm.com/book/en/v2 ''ProGit'']: Excellent online book that discusses many of Git's features, and how to use them like a pro.
+
;[http://www-cs-students.stanford.edu/~blynn/gitmagic/ GitMagic]: Descriptive online book that goes into the nitty-gritty of Git usage.  A worthwhile read!
+
 
+
== Using Git with GEOS-Chem and GAMAP ==
+
 
+
=== Obtaining and installing Git ===
+
 
+
If you don't already have Git on your system then you (or your sysadmin) will have to install it.  To check if it is already installed, you can ask for the version at the Unix prompt.  Type:
+
 
+
git --version
+
 
+
If you get a string similar to:
+
 
+
git version 2.17.0
+
 
+
then you are good to go.  (The actual version # doesn't matter.)  If not, then you (or your sysadmin) may obtain the Git source code (or binaries) [http://git-scm.com/download the Git website].
+
 
+
=== First-time setup ===
+
 
+
Before using Git for the first time, you need to set up your <tt>~/.gitconfig</tt> file.  Open a text editor and then cut & paste the text from [http://docs.scipy.org/doc/numpy-1.6.0/dev/gitwash/configure_git.html this sample <tt>.gitconfig</tt> file].  Then save it as <tt>~/.gitconfig</tt>. 
+
 
+
Be sure to change your name and email accordingly, this is how Git will know who you are!
+
 
+
Please see the following pages which describe how to download the GEOS-Chem and GAMAP source code packages via Git.
+
 
+
=== Downloading GEOS-Chem and GAMAP ===
+
 
+
Please see the following wiki pages which contain detailed information about how to use Git to download and modify the GEOS-Chem and GAMAP source code packages:
+
 
+
* [[Using Git with GEOS-Chem]]
+
* [[Using Git with GAMAP]]
+
 
+
--[[User:Bmy|Bob Y.]] 09:43, 16 March 2010 (EDT)
+
 
+
== References ==
+
 
+
# [http://git-scm.com/ Git web page]
+
# [http://zrusin.blogspot.com/2007/09/git-cheat-sheet.html Git Cheat Sheet]
+
# Google "Tech Talk" by Linus Torvalds, the creator of Git [http://www.youtube.com/watch?v=4XpnKHJAok8 (Video on Youtube)]
+
# Google "Tech talk" by Randal Schwartz [http://www.youtube.com/watch?v=8dhZ9BXQgc4 (Video on Youtube)]
+
# Setting up your <tt>.gitconfig</tt> file [http://stackoverflow.com/questions/267761/what-does-your-gitconfig-contain (Link)]
+
 
+
--[[User:Bmy|Bob Y.]] 15:35, 26 January 2011 (EST)
+

Latest revision as of 17:26, 21 June 2019