diff --git a/README.md b/README.md index 0c7f124..3a45317 100644 --- a/README.md +++ b/README.md @@ -224,6 +224,9 @@ Use text styling consistently throughout the document as follows: - The first use of a new term. - `"..."` (quotations) - GitHub / VSCode / Linux UI elements (buttons / menus / text in output / etc) +- Git vs `git` + - Use `git` only when writing a command (e.g. `git status`). + - Use Git in all other instances. #### Escaping Characters diff --git a/source/ch-communities-and-collaboration/ch-communities-and-collaboration.ptx b/source/ch-communities-and-collaboration/ch-communities-and-collaboration.ptx index 8b1f59e..4030121 100644 --- a/source/ch-communities-and-collaboration/ch-communities-and-collaboration.ptx +++ b/source/ch-communities-and-collaboration/ch-communities-and-collaboration.ptx @@ -8,11 +8,11 @@

- The exercises in this chapter focus on FOSS communities. They explore what they are, how they are organized, the principles on which they operate and the roles that the community members take on. They also begin to look at some of the tools and processes that these communities use to support those principles and coordinate their work. You will see how git and GitHub work together to allow FOSS communities to share their work and to collaborate. In particular, you will create a fork and clone, and see how they make it possible for a diverse and distributed group of contributors to work asynchronously and to contribute useful changes back to the upstream. + The exercises in this chapter focus on FOSS communities. They explore what they are, how they are organized, the principles on which they operate and the roles that the community members take on. They also begin to look at some of the tools and processes that these communities use to support those principles and coordinate their work. You will see how Git and GitHub work together to allow FOSS communities to share their work and to collaborate. In particular, you will create a fork and clone, and see how they make it possible for a diverse and distributed group of contributors to work asynchronously and to contribute useful changes back to the upstream.

- In this and the next several chapters you will use a copy of the FarmData2 project repository to gain hands-on experience using use git and GitHub. This experience will strengthen your understanding of git, GitHub and FOSS communities. + In this and the next several chapters you will use a copy of the FarmData2 project repository to gain hands-on experience using use Git and GitHub. This experience will strengthen your understanding of Git, GitHub and FOSS communities.

diff --git a/source/ch-communities-and-collaboration/sec-cloning-your-origin.ptx b/source/ch-communities-and-collaboration/sec-cloning-your-origin.ptx index cb12f5e..3aafa73 100644 --- a/source/ch-communities-and-collaboration/sec-cloning-your-origin.ptx +++ b/source/ch-communities-and-collaboration/sec-cloning-your-origin.ptx @@ -421,11 +421,11 @@

- The command git remote on its own will show you the names of the remotes that git knows about, but not their URLS. + The command git remote on its own will show you the names of the remotes that Git knows about, but not their URLS.

- If you want to have git display the URLs of the remotes as well, you will need to add the -v or --verbose flag: git remote -v + If you want to have Git display the URLs of the remotes as well, you will need to add the -v or --verbose flag: git remote -v

@@ -433,7 +433,7 @@

- Which command will show you the URL(s) of the remote(s) that git knows about? + Which command will show you the URL(s) of the remote(s) that Git knows about?

@@ -490,7 +490,7 @@

- git url is not a git command. + git url is not a Git command.

diff --git a/source/ch-communities-and-collaboration/sec-development-environment.ptx b/source/ch-communities-and-collaboration/sec-development-environment.ptx index 9b8a377..5a483b1 100644 --- a/source/ch-communities-and-collaboration/sec-development-environment.ptx +++ b/source/ch-communities-and-collaboration/sec-development-environment.ptx @@ -422,7 +422,7 @@

The git config --global user.name "<name>" command sets the name that Git will associate with your changes. - Throughout this book, < > will be used to indicate a part of a git command that you must enter. + Throughout this book, < > will be used to indicate a part of a Git command that you must enter. For example, if you want your name to appear as Jane D. the command would be git config --global user.name "Jane D.".

@@ -438,7 +438,7 @@

- This command will set the name associated with your changes in git. + This command will set the name associated with your changes in Git.

@@ -483,7 +483,7 @@

- This command will set the email associated with your changes in git. + This command will set the email associated with your changes in Git.

diff --git a/source/ch-communities-and-collaboration/sec-extra-practice.ptx b/source/ch-communities-and-collaboration/sec-extra-practice.ptx index 6a843bd..1a77c89 100644 --- a/source/ch-communities-and-collaboration/sec-extra-practice.ptx +++ b/source/ch-communities-and-collaboration/sec-extra-practice.ptx @@ -166,7 +166,7 @@

- The origin URL should be the one from your git clone command. + The origin URL should be the one from your Git clone command.

diff --git a/source/ch-communities-and-collaboration/sec-farmdata2.ptx b/source/ch-communities-and-collaboration/sec-farmdata2.ptx index 48bbc16..d958896 100644 --- a/source/ch-communities-and-collaboration/sec-farmdata2.ptx +++ b/source/ch-communities-and-collaboration/sec-farmdata2.ptx @@ -6,7 +6,7 @@

Git and GitHub were designed to support the collaborative work of the FOSS communities that you learned about in class and in . - In this section you'll learn a little about the FarmData2 project that GitKit as the basis for the activities you'll be completing as you learn the basics of git and GitHub. + In this section you'll learn a little about the FarmData2 project that GitKit as the basis for the activities you'll be completing as you learn the basics of Git and GitHub.

diff --git a/source/ch-communities-and-collaboration/sec-git-command-summary.ptx b/source/ch-communities-and-collaboration/sec-git-command-summary.ptx index 79140ef..b7f4955 100644 --- a/source/ch-communities-and-collaboration/sec-git-command-summary.ptx +++ b/source/ch-communities-and-collaboration/sec-git-command-summary.ptx @@ -13,14 +13,13 @@
- - <exercise xml:id="ex-git-commands-summary-communities" - label="ex-git-commands-summary-communities"> - <statement> - <p> - Match the tasks on the right with the appropriate git command listed on the left. - </p> - </statement> + <title /> + <exercise xml:id="ex-git-commands-summary-communities" label="ex-git-commands-summary-communities"> + <statement> + <p> + Match the tasks on the right with the appropriate Git command listed on the left. + </p> + </statement> <cardsort> <match> diff --git a/source/ch-instructor-guide/sec-instructor-communities.ptx b/source/ch-instructor-guide/sec-instructor-communities.ptx index 8827b16..bffb1b6 100644 --- a/source/ch-instructor-guide/sec-instructor-communities.ptx +++ b/source/ch-instructor-guide/sec-instructor-communities.ptx @@ -125,16 +125,16 @@ <li> <title>Slides 6-8

- Version control and repository hosting are defined as collaboration tools and a distinction is drawn between them. A number of different examples of each, e.g. svn/mercurial for version control and GitLab/SourceForge for repository hosting, are mentioned for breadth. This can also help to emphasize that while the GitKit focuses on git and GitHub, that the concepts being covered apply to a broad range of similar tools. While the distinction between version control and repository hosting is a useful one, it is far less clear in practice and this can cause confusion for some students - particularly those with prior git/GitHub experience. For example, most repository hosting services provide access to some aspects of the underlying version control tools for the repositories that they host (e.g. it is possible to create branches and commit changes via the GitHub user interface). + Version control and repository hosting are defined as collaboration tools and a distinction is drawn between them. A number of different examples of each, e.g. svn/mercurial for version control and GitLab/SourceForge for repository hosting, are mentioned for breadth. This can also help to emphasize that while the GitKit focuses on Git and GitHub, that the concepts being covered apply to a broad range of similar tools. While the distinction between version control and repository hosting is a useful one, it is far less clear in practice and this can cause confusion for some students - particularly those with prior Git/GitHub experience. For example, most repository hosting services provide access to some aspects of the underlying version control tools for the repositories that they host (e.g. it is possible to create branches and commit changes via the GitHub user interface).

  • Slides 10-15

    - The GitKit uses sequences of diagrams to visualize key concepts and processes related to the use of git and GitHub and the forking workflow. Diagrams in the same style are used throughout all of the GitKit topics. A key to success with the GitKit, for both faculty and students, is understanding these diagrams and being able to connect what they depict to the git/GitHub commands used in the forking workflow. + The GitKit uses sequences of diagrams to visualize key concepts and processes related to the use of Git and GitHub and the forking workflow. Diagrams in the same style are used throughout all of the GitKit topics. A key to success with the GitKit, for both faculty and students, is understanding these diagrams and being able to connect what they depict to the Git/GitHub commands used in the forking workflow.

    - The first series of diagrams show the relationship between the three copies of a FOSS project's repository that a developer interacts with (upstream, origin and local). They also illustrate the connection between these three copies and the git and GitHub commands that create them (fork and clone). A distinction is also made between remote copies of the repository, those residing in the cloud (the upstream and origin), and the local copy that resides in the student's development environment. Note, that when using a KitClient the development environment is running via GitHub Codespaces and not on the student's physical machine. This can be a source of confusion and it is worth spending some time clarifying this relationship. + The first series of diagrams show the relationship between the three copies of a FOSS project's repository that a developer interacts with (upstream, origin and local). They also illustrate the connection between these three copies and the Git and GitHub commands that create them (fork and clone). A distinction is also made between remote copies of the repository, those residing in the cloud (the upstream and origin), and the local copy that resides in the student's development environment. Note, that when using a KitClient the development environment is running via GitHub Codespaces and not on the student's physical machine. This can be a source of confusion and it is worth spending some time clarifying this relationship.

    The hands-on activities provide detailed instructions for creating a fork in GitHub, starting the KitClient and creating a local clone. However, if time allows it may be also be helpful to demonstrate these actions in class. @@ -143,7 +143,7 @@

  • Slides 17-20

    - A second series of diagrams introduce a basic FOSS workflow that illustrates how upstreaming works. Note that this is not the full forking workflow, as it does not include the use of feature branches and ignores the details of staging and committing changes. The primary purpose of this sequence of diagrams is to illustrate how the concept of upstreaming from the Cookie video is implemented using git/GitHub. Additional details of the forking workflow (branch, edit, stage, commit) are added in the second topic and revisited in the third topic. + A second series of diagrams introduce a basic FOSS workflow that illustrates how upstreaming works. Note that this is not the full forking workflow, as it does not include the use of feature branches and ignores the details of staging and committing changes. The primary purpose of this sequence of diagrams is to illustrate how the concept of upstreaming from the Cookie video is implemented using Git/GitHub. Additional details of the forking workflow (branch, edit, stage, commit) are added in the second topic and revisited in the third topic.

  • diff --git a/source/ch-instructor-guide/sec-instructor-merge-conflicts.ptx b/source/ch-instructor-guide/sec-instructor-merge-conflicts.ptx index a038811..39d8cc7 100644 --- a/source/ch-instructor-guide/sec-instructor-merge-conflicts.ptx +++ b/source/ch-instructor-guide/sec-instructor-merge-conflicts.ptx @@ -10,7 +10,7 @@ At the start of this chapter students will have made pull requests for the "Round 2" issues. Initially GitHub will report that these PRs can be merged automatically. However, the instructor will begin this topic by introducing changes to the upstream main that create merge conflicts with the fixes to each of the "Round 2" issues. Students will then observe that their PRs go from being able to be merged automatically to containing conflicts.

    - This chapter then focuses on the resolution of merge conflicts. The concepts of merge commits, common ancestors, best common ancestor, and non-conflicting and conflicting changes are introduced. The topic then covers the process of merging main into a feature branch, git's raw conflict information and the use of a basic merge tool. The hands-on activity concludes with the students having resolved the merge conflict in their "Round 2" pull request. Note that these PRs are never merged into the upstream as part of the GitKit activities. + This chapter then focuses on the resolution of merge conflicts. The concepts of merge commits, common ancestors, best common ancestor, and non-conflicting and conflicting changes are introduced. The topic then covers the process of merging main into a feature branch, Git's raw conflict information and the use of a basic merge tool. The hands-on activity concludes with the students having resolved the merge conflict in their "Round 2" pull request. Note that these PRs are never merged into the upstream as part of the GitKit activities.

    The exercises in this chapter have the students perform the following major tasks: @@ -89,7 +89,7 @@ Uses a text based example to introduce the concepts of common ancestors and best common ancestor, and then uses those to identify conflicting changes and non-conflicting changes. One way to identify these changes is first to compare the feature branch to the best common ancestor and highlight all changes in the feature branch. Then repeat, but compare the main branch to the best common ancestor and highlight all differences in the main branch. Then any lines that are highlighted in both the feature branch and the main branch are conflicting changes. All other highlighted lines are non-conflicting changes.

    - Note that in these examples the identification of conflicting changes is simplified to be line based. That is, if a change is found, the entire line is marked as containing a change. Similarly, if a line is changed in both the feature branch and the main branch, the entire line is marked as a conflict. The algorithm used by git is more complex than this simplified approach, but the concept is sufficiently the same for the purposes of these activities. + Note that in these examples the identification of conflicting changes is simplified to be line based. That is, if a change is found, the entire line is marked as containing a change. Similarly, if a line is changed in both the feature branch and the main branch, the entire line is marked as a conflict. The algorithm used by Git is more complex than this simplified approach, but the concept is sufficiently the same for the purposes of these activities.

  • @@ -132,7 +132,7 @@ Slide 20

    - Shows the raw merge conflict information that is produced by git when a merge creates a conflict. This information can be edited manually in any text editor. However, it is often difficult to identify exactly what changes exist. This is good motivation for the use of a graphical merge tool that makes it easier to see what changes have been made and where the conflicts exist. + Shows the raw merge conflict information that is produced by Git when a merge creates a conflict. This information can be edited manually in any text editor. However, it is often difficult to identify exactly what changes exist. This is good motivation for the use of a graphical merge tool that makes it easier to see what changes have been made and where the conflicts exist.

  • diff --git a/source/ch-instructor-guide/sec-instructor-upstreaming.ptx b/source/ch-instructor-guide/sec-instructor-upstreaming.ptx index 1a0ad47..059d96c 100644 --- a/source/ch-instructor-guide/sec-instructor-upstreaming.ptx +++ b/source/ch-instructor-guide/sec-instructor-upstreaming.ptx @@ -59,7 +59,7 @@
  • Slide 2

    - Reviews the main git/GitHub concepts and vocabulary from Chapter 2. The terms upstream repository, origin repository, local repository, local, remote, fork, and clone should be reviewed so that they begin to be part of the student's working vocabulary. + Reviews the main Git/GitHub concepts and vocabulary from Chapter 2. The terms upstream repository, origin repository, local repository, local, remote, fork, and clone should be reviewed so that they begin to be part of the student's working vocabulary.

  • @@ -73,7 +73,7 @@

    Introduces branches and commits. In the diagrams on these slides, and throughout the remainder of the GitKit, different colors are used as the unique identifier for each commit (e.g. we can talk about the "red" or the "yellow" commit). - This slide introduces a conceptual simplification to think of a commit as a complete "snapshot" of all files in the project repository at that point in time, along with some meta data. Depending on the level of the course being taught, it may be worth a moment here to to explore the idea that storing a complete copy of the files for each commit would be very inefficient and discuss that it does not work that way in practice. Git commits do not actually contain full copies of every file in the repo. Instead, for each file that is changed by the commit, the "snapshot" contains a full (compressed) copy of the file. For each file that is not changed by the commit, the "snapshot" contains only a link (like a shortcut) to that file. This link points to the file in the most recent commit in which it was changed. Depending on the level of the course being taught, this can also provide an opportunity to distinguish git from other delta-based version control systems (cvs, svn) where commits record changes to files rather than complete copies of the changed files. + This slide introduces a conceptual simplification to think of a commit as a complete "snapshot" of all files in the project repository at that point in time, along with some meta data. Depending on the level of the course being taught, it may be worth a moment here to to explore the idea that storing a complete copy of the files for each commit would be very inefficient and discuss that it does not work that way in practice. Git commits do not actually contain full copies of every file in the repo. Instead, for each file that is changed by the commit, the "snapshot" contains a full (compressed) copy of the file. For each file that is not changed by the commit, the "snapshot" contains only a link (like a shortcut) to that file. This link points to the file in the most recent commit in which it was changed. Depending on the level of the course being taught, this can also provide an opportunity to distinguish Git from other delta-based version control systems (cvs, svn) where commits record changes to files rather than complete copies of the changed files.

  • @@ -85,7 +85,7 @@
  • Slides 6-7

    - The diagrams used by the GitKit to illustrate git and GitHub concepts are extended to include branches and commits. The convention of using colors as the unique identifier for each commit is also used in these diagrams. In doing so, it is important to emphasize the distinction between the final commit in the active branch and the local files. Before any changes are made, the local files can be thought of as a copy of the final commit in the active branch. This is illustrated by initially having the "dot" in the local files be green, the same color as the final commit in the main branch. + The diagrams used by the GitKit to illustrate Git and GitHub concepts are extended to include branches and commits. The convention of using colors as the unique identifier for each commit is also used in these diagrams. In doing so, it is important to emphasize the distinction between the final commit in the active branch and the local files. Before any changes are made, the local files can be thought of as a copy of the final commit in the active branch. This is illustrated by initially having the "dot" in the local files be green, the same color as the final commit in the main branch.

  • diff --git a/source/ch-merge-conflicts/sec-git-command-summary.ptx b/source/ch-merge-conflicts/sec-git-command-summary.ptx index 74d7edb..4d1b319 100644 --- a/source/ch-merge-conflicts/sec-git-command-summary.ptx +++ b/source/ch-merge-conflicts/sec-git-command-summary.ptx @@ -17,7 +17,7 @@

    - Match the tasks on the right with the appropriate git command listed on the left. The <...> notation indicates parameters that are needed to customize each use. + Match the tasks on the right with the appropriate Git command listed on the left. The <...> notation indicates parameters that are needed to customize each use.

    diff --git a/source/ch-merge-conflicts/sec-resolving-a-merge-conflict.ptx b/source/ch-merge-conflicts/sec-resolving-a-merge-conflict.ptx index 948da1f..a7e64d9 100644 --- a/source/ch-merge-conflicts/sec-resolving-a-merge-conflict.ptx +++ b/source/ch-merge-conflicts/sec-resolving-a-merge-conflict.ptx @@ -436,7 +436,7 @@

    - git undo is not a git command + git undo is not a Git command

    diff --git a/source/ch-staying-synchronized/sec-gitkit-feedback.ptx b/source/ch-staying-synchronized/sec-gitkit-feedback.ptx index b828154..aeeee14 100644 --- a/source/ch-staying-synchronized/sec-gitkit-feedback.ptx +++ b/source/ch-staying-synchronized/sec-gitkit-feedback.ptx @@ -195,7 +195,7 @@

    - Examples of the git commands in addition to the syntax would help me understand what I should be typing. + Examples of the Git commands in addition to the syntax would help me understand what I should be typing.

    diff --git a/source/ch-staying-synchronized/sec-verifying-the-upstream-remote.ptx b/source/ch-staying-synchronized/sec-verifying-the-upstream-remote.ptx index be86e4b..3c7761b 100644 --- a/source/ch-staying-synchronized/sec-verifying-the-upstream-remote.ptx +++ b/source/ch-staying-synchronized/sec-verifying-the-upstream-remote.ptx @@ -292,7 +292,7 @@

    - The arrow on the left represents a git remote associated with your local repository, but it is not the upstream. + The arrow on the left represents a Git remote associated with your local repository, but it is not the upstream.

    diff --git a/source/ch-upstreaming-changes/sec-editing-local-files.ptx b/source/ch-upstreaming-changes/sec-editing-local-files.ptx index 63e6cce..b3c0c49 100644 --- a/source/ch-upstreaming-changes/sec-editing-local-files.ptx +++ b/source/ch-upstreaming-changes/sec-editing-local-files.ptx @@ -363,7 +363,7 @@

    - Strike-through is not part of the feedback git commands can provide. + Strike-through is not part of the feedback Git commands can provide.

    diff --git a/source/ch-upstreaming-changes/sec-exploring-your-local-repository.ptx b/source/ch-upstreaming-changes/sec-exploring-your-local-repository.ptx index e1e7311..1393f9c 100644 --- a/source/ch-upstreaming-changes/sec-exploring-your-local-repository.ptx +++ b/source/ch-upstreaming-changes/sec-exploring-your-local-repository.ptx @@ -572,7 +572,7 @@

    - The branch name is not displayed in the output from this git command. + The branch name is not displayed in the output from this Git command.

    diff --git a/source/ch-upstreaming-changes/sec-gitkit-feedback.ptx b/source/ch-upstreaming-changes/sec-gitkit-feedback.ptx index 12c4252..e646f01 100644 --- a/source/ch-upstreaming-changes/sec-gitkit-feedback.ptx +++ b/source/ch-upstreaming-changes/sec-gitkit-feedback.ptx @@ -249,7 +249,7 @@

    - Examples of the git commands in addition to the syntax would help me understand what I should be typing. + Examples of the Git commands in addition to the syntax would help me understand what I should be typing.

    diff --git a/source/ch-upstreaming-changes/sec-staging-changes.ptx b/source/ch-upstreaming-changes/sec-staging-changes.ptx index 3880637..f7246f2 100644 --- a/source/ch-upstreaming-changes/sec-staging-changes.ptx +++ b/source/ch-upstreaming-changes/sec-staging-changes.ptx @@ -319,7 +319,7 @@

    - Note that git also has a git add command that is equivalent to git stage. + Note that Git also has a git add command that is equivalent to git stage. So, you can add files to the stage using either git stage or git add. These activities will use git stage because it seems more descriptive of what is happening. However, you are likely to see git add used in other resources, so it is worth knowing that they are equivalent. diff --git a/source/docinfo.ptx b/source/docinfo.ptx index 77522ed..510931d 100644 --- a/source/docinfo.ptx +++ b/source/docinfo.ptx @@ -7,7 +7,7 @@ gitkit2ed - A hands-on introduction to Open Source collaboration using a git/gitHub forking workflow. + A hands-on introduction to Open Source collaboration using Git/GitHub forking workflow. diff --git a/source/frontmatter.ptx b/source/frontmatter.ptx index 2f4da7e..486d259 100644 --- a/source/frontmatter.ptx +++ b/source/frontmatter.ptx @@ -53,11 +53,11 @@ Overview

    - The GitKit introduces students to fundamental git and GitHub skills and concepts and the forking workflow within the context of an authentic Free and Open Source Software (FOSS) project. + The GitKit introduces students to fundamental Git and GitHub skills and concepts and the forking workflow within the context of an authentic Free and Open Source Software (FOSS) project.

    - The GitKit is designed to be used as a module within a course where students are first introduced to git and GitHub, but has been adapted for use in other settings. A nominal use of the GitKit requires four 75-minute class periods where the instructor introduces each chapter and four 2-3 hour homework assignments where concepts are reinforced and students gain hands-on experience. + The GitKit is designed to be used as a module within a course where students are first introduced to Git and GitHub, but has been adapted for use in other settings. A nominal use of the GitKit requires four 75-minute class periods where the instructor introduces each chapter and four 2-3 hour homework assignments where concepts are reinforced and students gain hands-on experience.

    @@ -75,7 +75,7 @@

  • - Chapters that guide students through exercises that reinforce concepts from class and give them hands-on experience with git and GitHub. + Chapters that guide students through exercises that reinforce concepts from class and give them hands-on experience with Git and GitHub.

  • diff --git a/source/main.ptx b/source/main.ptx index f51eebd..c9975c2 100644 --- a/source/main.ptx +++ b/source/main.ptx @@ -6,7 +6,7 @@ GitKit (2nd ed.) - Learn git and GitHub in Context + Learn Git and GitHub in Context