## Practical Intro to Git(Hub)
#### and AncientMetagenomeDir
By James A. Fellows Yates
Slides: [https://hackmd.io/@jfy133/H19kmDalw](https://hackmd.io/@jfy133/H19kmDalw)
---
## Scope
- Not technical
- i.e. not for computer-scientists
- Covers core functionality: max 3-5 ‘concepts’
- All you need to know!
- Primarily through github website
- No need for command-line shenanigans!
---
## Concepts
- Navigation
- Branches
- Commit
- Pull Request and Review
- Merging
---
## What is 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." - [Git Website](https://git-scm.com/)
---
## What is Git(Hub)?
"GitHub, Inc. is a United States-based global company that provides hosting for software development and version control using Git. It has been a subsidiary of Microsoft since 2018. It offers the distributed version control and source code management functionality of Git, plus its own features." - [Wikipedia](https://en.wikipedia.org/wiki/GitHub)
---
## What it can look like
<p>
<img src="https://i.imgur.com/mRRoDle.png" width=75%></img>
</p>
> From [nf-core/eager](https://github.com/nf-core/eager/)
---
## What it essentially is

---
## What this means
- **Branch**: make a copy of 'main' code
- work here at your own place in your own 'playground'
- **Commit**: a 'saved' edit
- Each has unique 'hash' for version control
- **Pull Request**:
- Via a 'pull request' on GitHub
- Peer reviewed, to check edits makes sense!
- **Merge**:
- Integrating your edits in the 'main' code
---
### What is AncientMetagenomeDir?
- Community-curated list of all published ancient metagenome samples
- Contains basic metadata for summary statistics and pointers to data
- Standardised, versioned and citable!
---
### What is AncientMetagenomeDir?
- A set of TSV files with semi-standardised column fields
- Covers:
- Publication
- Sample Name
- Sample Type
- Age
- Geographic Location
- Archive Accessions IDs (not data!)
---
### Where is AncientMetagenomeDir?
<p>
<a href="https://github.com/SPAAM-workshop/AncientMetagenomeDir/">
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/01-codetab.png?raw=true" width=75%></img>
</a>
</p>
Click :point_up:
---
### Navigation: Code Tab and README
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/01-codetab.png?raw=true" width=75%></img>
</p>
---
### Issue: Issues Tab
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/02a-issuestab.png?raw=true"></img>
</p>
---
### Issue: Inside an Issue
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/02b-issue_example.png?raw=true"></img>
</p>
---
### Pull Request: Pull Request Tab
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/03-prtab.png?raw=true"></img>
</p>
---
### Branch: Accessing Branches
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/04-branches.png?raw=true"></img>
</p>
---
### Branch: Making New Branch
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/05-makenewbranch.png?raw=true"></img>
</p>
---
### Branch: New Branch Success
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/06-newbranchmade.png?raw=true"></img>
</p>
---
### Navigation: Accessing Directory
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/07-accessdir.png?raw=true"></img>
</p>
---
### Navigation: Inside Directory
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/08-insidedir.png?raw=true"></img>
</p>
---
### Navigation: Internal README
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/09-insidedir_readme.png?raw=true"></img>
</p>
---
### Navigation: Opening a File
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/10-insidedir_file.png?raw=true"></img>
</p>
---
### Commit: Editing a File
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/11-editfile.png?raw=true"></img>
</p>
---
### Commit: Prepare Data
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/12-prepdata.png?raw=true"></img>
</p>
---
### Commit: Update File
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/13-adddata.png?raw=true"></img>
</p>
---
### Commit: Commit Commit
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/14-message_and_commit.png?raw=true"></img>
</p>
---
### Commit: Commit Committed
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/15-commit_made.png?raw=true"></img>
</p>
---
### Commit: Check Commit
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/16-check_commit.png?raw=true"></img>
</p>
---
### Pull Request: Pull Request Tab
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/17-pull_request.png?raw=true"></img>
</p>
---
### Pull Request: Make PR
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/18-make_pr.png?raw=true"></img>
</p>
---
### Pull Request: PR Information
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/19-link_issue.png?raw=true"></img>
</p>
---
### Pull Request: PR Checklist
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/20-pr_checklist.png?raw=true"></img>
</p>
---
### Pull Request: Submit PR
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/21-submit_pr.png?raw=true"></img>
</p>
---
### Pull Request: Request Review
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/22-request_pr.png?raw=true"></img>
</p>
---
### Pull Request: View PR
<p>
<img src="https://github.com/SPAAM-workshop/AncientMetagenomeDir/blob/master/assets/tutorials/intro-to-github-ancientmetagenomedir/23-doublecheck_pr.png?raw=true"></img>
</p>
---
## You're done!
Just rinse and repeat!
Everything else: Just Ask (Google first :wink:)
- [Atlassian git tutorials](https://www.atlassian.com/git/tutorials)
- [GitHub tutorials](https://docs.github.com/en/github)
---
### Questions?
---
#### Notes on AncientMetagenomeDir
- Still 'under dev' - expect changes
- Keep eye on slack channel and github issues
- Help requested - definitions of fields for:
- Pathogens
- sedaDNA
- Future
- Add automatic checking of PRs
- Creating review 'team'
- Expansion to data?
---
## Remaining time
* Assign your self an issue
* Make a branch and start!
---
### Thank you! :sheep:
You can find me on
- GitHub (jfy133)
- Slack
- or email me
{"metaMigratedAt":"2023-06-15T11:09:38.549Z","metaMigratedFrom":"YAML","title":"Practical Intro to Git(Hub) and AncientMetagenomeDir","breaks":true,"description":"Practical introduction to Git(Hub) for AncientMetagenomeDir","slideOptions":"{\"transition\":\"slide\",\"allottedMinutes\":2,\"theme\":\"blood\"}","contributors":"[{\"id\":\"6357fb8d-b0f8-4b7d-9fbe-6d813ad67700\",\"add\":12740,\"del\":4058}]"}