Git For Beginners
From UABgrid Documentation
(Git branch) |
m (→Git branches) |
||
Line 180: | Line 180: | ||
[new_branch e6a1591] Commit to new_branch | [new_branch e6a1591] Commit to new_branch | ||
1 file changed, 1 insertion(+), 1 deletion(-) | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
− | |||
− | |||
[ravi89@c0021 Tutorial_June_2018]$ git checkout master | [ravi89@c0021 Tutorial_June_2018]$ git checkout master | ||
Switched to branch 'master' | Switched to branch 'master' | ||
Line 230: | Line 228: | ||
[ravi89@c0021 Tutorial_June_2018]$ | [ravi89@c0021 Tutorial_June_2018]$ | ||
</pre> | </pre> | ||
− | |||
== Git Cheat Sheet == | == Git Cheat Sheet == | ||
A lot of the content on this page has been taken from this [https://services.github.com/on-demand/downloads/github-git-cheat-sheet.pdf cheatsheet] | A lot of the content on this page has been taken from this [https://services.github.com/on-demand/downloads/github-git-cheat-sheet.pdf cheatsheet] |
Revision as of 13:35, 19 June 2018
Git is a version control system for tracking changes in computer files and coordinating work on those files among multiple people.
Contents |
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 branches
To list all local branches in the current repository
[ravi89@c0021 Tutorial_June_2018]$ git branch * master [ravi89@c0021 Tutorial_June_2018]$
Create a new branch
[ravi89@c0021 Tutorial_June_2018]$ git branch new_branch [ravi89@c0021 Tutorial_June_2018]$ git branch * master new_branch [ravi89@c0021 Tutorial_June_2018]$
Switch to the specified branch and updates the working directory
[ravi89@c0021 Tutorial_June_2018]$ git checkout new_branch Switched to branch 'new_branch' [ravi89@c0021 Tutorial_June_2018]$ git branch master * new_branch [ravi89@c0021 Tutorial_June_2018]$
Combine the specified branch’s history into the current branch
git merge [branch]
- Example
[ravi89@c0021 Tutorial_June_2018]$ git status # On branch new_branch # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: test # no changes added to commit (use "git add" and/or "git commit -a") [ravi89@c0021 Tutorial_June_2018]$ git add test [ravi89@c0021 Tutorial_June_2018]$ git commit -m "Commit to new_branch" [new_branch e6a1591] Commit to new_branch 1 file changed, 1 insertion(+), 1 deletion(-) [ravi89@c0021 Tutorial_June_2018]$ git checkout master Switched to branch 'master' [ravi89@c0021 Tutorial_June_2018]$ git merge new_branch Updating 65d2065..e6a1591 Fast-forward test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) [ravi89@c0021 Tutorial_June_2018]$ git log commit e6a159184073ed1915fec03f87c6c5866fb099df Author: ravi89 <ravi89@uab.edu> Date: Tue Jun 19 13:27:40 2018 -0500 Commit to new_branch commit 65d20658d2972e2b64b5f8eb192c59d63c90d398 Author: ravi89 <ravi89@uab.edu> Date: Tue Jun 19 11:43:34 2018 -0500 Adding feature1 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@c0021 Tutorial_June_2018]$
Delete the specified branch.
git branch -d [branch-name]
[ravi89@c0021 Tutorial_June_2018]$ git branch * master new_branch [ravi89@c0021 Tutorial_June_2018]$ git branch -d new_branch Deleted branch new_branch (was e6a1591). [ravi89@c0021 Tutorial_June_2018]$ git branch * master [ravi89@c0021 Tutorial_June_2018]$
Git Cheat Sheet
A lot of the content on this page has been taken from this cheatsheet