Chapter 9 Glossary of Terms

Branching: From GitHUB: “A branch is a parallel version of a repository. It is contained within the repository, but does not affect the primary or master branch allowing you to work freely without disrupting the”live" version. When you’ve made the changes you want to make, you can merge your branch back into the master branch to publish your changes."

Commit: From GitHub: “A commit, or”revision“, is an individual change to a file (or set of files). It’s like when you save a file, except with Git, every time you save it creates a unique ID (a.k.a. the”SHA" or “hash”) that allows you to keep record of what changes were made when and by who. Commits usually contain a commit message which is a brief description of what changes were made."

Developing Analyses: A term coined by Hillary Parker that describes the process by which a data anlaysis is ensured to be reproducible, accurate and collaborative.

Distributed Version Control: A system of tracking the changes in a set of files that allows devlopers to work on locally stored copies of the same set of files, before sharing the changes with a remote copy of the set of files.

Fork:From GitHub: “A fork is a personal copy of another user’s repository that lives on your account. Forks allow you to freely make changes to a project without affecting the original. Forks remain attached to the original, allowing you to submit a pull request to the original’s author to update with your changes. You can also keep your fork up to date by pulling in updates from the original.”

Issues: From GitHub: “Issues are suggested improvements, tasks or questions related to the repository. Issues can be created by anyone (for public repositories), and are moderated by repository collaborators. Each issue contains its own discussion forum, can be labeled and assigned to a user.”

Local: The set of your repositories files that are stored on your own computer.

Literate Programming: A programming paradigm invented by Donals Knuth that puts the emphasis on human readability of code and flow of code structure that is logical to the human.

Merge: From GitHub: “Merging takes the changes from one branch (in the same repository or from a fork), and applies them into another. This often happens as a pull request (which can be thought of as a request to merge), or via the command line. A merge can be done automatically via a pull request via the GitHub web interface if there are no conflicting changes, or can always be done via the command line. For more information, see”Merging a pull request."

Remote: From GitHub: “This is the version of something that is hosted on a server, most likely GitHub. It can be connected to local clones so that changes can be synced.”

Pull Request: From GitHub: “Pull requests are proposed changes to a repository submitted by a user and accepted or rejected by a repository’s collaborators. Like issues, pull requests each have their own discussion forum.”

Push: From GitHub: “Pushing refers to sending your committed changes to a remote repository, such as a repository hosted on GitHub. For instance, if you change something locally, you’d want to then push those changes so that others may access them.”

Working Directory: The folder in which your R session is reading and writing files from and to.