|
| 1 | +# Post-Tutorial Q&A |
| 2 | + We received some great questions from attendees of the 2020 vASB GitHub Tutorial. We've consolidated them along |
| 3 | + with their answers. At the bottom is a list of resources that can help further your Git/GitHub understanding. |
| 4 | + |
| 5 | +**Have you used the same process (Git/GitHub) for manuscripts? If so, any tips or suggestions?** |
| 6 | + |
| 7 | +Git and GitHub work best with raw text files. Code is an example of this, and allows for the line-by-line |
| 8 | +tracked changes we saw in the tutorial. If you use LaTeX to write manuscripts, Git/GitHub would be a great option |
| 9 | +for manuscript version control. But if you use Word Documents, there are probably better options because |
| 10 | +they are not raw text files. Here are two options to consider: |
| 11 | +1. Google Drive has some [version control functionality](https://support.google.com/drive/answer/2409045?co=GENIE.Platform%3DDesktop&hl=en) |
| 12 | + with any type of file. It is limited, but can be very useful still. |
| 13 | +2. A service like [Simul Docs](https://www.simuldocs.com/how-it-works) provides version control for Word |
| 14 | +Documents specifically. At this time, it is free to collaborate on a single document, but they offer paid |
| 15 | +services for more functionality. I'm using Simul Docs for one of my manuscripts and it's based on the same version |
| 16 | +control concepts we introduced at the start of this tutorial. |
| 17 | + |
| 18 | +**When do I create a new repository?** |
| 19 | + |
| 20 | +Repositories contain files for a given project, so I would have a repository for each project or study you might have. |
| 21 | +You can then organize your repo with subfolders for scripts used to process, analyze, or visualize your data, for example. |
| 22 | + |
| 23 | +**If I have multiple files in a repository and I think I may need to edit only some of them, should I |
| 24 | +just branch/checkout those files or all of them?** |
| 25 | + |
| 26 | +A clear distinction we need to make is that when you checkout a branch, your entire repository is copied. This will |
| 27 | +contain all of your files, so you don't need to worry about knowing ahead of time which files you'll need |
| 28 | +to change. You can just make changes in a branch, committing them along the way. |
| 29 | +When you are satisfied with the changes you've made in your branch, you can merge them into the master |
| 30 | +branch via a Pull Request like you did during [`Breakout 1`](Tutorial_Instructions/breakout_1.md). |
| 31 | + |
| 32 | +**How does Git handle reverting back to an earlier version (from version n to n-2, for example)? |
| 33 | +What happens to versions n and n-1?** |
| 34 | + |
| 35 | +We didn't have time to cover this in the 2020 ASB Tutorial, but it's been included in the associated video on youtube. |
| 36 | +Undoing changes is handled by [`Breakout 2`](Tutorial_Instructions/breakout_2.md) in a way |
| 37 | +that *maintains the integrity of your repository history*. This means that when we say |
| 38 | +your repository is "reverted", a new commit is being made that undoes the prior changes. The changes you |
| 39 | +made in version n and n-1 are still present in your repository's commit history in case you ever want to view them. |
| 40 | +However, version n+1 now contains changes that are the exact opposite of versions n and n-1. This is illustrated in the |
| 41 | +[Further Considerations](https://github.com/alcantarar/ASB_Tutorial/blob/master/Tutorial_Instructions/breakout_2.md#further-considerations-reverting-multiple-changes-at-once) |
| 42 | + portion of Breakout 2. |
| 43 | + |
| 44 | + ## Additional Git/GitHub Resources |
| 45 | + * [Git Cheatsheet](Tutorial_Instructions/git_cheatsheet.md) has the most-common commands and their definitions. |
| 46 | + * [How to undo (almost) anything with Git](https://github.blog/2015-06-08-how-to-undo-almost-anything-with-git/) is a blog |
| 47 | + by GitHub on undoing commits, messages, etc. |
| 48 | + * [GitHub's Guides](https://guides.github.com/) contains many instructional blog posts covering everything you need to know |
| 49 | + about using Git and GitHub. |
| 50 | + * [Good enough practices in scientific computing by Wilson et al. (2017)](https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1005510) |
| 51 | + is a publication highlighting the need for academic researchers to start learning about scienfiic computing best practices. |
| 52 | + Version control is included, along with general recommendations for computing workflows. |
| 53 | + * [Pro Git](https://git-scm.com/book/en/v2) is the actual textbook on Git. It's free and chapters 1-5 should cover 90% of what you need to know. |
| 54 | + * [LearnGitBranching.org](https://learngitbranching.js.org/) is an interactive web app that illustrates branching. |
0 commit comments