---
# System prepended metadata

title: COMP0233 - Day 2 (13th October 2022)
tags: [teaching, class, COMP0233]

---

# COMP0233 - Day 2 (13th October 2022)

:::info
## :tada: Welcome to the second day!

### Today
Today we will
- How to collaborate to the same repository
- Learn about problems you may face using git
- Explore the parallel universes functionality
- Contribute to repositories that you don't have permissions to
:::

:::danger
Remember to `rename` yourself by clicking on your zoom name (in the participants list) and change it to:
`SXXX` where XXX is the room number (105, 121 or 406) or 000 for the online attendees.

If you disconnect and connect again, please rename yourself again.
:::

### Review from last week 

- Why using version control
- How to create a git repository locally
- How to revert commits


#### What was discussed during the week :newspaper: 

- groups and timetabling: Class every week for everyone.
- `git init` on a home or desktop directory
- [SSH keys](/FMnWK53aRz6BcFA3DOR7ZA) (cloning using https or ssh)
- Conflicts - we will learn how to solve them today!
:::spoiler Whatsapp and WeChat group

https://chat.whatsapp.com/FZjR4dzAL4D5xVOdENqCJR

![](https://i.imgur.com/ud9pCAJ.jpg)
::: 

:::warning
Avoid sharing code through it. Use github or something more code-friendly!
:::


### Uploading last week repository into github

- log in to [github][gh]
- click create a [new repository][gh-new]
- make the repository name `family_recipes`
- don't tick any of the options boxes
- click the create repository button
- copy the github url (make sure you are using the ssh option)
- add the github url as the remote and push local changes to github

```
git remote add origin <github url>
git branch -M main
git push -u origin main
```
:::spoiler Have you missed last week?
Import the family recipes repository under your user name following these steps:
1. Go to the [import repository page on github](https://github.com/new/import)
2. add the repo url: `3. https://github.com/arc-teaching/family_reci`es
4. add the repo name under your user-name: family_recipes
5. press <kbd>Begin Import</kbd>
![How to import a project](https://i.imgur.com/fCbQppi.png)

5. Go to the page of the new imported repository `https://github.com/YOURUSERNAME/family_recipes`
6. Clone that repository locally using ssh:
   ```bash
    cd Desktop
    git clone git@github.com:YOURUSERNAME/family_recipes
    ```
:::

### Groups :handshake: 

We will be working in pairs, in class with the person next to you, in zoom via breaking rooms.

:::warning
- :question: What is one simple thing you do (or you are planning to do) to fight climate change and help saving our :earth_asia::earth_africa::earth_americas: ? 
  **Write** [your topic on mentimeter](https://www.menti.com/aljws4y6srpr) and describe it shortly whitin your group.
  
- :exclamation: Decide who will be :A:nne and who :B:ernie
  :B:ernie **writes** their github name and family_recipes repository invite link on the [List of gh usernames](/UeSsz1LUTLSaQlCyO_QYzQ), :A:nn **adds** their gh name at the end of that line.
:::


### More than one file

1. create a base for pizza, and
1. update the index.
1. commit two files to the repository

### Collaboration

Look at your lists.
| person :A: | person :B: |
| ------------ | -----------  |
| write your GH username after your name | |
| | Add GH user name from :A: as collaborator |
| | Give to person :A: a link to the invitation |
| Accept invitation of :B: | |
| Go to your desktop and clone the repository of :B: with `git clone <url> <nameB>_recipes`| |
| Add a new file to :B: repository and push ||
| | Pull the changes produced by :A:|
| :heavy_check_mark:  | :heavy_check_mark: |



### Problems when collaborating :left_right_arrow: 

| person :A: | person :B: |
| ------------ | -----------  |
| Change `family` for `clan` | Change `secret` for `mysterious` |
| Commit and push | Commit and push |
| | Got an error | 

:::info
:cloud: Question (mentimeter): Why did :B: get an error trying to push?
:link::arrow_right: [Describe it in one or two words](https://www.menti.com/aljws4y6srpr)
:::

### Forks :trident: 

Adding collaborators is not a scalable solution.
Forks provide an easier way to contribute

:::info
Let's fork the repository for classwork of the course
[`RSE-Classwork`](https://github.com/UCL-COMP0233-22-23/RSE-Classwork/)
[:hash::one:](https://github.com/UCL-COMP0233-22-23/RSE-Classwork/issues/1)
:::

### Branch :twisted_rightwards_arrows: 

[Simulator](http://git-school.github.io/visualizing-git/)

:::spoiler Commands for the simulator
|action| new git | old git | 
|--- | --- | ---|
|Create a branch and jump to it |`git switch -c <branchname>`| `git checkout -b <branchname>`|
|Jump to an existing branch | `git switch <branchname>` | `git checkout <branchname>`|
:::

:::info
[`RSE-Classwork`](https://github.com/UCL-COMP0233-22-23/RSE-Classwork)
[:hash::two:](https://github.com/UCL-COMP0233-22-23/RSE-Classwork/issues/2)
:::



### Conflicts :dizzy_face: 

Now that we know about branches... let's create a conflict using them.
How we can solve conflicts? Try it first

:::info
[`RSE-classwork`](https://github.com/UCL-COMP0233-22-23/RSE-Classwork/)
[:hash::three:](https://github.com/UCL-COMP0233-22-23/RSE-Classwork/issues/3)
:::

### Stashing :card_file_box: 

Why do we need it?

### Pull Request ⛙

:::info
[`RSE-classwork`](https://github.com/UCL-COMP0233-22-23/RSE-Classwork)
[:hash::four:](https://github.com/UCL-COMP0233-22-23/RSE-Classwork/issues/4)
:::


### Extra resources
- [Git and Github crash course](https://www.youtube.com/watch?v=RGOj5yH7evk) - FreeCodeCamp.org 1h video about everything we've seen.

# What you need to do next
## :one: Finish the exercises
## :two: Early module feedback questionnaire

[Moodle :eyes: ](https://moodle.ucl.ac.uk/mod/questionnaire/view.php?id=4462915)
## :three: Getting ready for next week
Next week we start with Python
- Read the material, 
- Solve some quizzes in moodle, and
- participate in some discussions

## Office hours

- [Let us know your preferred times](https://moodle.ucl.ac.uk/mod/questionnaire/view.php?id=4462879), and
- [Book a slot](https://moodle.ucl.ac.uk/mod/url/view.php?id=2572664)

# Questions

:::info
Feel free to add any question below. Remember the syntax:
```
- Example question
  - [name=student_a] Example answer
  - [name=TA_1] Example answer
```
:::

- .
  - [name=...]
- .
  - [name=...]
- .
  - [name=...]



###### tags: `COMP0233` `teaching` `class`

[gh]: https://github.com/
[gh-account]: https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F&source=header-home
[gh-new]: https://github.com/new
