Difference between revisions of "Committing"

From Geos-chem
Jump to: navigation, search
(Creating a commit with Git GUI)
 
(26 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
'''''[[Branching|Previous]] | [[Tagging|Next]] | [[Guide to using Git with GEOS-Chem]] | [[Getting Started with GEOS-Chem]]'''''
 +
 +
#[[Introduction to Git]]
 +
#[[Installing Git]]
 +
#[[First-time Git setup]]
 +
#[[Cloning (i.e. downloading for the first time)]]
 +
#[[Ignoring files]]
 +
#[[Viewing the revision history]]
 +
#[[Using Git GUI]]
 +
#[[Branching]]
 +
#<span style="color:blue">'''Committing'''</span>
 +
#[[Tagging]]
 +
#[[Merging]]
 +
#[[Receiving updates (aka pulling)]]
 +
#[[Using patches to share your updates with others]]
 +
#[[Advanced Git usage]]
 +
#[[Git and Github tutorials]]
 +
  
 
== Overview ==
 
== Overview ==
 +
 +
On this page, we provide instructions on how to commit source code changes with Git.
  
 
== Creating a commit with Git GUI ==
 
== Creating a commit with Git GUI ==
Line 7: Line 27:
  
 
Committing is best done with the [[Using Git GUI|Git GUI]].   
 
Committing is best done with the [[Using Git GUI|Git GUI]].   
 +
 +
(1) '''Start Git GUI'''.
 +
 +
git gui &
 +
 +
(2) Select '''Commit/Rescan''' from the menu (or type the F5 key) to force Git GUI to show the latest changes.
 +
 
[[Image:GitGuiCommitMenu.png]]
 
[[Image:GitGuiCommitMenu.png]]
  
Follow these steps:
+
(3) You should see a list of files in the '''Unstaged Changes''' window. These are files that have been modified.
  
# Pick '''Commit/Rescan''' from the menu (or type the F5 key) to force the '''git gui''' to show the latest changes.
+
(4) '''Stage your changes''' (i.e. tell Git to add the modifications to the revision history). This can be done in one of two ways:
# You should get a list of files in the '''Unstaged Changes''' window. Clicking on the icons on the left of the file names will send them to the '''Staged Changes''' window. Git will add all of the files in '''Staged Changes''' to the repository on the next time you commit. Note: Clicking on the icon of the files in the '''Staged Changes''' moves back the file to the '''Unstaged Changes''' window.
+
*Click on the icons at the left of each file name in the '''Unstaged Changes''' window, OR
# Type a '''Commit message''' in the bottom right window.  [https://github.com/erlang/otp/wiki/Writing-good-commit-messages See this example of a good commit message].  Some pointers are:
+
*Click on the '''Stage Changed''' button. (WARNING: This will stage ALL changes!)
## The first line should only be 50 characters or less and succinctly describe the commit
+
## Then leave a blank line
+
## Then add more in-depth text that describes the commit
+
## Then click on the '''Signed-off by''' button.  This will add your name, email address, and a timestamp. Note: To modify your name and email address, edit the <tt>.gitconfig</tt> file in your home directory.
+
# There are two radio buttons above the '''Commit message''' window.
+
##New commit: This is the default.  Assumes we are making a totally new commit.
+
##Amend last commit: If for whatever reason we need to update the last commit message, pick this button.
+
# Click on the '''Commit''' button.
+
  
If you then '''gitk''' viewer, your new commit should be visible.
+
(5) If you need to remove a file from '''Staged Changes''', just click on its icon.  It will be moved back to '''Unstaged Changes'''.  Git will not include that file in the revision history.
  
=== Renaming or moving files ===
+
(6) '''Type a commit message''' in the bottom right window.  [https://github.com/erlang/otp/wiki/Writing-good-commit-messages See this example of a good commit message].  Some pointers are:
 +
*The first line should only be 50 characters or less and succinctly describe the commit
 +
*Then leave a blank line
 +
*Then add more in-depth text that describes the commit
  
In some instances you may find it necessary to rename filesFor example, in [[GEOS-Chem v9-01-02]], we have had to rename file ending in <tt>.f</tt> to <tt>.F</tt> and <tt>.f90</tt> to <tt>.F90</tt>.  If only the name of the file changes, then Git will recognize it as a renamed file in the repository. To rename a file, follow these steps:
+
(7) '''Click''' on the '''Sign off''' buttonThis will add your name, email address, and a timestamp.   
 +
*To modify your name and email address, edit the <tt>.gitconfig</tt> file in your home directory, as described in ''[[First-time Git setup]]''.
  
Follow these steps:
+
(8) '''Select''' one of the two radio buttons above the '''Commit message''' window.
 +
*'''New commit:''' This is the default.  Assumes you are making a totally new commit.
 +
*'''Amend last commit:''' If for whatever reason you need to update the last commit message, pick this button.
  
# Change the name of the file with the Unix <tt>mv</tt> command.  For example: <tt>mv myfile.f myfile.F</tt>
+
(9) '''Click''' on the '''Commit''' button.
# Open the '''git gui'''.  You will see the two files <tt>myfile.f</tt> and <tt>myfile.F</tt> listed in the '''Unstaged Changes''' window.   
+
 
#Click on <tt>myfile.f</tt> and <tt>myfile.F</tt>; this will move them to the '''Staged Changes''' window.   
+
(10) [[Viewing the revision history|'''View the revision history''']] again.  You should see your new commit.
# In '''Staged Changes''' you will see:
+
 
##File <tt>myfile.f</tt> is slated to be removed (i.e. a red "X" is listed next to the file name).
+
== Renaming or moving files ==
##File <tt>myfile.F</tt> is slated to be added (i.e. a green checkmark is listed next to the file name).
+
 
# Add a commit message, sign off, and click '''Commit''' [[#Committing|as described above]].
+
In some instances you may find it necessary to rename files or move files to a new folder.  For example, in [[GEOS-Chem v9-01-02]], we have had to rename file ending in <tt>.f</tt> to  <tt>.F</tt> and <tt>.f90</tt> to <tt>.F90</tt>.  If only the name of the file changes, then Git will recognize it as a renamed file in the repository. 
# Start the '''gitk''' browser.  In the lower left window, you should see text such as:
+
 
 +
=== Renaming files ===
 +
 
 +
To rename a file, follow these steps:
 +
 
 +
(1) Change the name of the file with the Unix <tt>mv</tt> command.   
 +
*e.g.: <tt>mv myfile.f myfile.F</tt>.
 +
 
 +
(2) Open the '''git gui'''.  You will see the two files <tt>myfile.f</tt> and <tt>myfile.F</tt> listed in the '''Unstaged Changes''' window.   
 +
 
 +
(3) Click on <tt>myfile.f</tt> and <tt>myfile.F</tt>; this will move them to the '''Staged Changes''' window.   
 +
 
 +
(4) In '''Staged Changes''' you will see:
 +
*File <tt>myfile.f</tt> is slated to be removed (i.e. a red "X" is listed next to the file name).
 +
*File <tt>myfile.F</tt> is slated to be added (i.e. a green checkmark is listed next to the file name).
 +
 
 +
(5) Add a commit message, sign off, and click '''Commit''' [[#Creating a commit with Git GUI||as described above]].
 +
 
 +
(6) Start the '''gitk''' browser.  In the lower left window, you should see text such as:
  
 
   ---------------- GeosCore/myfile.F --------------------------
 
   ---------------- GeosCore/myfile.F --------------------------
Line 46: Line 89:
  
 
From this point forward, file <tt>myfile.F</tt> will use the <tt>*.F</tt> file extension.  However, it will still possess the total revision history from when the file was still named <tt>myfile.f</tt>.  If you merge changes from another repository that still has <tt>myfile.f</tt>, then these changes will be seamlessly integrated into <tt>myfile.F</tt>.
 
From this point forward, file <tt>myfile.F</tt> will use the <tt>*.F</tt> file extension.  However, it will still possess the total revision history from when the file was still named <tt>myfile.f</tt>.  If you merge changes from another repository that still has <tt>myfile.f</tt>, then these changes will be seamlessly integrated into <tt>myfile.F</tt>.
 +
 +
=== Moving files ===
 +
 +
If you need to move a file to a new folder, then follow these steps:
 +
 +
(1) Move the file to a new folder.
 +
*e.g. <tt>mv GeosCore/myfile.F NewFolder/myfile.F.</tt>
 +
 +
(2) Open the '''git gui'''.  You will see the two files <tt>myfile.f</tt> and <tt>myfile.F</tt> listed in the '''Unstaged Changes''' window. 
 +
 +
(3)Click on <tt>myfile.F</tt> and <tt>NewFolder/myfile.F</tt>; this will move them to the '''Staged Changes''' window. 
 +
 +
(4) In '''Staged Changes''' you will see:
 +
*File <tt>myfile.F</tt> is slated to be removed (i.e. a red "X" is listed next to the file name).
 +
*File <tt>NewFolder/myfile.F</tt> is slated to be added (i.e. a green checkmark is listed next to the file name).
 +
 +
(5) Add a commit message, sign off, and click '''Commit''' [[#Creating a commit with Git GUI|as described above]].
 +
 +
(6) Start the '''gitk''' browser.  In the lower left window, you should see text such as:
 +
 +
  ---------------- NewFolder/myfile.F --------------------------
 +
  similarity index 100%
 +
  rename from GeosCore/myfile.F
 +
  rename to NewFolder/myfile.F
 +
 +
From this point forward, file <tt>NewFolder/myfile.F</tt> will still possess the total revision history from when the file was still named <tt>GeosCore/myfile.F</tt>.  If you merge changes from another repository that still has <tt>GeosCore/myfile.F</tt>, then these changes will be seamlessly integrated into <tt>NewFolder/myfile.F</tt>.
 +
 +
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 15:56, 20 June 2019 (UTC)
 +
 +
== Further reading ==
 +
 +
#[https://git-scm.com/docs/git-commit ''Git commit'' (Git documentation)]
 +
#[https://www.git-tower.com/learn/git/commands/git-commit ''Git commit'' (Git Tower)]
 +
#[https://www.atlassian.com/git/tutorials/saving-changes/git-commit ''Git commit'' (Atlassian Git tutorial)]
 +
 +
 +
----
 +
'''''[[Branching|Previous]] | [[Tagging|Next]] | [[Guide to using Git with GEOS-Chem]] | [[Getting Started with GEOS-Chem]]'''''

Latest revision as of 20:28, 5 August 2019

Previous | Next | Guide to using Git with GEOS-Chem | Getting Started with GEOS-Chem

  1. Introduction to Git
  2. Installing Git
  3. First-time Git setup
  4. Cloning (i.e. downloading for the first time)
  5. Ignoring files
  6. Viewing the revision history
  7. Using Git GUI
  8. Branching
  9. Committing
  10. Tagging
  11. Merging
  12. Receiving updates (aka pulling)
  13. Using patches to share your updates with others
  14. Advanced Git usage
  15. Git and Github tutorials


Overview

On this page, we provide instructions on how to commit source code changes with Git.

Creating a commit with Git GUI

With Git, you should commit frequently, such as when you have completed making revisions to a file or group of files. Commits that are made on one branch will not affect the other branches.

Committing is best done with the Git GUI.

(1) Start Git GUI.

git gui &

(2) Select Commit/Rescan from the menu (or type the F5 key) to force Git GUI to show the latest changes.

GitGuiCommitMenu.png

(3) You should see a list of files in the Unstaged Changes window. These are files that have been modified.

(4) Stage your changes (i.e. tell Git to add the modifications to the revision history). This can be done in one of two ways:

  • Click on the icons at the left of each file name in the Unstaged Changes window, OR
  • Click on the Stage Changed button. (WARNING: This will stage ALL changes!)

(5) If you need to remove a file from Staged Changes, just click on its icon. It will be moved back to Unstaged Changes. Git will not include that file in the revision history.

(6) Type a commit message in the bottom right window. See this example of a good commit message. Some pointers are:

  • The first line should only be 50 characters or less and succinctly describe the commit
  • Then leave a blank line
  • Then add more in-depth text that describes the commit

(7) Click on the Sign off button. This will add your name, email address, and a timestamp.

  • To modify your name and email address, edit the .gitconfig file in your home directory, as described in First-time Git setup.

(8) Select one of the two radio buttons above the Commit message window.

  • New commit: This is the default. Assumes you are making a totally new commit.
  • Amend last commit: If for whatever reason you need to update the last commit message, pick this button.

(9) Click on the Commit button.

(10) View the revision history again. You should see your new commit.

Renaming or moving files

In some instances you may find it necessary to rename files or move files to a new folder. For example, in GEOS-Chem v9-01-02, we have had to rename file ending in .f to .F and .f90 to .F90. If only the name of the file changes, then Git will recognize it as a renamed file in the repository.

Renaming files

To rename a file, follow these steps:

(1) Change the name of the file with the Unix mv command.

  • e.g.: mv myfile.f myfile.F.

(2) Open the git gui. You will see the two files myfile.f and myfile.F listed in the Unstaged Changes window.

(3) Click on myfile.f and myfile.F; this will move them to the Staged Changes window.

(4) In Staged Changes you will see:

  • File myfile.f is slated to be removed (i.e. a red "X" is listed next to the file name).
  • File myfile.F is slated to be added (i.e. a green checkmark is listed next to the file name).

(5) Add a commit message, sign off, and click Commit |as described above.

(6) Start the gitk browser. In the lower left window, you should see text such as:

  ---------------- GeosCore/myfile.F --------------------------
  similarity index 100%
  rename from GeosCore/myfile.f
  rename to GeosCore/myfile.F

From this point forward, file myfile.F will use the *.F file extension. However, it will still possess the total revision history from when the file was still named myfile.f. If you merge changes from another repository that still has myfile.f, then these changes will be seamlessly integrated into myfile.F.

Moving files

If you need to move a file to a new folder, then follow these steps:

(1) Move the file to a new folder.

  • e.g. mv GeosCore/myfile.F NewFolder/myfile.F.

(2) Open the git gui. You will see the two files myfile.f and myfile.F listed in the Unstaged Changes window.

(3)Click on myfile.F and NewFolder/myfile.F; this will move them to the Staged Changes window.

(4) In Staged Changes you will see:

  • File myfile.F is slated to be removed (i.e. a red "X" is listed next to the file name).
  • File NewFolder/myfile.F is slated to be added (i.e. a green checkmark is listed next to the file name).

(5) Add a commit message, sign off, and click Commit as described above.

(6) Start the gitk browser. In the lower left window, you should see text such as:

  ---------------- NewFolder/myfile.F --------------------------
  similarity index 100%
  rename from GeosCore/myfile.F
  rename to NewFolder/myfile.F

From this point forward, file NewFolder/myfile.F will still possess the total revision history from when the file was still named GeosCore/myfile.F. If you merge changes from another repository that still has GeosCore/myfile.F, then these changes will be seamlessly integrated into NewFolder/myfile.F.

--Bob Yantosca (talk) 15:56, 20 June 2019 (UTC)

Further reading

  1. Git commit (Git documentation)
  2. Git commit (Git Tower)
  3. Git commit (Atlassian Git tutorial)



Previous | Next | Guide to using Git with GEOS-Chem | Getting Started with GEOS-Chem