diff --git a/slides/compsoc/2025-2025/intro_to_git.md b/slides/compsoc/2025-2025/intro_to_git.md index b2e6354..c2972fd 100644 --- a/slides/compsoc/2025-2025/intro_to_git.md +++ b/slides/compsoc/2025-2025/intro_to_git.md @@ -1,8 +1,12 @@ -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -title = "Git" -date = 2024-09-18 -slides = true -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +--- +title: "Intro to git" +sub_title: "Force push" +author: "Prabuddha Hans" +date: "2025-09-22" + +theme: + name: catppuccin-latte +--- # Git @@ -10,231 +14,342 @@ slides = true 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) +![image:width:100%](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 <> -------------------------------------------------------------------------- - -![img.png](intro_to_git/git_download_button.png) + ------------------------------------------------------------------------- -![img_1.png](intro_to_git/git_installer.png) +![image:width:100%](intro_to_git/git_download_button.png) + + ------------------------------------------------------------------------- -![img_2.png](intro_to_git/git_installer_notepad_as_default_editor.png) +![image:width:100%](intro_to_git/git_installer.png) + + ------------------------------------------------------------------------- -![img_3.png](intro_to_git/git_installer_rename_master_to_main.png) +![image:width:100%](intro_to_git/git_installer_notepad_as_default_editor.png) + + ------------------------------------------------------------------------- -![img_4.png](intro_to_git/git_installer_checkout_unix.png) +![image:width:100%](intro_to_git/git_installer_rename_master_to_main.png) + + ------------------------------------------------------------------------- -![img_5.png](intro_to_git/git_installer_default_rebase_pull.png) +![image:width:100%](intro_to_git/git_installer_checkout_unix.png) + + + +------------------------------------------------------------------------- + +![image:width:100%](intro_to_git/git_installer_default_rebase_pull.png) + + ------------------------------------------------------------------------- <> + ------------------------------------------------------------------------- Don't do this -![BAD](intro_to_git/bad_message.png) +![image:width:100%](intro_to_git/bad_message.png) + + ------------------------------------------------------------------------- -![img_6.png](intro_to_git/forgejo_template_button.png) +![image:width:100%](intro_to_git/forgejo_template_button.png) + + ------------------------------------------------------------------------- -![img_7.png](intro_to_git/forgejo_template_repo_creation.png) +![image:width:100%](intro_to_git/forgejo_template_repo_creation.png) + + ------------------------------------------------------------------------- -![img_8.png](intro_to_git/forgejo_repo_link.png) +![image:width:100%](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) +![image:width:100%](intro_to_git/forgejo_repo_settings.png) + + ------------------------------------------------------------------------- -![img_12.png](intro_to_git/forgejo_add_secret.png) +![image:width:100%](intro_to_git/forgejo_secrets_location.png) + + ------------------------------------------------------------------------- -![img_11.png](intro_to_git/forgejo_ssh_key_example.png) +![image:width:100%](intro_to_git/forgejo_add_secret.png) + + + +------------------------------------------------------------------------- + +![image:width:100%](intro_to_git/forgejo_ssh_key_example.png) + + ------------------------------------------------------------------------- @@ -246,24 +361,35 @@ git add git commit -m "" git push origin ```` + + + ------------------------------------------------------------------------- ``https://.users.skynet.ie/`` + + ------------------------------------------------------------------------- TroubleShooting + + ------------------------------------------------------------------------- If you see this: -![img_13.png](intro_to_git/permission_denied_publickey.jpg) +![image:width:100%](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 + + ------------------------------------------------------------------------- \ No newline at end of file