Difference between revisions of "Git"

From UFRC
Jump to navigation Jump to search
(19 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Infrastructure]][[Category:Docs]]
+
[[Category:Software]]
==Installation==
+
{|<!--CONFIGURATION: REQUIRED-->
===Redhat EL 6.0===
+
|{{#vardefine:app|git}}
Simple installation:
+
|{{#vardefine:url|https://git-scm.com/}}
 +
<!--CONFIGURATION: OPTIONAL (|1}} means it's ON)-->
 +
|{{#vardefine:conf|}}          <!--CONFIGURATION-->
 +
|{{#vardefine:exe|1}}            <!--ADDITIONAL INFO-->
 +
|{{#vardefine:job|}}            <!--JOB SCRIPTS-->
 +
|{{#vardefine:policy|}}        <!--POLICY-->
 +
|{{#vardefine:testing|}}      <!--PROFILING-->
 +
|{{#vardefine:faq|}}            <!--FAQ-->
 +
|{{#vardefine:citation|}}      <!--CITATION-->
 +
|{{#vardefine:installation|}} <!--INSTALLATION-->
 +
|}
 +
<!--BODY-->
 +
<!--Description-->
 +
{{#if: {{#var: url}}|
 +
{{App_Description|app={{#var:app}}|url={{#var:url}}|name={{#var:app}}}}|}}
  
yum install git
+
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
  
==Using git.hpc.ufl.edu==
+
Git is easy to learn and has a tiny footprint with lightning fast performance. It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with features like cheap local branching, convenient staging areas, and multiple workflows.
As an example we'll use the ''awesome'' group, administrative user (set up by HPC staff) ''admin'' and a regular user ''student''.
 
===admin@linux64===
 
The admin user on a remote machine ''linux64'' can do the following
 
* Check out the admin repository
 
git clone awesome@git.hpc.ufl.edu:gitosis-admin.git
 
* Add more users e.g. 'student' with a  public key ''student.pub''
 
cd gitosis-admin
 
cp ~/student.pub keydir/
 
git add keydir/*
 
git commit -m "added user student"
 
git push
 
* Create a new repository ''denovo'' for ''de novo'' assembly scripts and set access to users ''admin'' and ''student''
 
cd gitosis-admin
 
vim gitosis.conf
 
Add:
 
[group awesome]
 
writable = denovo
 
members = admin student
 
* Commit and push
 
git add *
 
git commit -m "Set up a new repository denovo for use by admin and student"
 
git push
 
* Create a local working tree for the ''denovo'' project:
 
cd
 
mkdir denovo
 
cd denovo
 
git init
 
git remote add origin awesome@hpc.ufl.edu:denovo.git
 
* Add and edit some files
 
* Commit and push to the Git server
 
git add *
 
git commit -m "Initial import"
 
git push origin master
 
Output:
 
Initialized empty Git repository in /git/awesome/repositories/denovo.git/
 
Counting objects: 3, done.
 
Writing objects: 100% (3/3), 231 bytes, done.
 
Total 3 (delta 0), reused 0 (delta 0)
 
To awesome@git.hpc.ufl.edu:denovo.git
 
* [new branch]      master -> master
 
  
===student@linux64===
+
<!--Modules-->
* Clone the ''denovo'' repository
+
==Environment Modules==
git clone awesome@git.hpc.ufl.edu:denovo.git
+
Run <code>module spider {{#var:app}}</code> to find out what environment modules are available for this application.
Output:
+
==System Variables==
Cloning into denovo...
+
* HPC_{{uc:{{#var:app}}}}_DIR - installation directory
remote: Counting objects: 3, done.
+
 
remote: Total 3 (delta 0), reused 0 (delta 0)
+
<!--Configuration-->
Receiving objects: 100% (3/3), done.
+
{{#if: {{#var: conf}}|==Configuration==
* Work in the git working tree
+
See the [[{{PAGENAME}}_Configuration]] page for {{#var: app}} configuration details.
cd denovo
+
|}}
Edit and add files
+
<!--Run-->
* Commit and push the changes to the repository
+
{{#if: {{#var: exe}}|==Additional Information==
git add *
+
 
git commit -m "The changes I made"
+
UFRC git environment  module also contains a 'git-lfs' instance, so you can run 'git lfs ...' after loading the git environment module.
git push
+
 
 +
|}}
 +
<!--Job Scripts-->
 +
{{#if: {{#var: job}}|==Job Script Examples==
 +
See the [[{{PAGENAME}}_Job_Scripts]] page for {{#var: app}} Job script examples.
 +
|}}
 +
<!--Policy-->
 +
{{#if: {{#var: policy}}|==Usage Policy==
 +
 
 +
WRITE USAGE POLICY HERE (Licensing, usage, access).
 +
 
 +
|}}
 +
<!--Performance-->
 +
{{#if: {{#var: testing}}|==Performance==
 +
 
 +
WRITE_PERFORMANCE_TESTING_RESULTS_HERE
 +
 
 +
|}}
 +
<!--Faq-->
 +
{{#if: {{#var: faq}}|==FAQ==
 +
*'''Q:''' **'''A:'''|}}
 +
<!--Citation-->
 +
{{#if: {{#var: citation}}|==Citation==
 +
If you publish research that uses {{#var:app}} you have to cite it as follows:
 +
 
 +
WRITE_CITATION_HERE
 +
 
 +
|}}
 +
<!--Installation-->
 +
{{#if: {{#var: installation}}|==Installation==
 +
See the [[{{PAGENAME}}_Install]] page for {{#var: app}} installation notes.|}}
 +
<!--Turn the Table of Contents and Edit paragraph links ON/OFF-->
 +
__NOTOC____NOEDITSECTION__

Revision as of 20:28, 8 April 2022

Description

git website  

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Git is easy to learn and has a tiny footprint with lightning fast performance. It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with features like cheap local branching, convenient staging areas, and multiple workflows.

Environment Modules

Run module spider git to find out what environment modules are available for this application.

System Variables

  • HPC_GIT_DIR - installation directory


Additional Information

UFRC git environment module also contains a 'git-lfs' instance, so you can run 'git lfs ...' after loading the git environment module.