Difference between revisions of "Annotated Git session using the sim-recon repository"
Line 1: | Line 1: | ||
− | + | I needed to update one monitoring plugin file, which was in a non-git directory in my home area. This was the best way to go about it: | |
− | I needed to update one monitoring plugin file, which was in a non-git directory in my home area. This was the best way to go about it | + | |
− | + | ||
Make a local copy of the entire sim-recon repository for myself. This took about 5 seconds. | Make a local copy of the entire sim-recon repository for myself. This took about 5 seconds. | ||
− | |||
<pre style="color:darkblue"> | <pre style="color:darkblue"> | ||
cd ~ | cd ~ | ||
Line 24: | Line 21: | ||
git status | git status | ||
</pre> | </pre> | ||
− | <pre style="color: | + | <pre style="color:darkred"> |
# On branch master | # On branch master | ||
# Changed but not updated: | # Changed but not updated: | ||
Line 33: | Line 30: | ||
# | # | ||
</pre> | </pre> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
List the changes between this copy and the original and make sure that they are all mine (use space to get to next page) | List the changes between this copy and the original and make sure that they are all mine (use space to get to next page) | ||
+ | <pre style="color:darkblue"> | ||
git diff | git diff | ||
+ | </pre> | ||
Make a new branch to contain and label my change | Make a new branch to contain and label my change | ||
+ | <pre style="color:darkblue"> | ||
git branch cdcpluginupdate | git branch cdcpluginupdate | ||
git status | git status | ||
+ | </pre> | ||
+ | <pre style="color:darkred"> | ||
# On branch master | # On branch master | ||
# Changed but not updated: | # Changed but not updated: | ||
Line 58: | Line 53: | ||
# | # | ||
no changes added to commit (use "git add" and/or "git commit -a") | no changes added to commit (use "git add" and/or "git commit -a") | ||
− | + | </pre> | |
Switch to the new branch, check the status and list the branches. | Switch to the new branch, check the status and list the branches. | ||
+ | <pre style="color:darkblue"> | ||
git checkout cdcpluginupdate | git checkout cdcpluginupdate | ||
+ | </pre><pre style="color:darkred"> | ||
M src/plugins/monitoring/CDC_online/JEventProcessor_CDC_online.cc | M src/plugins/monitoring/CDC_online/JEventProcessor_CDC_online.cc | ||
Switched to branch 'cdcpluginupdate' | Switched to branch 'cdcpluginupdate' |
Revision as of 15:48, 14 December 2015
I needed to update one monitoring plugin file, which was in a non-git directory in my home area. This was the best way to go about it:
Make a local copy of the entire sim-recon repository for myself. This took about 5 seconds.
cd ~ mkdir git cd git git clone https://github.com/JeffersonLab/sim-recon
Check that the plugin in the repository is what I think it is
cd sim-recon/src/plugins/monitoring/CDC_online/ git status
Copy in my updated file
cp ~/online/plugins/CDC_online/JEventProcessor_CDC_online.cc . git status
# On branch master # Changed but not updated: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: JEventProcessor_CDC_online.cc #
List the changes between this copy and the original and make sure that they are all mine (use space to get to next page)
git diff
Make a new branch to contain and label my change
git branch cdcpluginupdate git status
# On branch master # Changed but not updated: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: JEventProcessor_CDC_online.cc # no changes added to commit (use "git add" and/or "git commit -a")
Switch to the new branch, check the status and list the branches.
git checkout cdcpluginupdate
M src/plugins/monitoring/CDC_online/JEventProcessor_CDC_online.cc Switched to branch 'cdcpluginupdate'
git status
- On branch cdcpluginupdate
- Changes to be committed:
- (use "git reset HEAD <file>..." to unstage)
- modified: JEventProcessor_CDC_online.cc
git branch
- cdcpluginupdate
master
Add the file to the list of files to be committed/uploaded to the repository
git add JEventProcessor_CDC_online.cc
git status
- On branch cdcpluginupdate
- Changes to be committed:
- (use "git reset HEAD <file>..." to unstage)
- modified: JEventProcessor_CDC_online.cc
Tell git to use my username and email address that I used when joining the GlueX github team
git config --global user.name "Naomi Jarvis" git config --global user.email "nsj@cmu.edu"
Commit change to the local repository
git commit -m "updated cdc_online for fa125 new format"
Send it to the remote repository. The first branchname given is the local name, the second is the new name on the remote repo (usually no need to change it).
git push origin cdcpluginupdate:cdcpluginupdate error: The requested URL returned error: 403 Forbidden while accessing https://github.com/JeffersonLab/sim-recon/info/refs fatal: HTTP request failed
This did not work, check the age of git
git —version git version 1.7.1
Try again from a different computer with a more recent git, as 1.7.1 is known to be problematic
git —version git version 2.5.0
git push origin cdcpluginupdate:cdcpluginupdate Counting objects: 7, done. Delta compression using up to 4 threads. Compressing objects: 100% (7/7), done. Writing objects: 100% (7/7), 1.43 KiB | 0 bytes/s, done. Total 7 (delta 6), reused 0 (delta 0) To https://github.com/JeffersonLab/sim-recon
* [new branch] cdcpluginupdate -> cdcpluginupdate
ONE MORE THING. Need to issue the pull request on the web page (for someone to approve the addition)
Go to https://github.com/JeffersonLab/sim-recon and sign in on the RHS. Below ‘Simulation and Reconstruction for GlueX’ there was a pale yellow box showing the name of my new branch, and on the RHS inside the box was a green button ‘changes and pull request’. Click it.
Now wait for someone else to merge it. (or not).