Feat: Created slides for git

This commit is contained in:
Prabuddha Hans 2025-09-22 12:45:03 +01:00
parent a4213f2d3a
commit 951f34afdb
17 changed files with 317 additions and 0 deletions

View file

@ -0,0 +1,269 @@
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
title = "Git"
date = 2024-09-18
slides = true
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Git
-------------------------------------------------------------------------
Git is tool that's used in the programming industry.
-------------------------------------------------------------------------
Another name for Git is a Version Control System (VCS) tool.
-------------------------------------------------------------------------
Specifically to track project work done, and the changes to files we've made.
-------------------------------------------------------------------------
The more correct term is Source Control.
-------------------------------------------------------------------------
It is NOT a programming language.
-------------------------------------------------------------------------
Git is a tool made for (usually) us programmers to track the work we've done.
-------------------------------------------------------------------------
Programmer socks (not) included.
-------------------------------------------------------------------------
Now we need to ask WHY.
-------------------------------------------------------------------------
Why would we need a tool like this?
-------------------------------------------------------------------------
Why not use Google Drive instead?
-------------------------------------------------------------------------
I will find your IP address.
-------------------------------------------------------------------------
In all honesty,
-------------------------------------------------------------------------
It's to help keep track of who did what.
-------------------------------------------------------------------------
And to work on unique features...
-------------------------------------------------------------------------
without affecting the main area/branch of our work.
-------------------------------------------------------------------------
When DO we use git?
-------------------------------------------------------------------------
Because Git keeps track of the changes we've made to files,
-------------------------------------------------------------------------
We can then use it to commit and stage these files,
-------------------------------------------------------------------------
and push them to a place where we can store them.
-------------------------------------------------------------------------
This place is called a Repository.
-------------------------------------------------------------------------
Repositories are hosted on websites like GitLab, GitHub and Forgejo.
-------------------------------------------------------------------------
But, an interesting feature of git, is that it allows you to time-travel.
-------------------------------------------------------------------------
Meaning that if a project breaks, you can go back to before it broke.
-------------------------------------------------------------------------
Now I hear you in the audience asking...
-------------------------------------------------------------------------
Why not use SVN?
-------------------------------------------------------------------------
The answer is simple.
-------------------------------------------------------------------------
![NAH](intro_to_git/NAH.jpg)
-------------------------------------------------------------------------
An actual answer is that Git is Distributed, and SVN in centralized.
-------------------------------------------------------------------------
Simply put, devs can store their changes locally on their machines,
-------------------------------------------------------------------------
where on SVN they're stored on a central system.
-------------------------------------------------------------------------
With a central system you NEED to be connected at all times to work on it.
-------------------------------------------------------------------------
You can work locally on git without having to be connected,
-------------------------------------------------------------------------
and then push once you're reconnected.
-------------------------------------------------------------------------
Back to git.
-------------------------------------------------------------------------
Let's start with the basics.
-------------------------------------------------------------------------
# Live demonstration time
Please get your laptop out
-------------------------------------------------------------------------
How to download git & git LFS
-------------------------------------------------------------------------
## Download
<<https://git-scm.com/downloads>>
-------------------------------------------------------------------------
![img.png](intro_to_git/git_download_button.png)
-------------------------------------------------------------------------
![img_1.png](intro_to_git/git_installer.png)
-------------------------------------------------------------------------
![img_2.png](intro_to_git/git_installer_notepad_as_default_editor.png)
-------------------------------------------------------------------------
![img_3.png](intro_to_git/git_installer_rename_master_to_main.png)
-------------------------------------------------------------------------
![img_4.png](intro_to_git/git_installer_checkout_unix.png)
-------------------------------------------------------------------------
![img_5.png](intro_to_git/git_installer_default_rebase_pull.png)
-------------------------------------------------------------------------
<<https://forgejo.skynet.ie/Skynet/deploy_user>>
-------------------------------------------------------------------------
Don't do this
![BAD](intro_to_git/bad_message.png)
-------------------------------------------------------------------------
![img_6.png](intro_to_git/forgejo_template_button.png)
-------------------------------------------------------------------------
![img_7.png](intro_to_git/forgejo_template_repo_creation.png)
-------------------------------------------------------------------------
![img_8.png](intro_to_git/forgejo_repo_link.png)
-------------------------------------------------------------------------
LFS Install
-------------------------------------------------------------------------
````bash
git lfs install
````
-------------------------------------------------------------------------
Setup SSH key (see Readme.md))
-------------------------------------------------------------------------
![img_9.png](intro_to_git/forgejo_repo_settings.png)
-------------------------------------------------------------------------
![img_10.png](intro_to_git/forgejo_secrets_location.png)
-------------------------------------------------------------------------
![img_12.png](intro_to_git/forgejo_add_secret.png)
-------------------------------------------------------------------------
![img_11.png](intro_to_git/forgejo_ssh_key_example.png)
-------------------------------------------------------------------------
````bash
git init
git remote add origin <repo_url>
git pull origin <branch_name>
git add <file_name>
git commit -m "<commit_message>"
git push origin <branch_name>
````
-------------------------------------------------------------------------
``https://<username>.users.skynet.ie/``
-------------------------------------------------------------------------
TroubleShooting
-------------------------------------------------------------------------
If you see this:
![img_13.png](intro_to_git/permission_denied_publickey.jpg)
> Credit: Geeks for Geeks
-------------------------------------------------------------------------
Go here: https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
-------------------------------------------------------------------------

BIN
slides/compsoc/2025-2025/intro_to_git/NAH.jpg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
slides/compsoc/2025-2025/intro_to_git/bad_message.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
slides/compsoc/2025-2025/intro_to_git/forgejo_add_secret.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
slides/compsoc/2025-2025/intro_to_git/forgejo_repo_link.png (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
slides/compsoc/2025-2025/intro_to_git/git_installer.png (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.