Git For Beginners

From Cheaha
Revision as of 15:53, 19 June 2018 by Ravi89@uab.edu (talk | contribs) (Adding link for the cheatsheet)
Jump to navigation Jump to search


Attention: Research Computing Documentation has Moved
https://docs.rc.uab.edu/


Please use the new documentation url https://docs.rc.uab.edu/ for all Research Computing documentation needs.


As a result of this move, we have deprecated use of this wiki for documentation. We are providing read-only access to the content to facilitate migration of bookmarks and to serve as an historical record. All content updates should be made at the new documentation site. The original wiki will not receive further updates.

Thank you,

The Research Computing Team

Git is a version control system for tracking changes in computer files and coordinating work on those files among multiple people.


Configuration

To configure user information for all local repositories use the following commands:

  • Set the name you want attached to your commit transactions.
 git config --global user.name "[name]"
  • Set the email you want atached to your commit transactions
git config --global user.email "[email address]"

Initializing a git repository

To initialize a new git repository, run:

[ravi89@login001 Tutorial_June_2018]$ git init test
Initialized empty Git repository in /data/user/ravi89/HPC_Training/Tutorial_June_2018/test/.git/
[ravi89@login001 Tutorial_June_2018]$

To make an already existing directory, a git repo, run:

cd EXISTING_DIRECTORY
git init

Review changes

Once you have made changes to the files in a git repository, you can review your edits using following commands.

To list all new or modified files to be commited:

[ravi89@login001 Tutorial_June_2018]$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	test
nothing added to commit but untracked files present (use "git add" to track)
[ravi89@login001 Tutorial_June_2018]$

To show file differences that have not yet been staged for a commit:

[ravi89@login001 Tutorial_June_2018]$ git diff
diff --git a/test b/test
index 19e2dd9..d04e379 100644
--- a/test
+++ b/test
@@ -1 +1,3 @@
 Show git status
+
+Demo git diff
[ravi89@login001 Tutorial_June_2018]$ git status

To see the file differences for file that have been staged, use: git diff --staged

Commit a file

To commit a file you first need to add the file where you have made changes, i.e. stage the file:

git add CHANGED_FILE

This snapshots/stages the file in preparation for versioning.

Next commit these changes to record file snapshots permanently in version history

git commit -m "YOUR_COMMIT_MESSAGE"

Git History

Browse and inspect the evolution of project files

To list version history for the current branch

[ravi89@c0027 Tutorial_June_2018]$ git log
commit 69314c321f5e56eb3f39d7c6588db3994493cbd9
Author: ravi89 <ravi89@uab.edu>
Date:   Mon Jun 18 16:48:18 2018 -0500

    Testing branch and graph

commit 5d710775910a9fbea8d06a50ced9f5d59e893589
Author: ravi89 <ravi89@uab.edu>
Date:   Mon Jun 18 16:32:42 2018 -0500

    Second commit

commit 39313b92a2cb796dae1d53bc44d0ab4b07a9a13f
Author: ravi89 <ravi89@uab.edu>
Date:   Mon Jun 18 16:29:32 2018 -0500

    First commit
[ravi89@c0027 Tutorial_June_2018]$

To list version history for a particular file in your project:

[ravi89@c0027 Tutorial_June_2018]$ git log --follow test1
commit 4b679447ceeae3c5c95575eab301c20b2d893b06
Author: ravi89 <ravi89@uab.edu>
Date:   Tue Jun 19 10:25:48 2018 -0500

    Adding a new file
[ravi89@c0027 Tutorial_June_2018]$

To output metadata and content changes of the specified commit:

[ravi89@c0027 Tutorial_June_2018]$ git show 5d71077
commit 5d710775910a9fbea8d06a50ced9f5d59e893589
Author: ravi89 <ravi89@uab.edu>
Date:   Mon Jun 18 16:32:42 2018 -0500

    Second commit

diff --git a/test b/test
index 19e2dd9..d04e379 100644
--- a/test
+++ b/test
@@ -1 +1,3 @@
 Show git status
+
+Demo git diff
[ravi89@c0027 Tutorial_June_2018]$

NOTE: In the above example, we have used first 7 characters of the commit hash, instead of the entire commit hash. Minimum number of characters required for it to be useful is 4, but it is recommended to use 6-8 characters for higher likelihood of uniqueness.


Git Cheat Sheet

A lot of the content on this page has been taken from this cheatsheet