Skip to content

Commit f2ec879

Browse files
committed
Expand tutorial content and migrate book config
1 parent 7a871e9 commit f2ec879

12 files changed

Lines changed: 775 additions & 80 deletions

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[![PSL incubating](https://img.shields.io/badge/PSL-incubating-ff69b4.svg)](https://www.PSLmodels.org)
22

3-
# <img src="https://raw.githubusercontent.com/PSLmodels/Git-Tutorial/master/book/_static/logo/jb_git_tutorial_logo.png" width=40 /> Git and GitHub Use, Collaboration, and Workflow (*IN PROGRESS*)
4-
This repository houses the source code and content files for the open access, *Git and GitHub Use, Collaboration, and Workflow* book tutorial and training that many contributors to the [PSLmodels](https://github.com/PSLmodels) community use. This project uses [Jupyter Book](https://jupyterbook.org/intro.html) 0.7.3 to create the HTML and Jupyter notebook forms of the tutorial. This public GitHub repository hosts all the source code for the book, and the compiled Jupyter book is available at the GitHub page for this repository [https://pslmodels.github.io/Git-Tutorial](https://pslmodels.github.io/Git-Tutorial), up to the most recent commit to the master branch. We hope to add tutorial videos at some point in the future. This project is maintained by [Richard W. Evans](https://sites.google.com/site/rickecon/) and [Jason DeBacker](https://www.jasondebacker.com/).
3+
# <img src="https://raw.githubusercontent.com/PSLmodels/Git-Tutorial/master/book/_static/logo/jb_git_tutorial_logo.png" width=40 /> Git and GitHub Use, Collaboration, and Workflow
4+
This repository houses the source code and content files for the open access, *Git and GitHub Use, Collaboration, and Workflow* book tutorial and training used by many contributors in the [PSLmodels](https://github.com/PSLmodels) community. This project uses [Jupyter Book](https://jupyterbook.org/intro.html) to create the published HTML version of the tutorial. The source lives in this GitHub repository, and the compiled book is available at [https://pslmodels.github.io/Git-Tutorial](https://pslmodels.github.io/Git-Tutorial). This project is maintained by [Richard W. Evans](https://sites.google.com/site/rickecon/) and [Jason DeBacker](https://www.jasondebacker.com/).
55

66

77
## Contributing to the book
@@ -13,7 +13,7 @@ From your fork of this repository, you can generate your own version of the book
1313

1414
### Setting up the virtual environment
1515

16-
The virtual environment specifications are defined in the [`environment.yml`]() file. If you have not set up the conda environment, navigate to your `Git-Tutorial` repository folder in your terminal on your local machine and execute the following two commands. If you have already created the conda environment, then simply activate it using the second command below (skip the first command).
16+
The virtual environment specifications are defined in the [`environment.yml`](environment.yml) file. If you have not set up the conda environment, navigate to your `Git-Tutorial` repository folder in your terminal on your local machine and execute the following two commands. If you have already created the conda environment, then simply activate it using the second command below (skip the first command).
1717

1818
```bash
1919
conda env create -f environment.yml
@@ -45,4 +45,4 @@ jb clean --all ./book
4545

4646
## Notes
4747

48-
Put notes here.
48+
This repository is actively maintained and contributions are welcome. The most helpful contributions usually improve tutorial clarity, correct command examples, add beginner-friendly explanations, or expand the hands-on workflow chapters.
File renamed without changes.

book/content/glossary.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,19 @@ application programming interface
66
An application programming interface or API is the medium, method, and rules through which a user interacts with software. The API includes a medium which can be a {term}`command line interface` on a specific {term}`local` terminal or a {term}`graphical user interface`. The API also defines the commands through which a user interacts with the software.
77
88
benevolent dictator
9-
TODO: Make *benevolent dictator* entry...
9+
In open-source software, a benevolent dictator is an informal term for a person who has broad authority over the direction of a project and final say over which changes are accepted. In many modern projects, decision-making is shared across several maintainers rather than centered on one individual.
1010
1111
Bitbucket
1212
*Bitbucket* or [*Bitbucket.org*](https://bitbucket.org/) is a {term}`cloud` {term}`source code management service` platform designed to enable scalable, efficient, and secure version controlled collaboration by linking {term}`local` {term}`Git` version controlled software development by developers.
1313
1414
Bitkeeper
15-
TODO: Put Bitkeeper definition here...
15+
BitKeeper was a proprietary version control system that played an important role in the history of Linux kernel development and influenced the design of {term}`Git`.
1616
1717
Box, Inc.
18-
TODO: Box Inc. definition... University file sharing company...
18+
Box, Inc. is a cloud file storage and file sharing service used by many universities and businesses. It supports file synchronization and sharing, but it is not a full version control platform like GitHub.
1919
2020
branch
21-
TODO: define branch
21+
A branch is a named line of development in a Git repository. Branches allow a user to work on one set of changes independently from another set of changes.
2222
2323
centralized version control system
2424
A centralized version control system or CVCS is an approach to version control in which all the files in a {term}`repository` as well as the change history (content and timing) are located on a central {term}`remote` server. User's check out versions of files from the repository and check them back in, creating new change history on the central server.
@@ -30,22 +30,22 @@ cloud
3030
Cloud can be a descriptor or a noun. As a descriptor, cloud refers to computational resources, such as servers, that are accessed remotely via the internet. As a noun, remote computational resources and storage can be referred to generically as "the cloud".
3131
3232
command line interface
33-
TODO: A *command line interface* or CLI...
33+
A command line interface or CLI is a text-based way of interacting with software by typing commands into a terminal.
3434
3535
commit
36-
TODO: *Commit* can be a verb or a noun. Define commit...
36+
Commit can be a verb or a noun in Git. As a verb, to commit means to record a set of staged changes in the repository history. As a noun, a commit is that recorded snapshot together with its author, timestamp, and message.
3737
3838
continuous integration
39-
Continuous integration or continuous integration unit testing is...
39+
Continuous integration or CI is the practice of automatically running checks, such as tests, builds, or style validation, whenever changes are proposed or merged.
4040
4141
distributed version control system
4242
A *distributed version control system* or DVCS is {term}`version control system` software on any computer, {term}`local` or {term}`remote`, that tracks the entire history of changes to a {term}`repository` and coordinates and organizes collaboration among multiple users. It is distributed in the sense that multiple {term}`clone`s of a single {term}`remote` repository have the same full history of that repository.
4343
4444
Dropbox
45-
TODO: define Dropbox
45+
Dropbox is a cloud file storage and synchronization service. It is useful for sharing files, but it does not provide the same history, branching, and code review features as Git and GitHub.
4646
4747
fork
48-
TODO: define fork
48+
A fork is a copy of a remote repository created under a different GitHub account or organization. Forks are central to many open-source workflows because they let contributors propose changes without direct write access to the upstream repository.
4949
5050
Git
5151
*Git* is {term}`open source` {term}`version control system` software with capability designed to also operate as {term}`distributed version control system` (DVCS) software that resides on your local computer and tracks changes and the history of changes to all the files in a directory or {term}`repository`. See the Git website [https://git-scm.com/](https://git-scm.com/) and the [Git Wikipedia entry](https://en.wikipedia.org/wiki/Git) {cite}`GitWiki2020` for more information.
@@ -54,25 +54,25 @@ GitHub
5454
*GitHub* or [*GitHub.com*](https://github.com/) is a {term}`cloud` {term}`source code management service` platform designed to enable scalable, efficient, and secure version controlled collaboration by linking {term}`local` {term}`Git` version controlled software development by users. *GitHub*'s main business footprint is hosting a collection of millions of version controlled code repositories. In addition to being a platform for {term}`distributed version control system` (DVCS), *GitHub*'s primary features include code review, project management, {term}`continuous integration` {term}`unit testing`, {term}`GitHub actions`, and associated web page (GitHub pages) and documentation hosting and deployment.
5555
5656
GitHub actions
57-
GitHub actions
57+
GitHub Actions is GitHub's automation system for running workflows such as tests, builds, deployments, and repository maintenance tasks.
5858
5959
GitLab
60-
TODO: define *GitLab*...
60+
GitLab is a source code hosting and collaboration platform similar to GitHub. It supports Git repositories, issue tracking, merge requests, CI, and other project management features.
6161
6262
Google Docs
63-
TODO: define Google Docs
63+
Google Docs is a cloud-based collaborative word-processing application. It is useful for shared writing, but it is not a substitute for Git-based version control of code repositories.
6464
6565
Google Drive
66-
TODO: define Google Drive
66+
Google Drive is a cloud storage and file synchronization platform from Google. It can store and share project files, but it does not provide Git-style branching, merging, and commit history.
6767
6868
graphical user interface
69-
A graphical user interface or GUI...
69+
A graphical user interface or GUI is a visual way of interacting with software through windows, buttons, menus, icons, and other on-screen elements.
7070
7171
integrated development environment
72-
Integrated development environment or IDE is a software application that comsolidates many of the functions of software development under one program. IDE's often include a code editor, object memory and identification, debugger, and build automation tools. (See [IDE Wikipedia entry](https://en.wikipedia.org/wiki/Integrated_development_environment) {cite}`GitIDE2020`.)
72+
Integrated development environment or IDE is a software application that consolidates many of the functions of software development under one program. IDEs often include a code editor, object memory and identification, debugger, and build automation tools. (See [IDE Wikipedia entry](https://en.wikipedia.org/wiki/Integrated_development_environment) {cite}`GitIDE2020`.)
7373
7474
Linux
75-
TODO: write Linux description...
75+
Linux is a family of open-source operating systems whose development history is closely tied to the history of Git.
7676
7777
local
7878
*Local* is a descriptor that refers to files that reside or operations that are performed on a user's machine to which he or she has direct access without using the internet.
@@ -81,13 +81,13 @@ local version control system
8181
A *local version control system* or LVCS is the simplest and most common approach to VCS. LVCS stores all the changes to the files in a {term}`repository` locally on the user's machine as a series of changes or deltas in the files. This is the approach taken by Apple's Time Machine backup software as most software that includes an "undo" function.
8282
8383
merge
84-
TODO: create *merge* entry...
84+
Merge can be a verb or a noun. To merge is to combine changes from one branch into another branch. A merge may happen automatically or may require human conflict resolution.
8585
8686
open source
8787
*Open source* is a descriptor that is usually applied to software or computer code projects, but can also be applied to any project based upon or represented by digital files. An open source project is one in which the source code is freely available to be downloaded and used and in which collaboration, improvements, and changes to the code are encouraged. The free download and use (outward direction) aspect of *open source* is often emphasized. But the collaboration and improvement contribution (inward direction) aspect is at least as important. {term}`Git` and {term}`GitHub` have enabled efficient and scalable collaboration to a degree not seen in other collaborative workflows.
8888
8989
pull request
90-
TODO: define *pull request*...
90+
A pull request or PR is a GitHub request asking maintainers to review and merge a proposed set of changes from one branch into another branch.
9191
9292
remote
9393
*Remote* is a descriptor that refers to files that reside or operations that are carried out on a server to which a user has access using the internet.
@@ -99,7 +99,7 @@ source code management service
9999
A *source code management service* is a {term}`cloud` platform that hosts computer code files and provides either {term}`centralized version control system` (CVCS) or {term}`distributed version control system`. As the central hub of either CVCS or DVCS, the source code management service provides the platform and rules for distributed code collaboration. Leading examples are {term}`GitHub` and {term}`Bitbucket`.
100100
101101
unit testing
102-
Unit testing is...
102+
Unit testing is the practice of writing and running tests for small, individual parts of a code base to confirm that each part behaves as expected.
103103
104104
version control system
105105
*Version control system* or version control software or VCS is software that records changes to a set of files, including the order in which the changes were made and the content of those changes, in such a way that previous versions can be recalled or restored.

0 commit comments

Comments
 (0)