Skip to content

Commit

Permalink
Merge pull request #3 from manuGil/review
Browse files Browse the repository at this point in the history
Review Content and improve layout
  • Loading branch information
manuGil authored Aug 2, 2024
2 parents d617639 + fe7d903 commit a2a5c4b
Show file tree
Hide file tree
Showing 6 changed files with 147 additions and 125 deletions.
48 changes: 18 additions & 30 deletions gitcodev/curriculum.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,19 +28,16 @@ Knowledge and experience in using the command-line interface (CLI) with Unix She

This course is organised into lessons, episodes and topics. The course consists of **Lessons**. Each Lesson is divided into **Episodes** and then into **Topics**. The order in which lessons, episodes and topic is organised is the result of extensive discussions on the best way to deliver the course to an audience with little to intermediate previous experience and knowledge and the experience gathered from providing the course to two groups of mostly PhD candidates.

### Lesson 1: Fundamental Operations with Git
````{card} Lesson 1: Fundamental Operations with Git
**Learning Objectives:**
- Understand the basics of version control.
- Use Git to create repositories and commit changes.
- Apply Git operations to track, reverse and delete changes in working documents.
- Organise tracked changes in the Git history.
<details>
<summary>
<b>Topics:</b>
</summary>

```{dropdown} Topics
| Episode | Topic |
|:----|:----|
| **1.1** | **Git repositories for version control** |
Expand All @@ -58,9 +55,10 @@ This course is organised into lessons, episodes and topics. The course consists
| | Undoing changes with the history |
| | Marking the history using tags |
</details>
```
````

### Lesson 2: Branching and Remote Operations
````{card} Lesson 2: Branching and Remote Operations
**Learning Objectives:**
- Understand the concept of branches in Git repositories.
Expand All @@ -69,12 +67,7 @@ This course is organised into lessons, episodes and topics. The course consists
- Clone and push changes to remote Gir repositories.
- Synchronise changes between local and remote Git repositories.

<details>
<summary>
<b>Topics:</b>
</summary>

```{dropdown} Topics
| Episode | Topic |
|:----|:----|
| **2.1** | **Branching** |
Expand All @@ -86,10 +79,10 @@ This course is organised into lessons, episodes and topics. The course consists
| --- | Cloning and pushing to upstreams |
| --- | Syncing changes between repositories |
```
````

</details>

### Lesson 3: Collaborative Software Development
````{card} Lesson 3: Collaborative Software Development
**Learning Objectives:**
- Collaborate on software projects using one of the Git repository platforms such as GitHub.
Expand All @@ -99,11 +92,7 @@ This course is organised into lessons, episodes and topics. The course consists
- Understand the difference between centralised and shared collaborative workflow and when to use them.
- Contribute to open or close software projects using features such as issues, code changes, and pull/merge requests.
<details>
<summary>
<b>Topics:</b>
</summary>

```{dropdown} Topics
| Episode | Topic |
|:----|:----|
| **3.1** | **Collaborative Platforms** |
Expand All @@ -119,9 +108,11 @@ This course is organised into lessons, episodes and topics. The course consists
| --- | Pull requests
| --- | Shared workflow: forking
</details>
```
````


### Lesson 4: Managing Collaboration and Best Practices
````{card} Lesson 4: Managing Collaboration and Best Practices
**Learning Objectives:**
Expand All @@ -132,11 +123,7 @@ This course is organised into lessons, episodes and topics. The course consists
- Apply best practices when conducting code reviews.
- Describe best practices related to licensing, citation, semantic versioning, and releases or software.
<details>
<summary>
<b>Topics:</b>
</summary>

```{dropdown} Topics
| Episode | Topic |
|:----|:----|
| **4.1** | **Managing collaboration** |
Expand All @@ -149,4 +136,5 @@ This course is organised into lessons, episodes and topics. The course consists
| --- | Semantic versioning |
| --- | Softare Releases |
</details>
```
````
37 changes: 19 additions & 18 deletions gitcodev/exercises/L1-ex01.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,24 @@

Lesson 1 Episode 2 --- Tracking changes with the index
Please perform the following tasks alone
### Lesson 1 Episode 2 --- Tracking changes with the index
Please perform the following tasks alone

The current file lines.txt contains three lines
Revise in your terminal the commands we have used so far
The current file `lines.txt` contains three lines

1a. Append to the file a fourth line (in the same style as the previous lines)
1b. Check the new content of the file using...
1c. Check whether Git realises that a change has occurred using...
1d. Check which difference Git finds in the file using...
Take note of the output of the Git commands
1. Revise in your terminal the commands we have used so far
1. Append to the file a fourth line (in the same style as the previous lines)
2. Check the new content of the file using...
3. Check whether Git realises that a change has occurred using...
4. Check which difference Git finds in the file using...
Take note of the output of the Git commands

2a. Follow the action that Git suggests next by using...
2b. Same as 1b
2c. Same as 1c
2d. Same as 1d
Take note of how the outputs of Git commands have changed
2. Follow the action that Git suggests next by using...
1. Same as 1b
2. Same as 1c
3. Same as 1d

Formulate your own explanation of what you have observed
The following questions are two sides of the same coin:
What did you ask Git to do?
What did Git do for you?
Take note of how the outputs of Git commands have changed

Formulate your own explanation of what you have observed
The following questions are two sides of the same coin:
What did you ask Git to do?
What did Git do for you?
39 changes: 19 additions & 20 deletions gitcodev/exercises/L2-ex01.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,22 @@
Lesson 2 Episode 1 --- get familiar with branches
Please perform the following tasks individually
#### Lesson 2 Episode 1 --- get familiar with branches
Please perform the following tasks individually

1a. Revise the commands we have used so far
1b. Create at least three branches with any name you like, using...

2a. Rename them and switch between them at your pleasure, using...
2b. Check the status message and the history in each branch
you are in, using...
Take note of the output of the Git commands
1. Revise the commands we have used so far
2. Create at least three branches with any name you like, using...
3. Rename them and switch between them at your pleasure, using...
4. Check the status message and the history in each branch you are in, using...
**Take note of the output of the Git commands**

DO NOT change content and name of the file
DO NOT stage and commit changes
````{attention}
* DO NOT change content and name of the file
* DO NOT stage and commit changes
````
At the end:

At the end:
3a. If you have a banch `master`, rename it as `main`
3b. Return to the branch `main`
3c. Delete all other branches, using...

Formulate your explanation of what you have observed
The following questions are two sides of the same coin:
What did you ask Git to do?
What did Git do for you?
5. If you have a banch `master`, rename it as `main`
6. Return to the branch `main`
7. Delete all other branches, using...

Formulate your explanation of what you have observed. The following questions are two sides of the same coin:
* **What did you ask Git to do?**
* **What did Git do for you?**
102 changes: 68 additions & 34 deletions gitcodev/lesson2.md
Original file line number Diff line number Diff line change
@@ -1,57 +1,91 @@
# LESSON 2: Branching and remote operations

The original list of commands has been edited and decorated with headings corresponding to the [lessons in the curriculum](curriculum.md#course-units) more clearly.
Some commands have been either removed or relocated or added for clarity and help self-study after the class.
This is a summary of the lecture notes for this lesson
The original list of commands has been edited and decorated with headings corresponding to the [lessons in the curriculum](course-units) more clearly.
Some commands have been either removed or relocated or added for clarity and help self-study after the lesson.
Accidental errors have been removed, but intended errors have been kept.

The comments after each line are annotations on whether a command/option appears for the first time (**new**) or is a **known action**.
Else, the annotation recalls why we typed that certain command, for example to **observe** the state of the play (typically before a certain change) or to **verify** the results of a change.
**routine** commands are the typical commit ssequence learned in Lesson 1.
**routine** commands are the typical commit sequence learned in Lesson 1.

The original list of commands is available at this commit [as displayed by GitHub](https://github.com/4TUResearchData-Carpentries/workshop_notes/blob/056617efa8abb7d79ffb3e85b3ac8dbbcaed50e6/Lesson2.md).



````{note}
The list of commands below has been grouped arbitrarily for readability's sake.
````

## Episode 1: Branching

### 2.1.1 Create, rename, change and delete branches

git branch # new command
git branch B1 # new argument
git branch # verify
git status # verify
cat Lines.txt # verify
git branch -m B1 B2 # new short option
git log --oneline # verify
git branch -d B2 # new short option
git log --oneline # verify
git branch -m master foo # known action
git log --oneline # verify
git branch -d foo # known action (fails)
git branch -m foo main # known action
git branch # verify
git status # verify
git log --oneline # verify
git branch B1 # known action
git branch # verify
git log --oneline # verify
git switch # new commmand (fails)
git switch B1 # new argument: on branch B1
git log --oneline # verify
git branch B2 # known action
git log --oneline # verify
git switch B2 # known action: on branch B2
git log --oneline # verify
git switch main # known action: on branch main
git log --oneline # verify
```shell
git branch # new command
git branch B1 # new argument
git branch # verify
git status # verify
cat Lines.txt # verify
```
```shell
git branch -m B1 B2 # new short option
git log --oneline # verify
git branch -d B2 # new short option
git log --oneline # verify
git branch -m master foo # known action
```
```shell
git log --oneline # verify
git branch -d foo # known action (fails)
git branch -m foo main # known action
git branch # verify
```
```shell
git status # verify
git log --oneline # verify
git branch B1 # known action
git branch # verify
git log --oneline # verify
```
```shell
git switch # new commmand (fails)
git switch B1 # new argument: on branch B1
git log --oneline # verify
git branch B2 # known action
git log --oneline # verify
```
```shell
git switch B2 # known action: on branch B2
git log --oneline # verify
git switch main # known action: on branch main
git log --oneline # verify
```

**[exercise 1](./exercises/L2-ex01) begins**


````{card}
Exercise --- Get familiar with branches
^^^
```{include} exercises/L2-ex01.md
```
```{dropdown} Answers
[Need to be completed]
```shell
(your work)
git branch # verify
git branch -d B1 B2 # known action
git branch # verify
git log --oneline # verify
cat Lines.txt # verify
**exercise 1 ends**
```
```
````


### 2.1.2 Develop and compare branches

Expand Down
13 changes: 5 additions & 8 deletions gitcodev/schedule.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
# Schedule

The course consist of four lessons, and in our experience a lesson per day seems a good way to deliver the content. Our experience has shown that four consecutive days seems to be prefered by participants. However, adaptig the schedule to different audiences is a very reasonable approach.
The course consists of four lessons, and a lesson per day is a good way to deliver the content. Our experience has shown that participants prefer four consecutive days. However, adapting the schedule to different audiences is a very reasonable approach.

## Lessons

Lessons are organized in such a way that participants are gradually introduced to the content. The conent of subsequent lessons depend on the content of previous lessons; therefore we discourage to change of the lesson. Refere to [our teaching approach](teaching.md) to know why the order of the lessons matter in this course.
Lessons are organized so that participants are gradually introduced to the content. The content of subsequent lessons depends on previous lessons; therefore, we discourage the change of the lesson. Refer to [our teaching approach](teaching-approach) to learn why the order of the lessons matters in this course.

| Lessons | Day |
|:--------------|:---------|
Expand All @@ -14,10 +12,9 @@ Lessons are organized in such a way that participants are gradually introduced t
| Lesson 4 | Day 4 |

## Sessions

Each lesson has been designed to be delivered in sessions of four and a half hours.
The content of each lesson has been optimized to be delivered in a way that the congnitive overload on
the participants is reduced. We recommend to delive each lesson following the following timetable.
Each lesson has been designed to be delivered in four and a half-hour sessions.
The content of each lesson has been optimized to provide the lesson in a way that reduces the cognitive overload of
the participants. We recommend delivering each lesson following the following timetable.


| 00:00 | 01:00 | 01:10 | 02:00 | 02:20 | 03:10 | 03:20 | 04:10 | 04:30 |
Expand Down
Loading

0 comments on commit a2a5c4b

Please sign in to comment.