--- title: "Intro to git" sub_title: "git push -f origin main" author: "Prabuddha Hans" date: "2025-09-22" theme: name: catppuccin-latte --- 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. ![image:width:100%](intro_to_git/compsocks.png) Why Git ================================= * 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. Code Storage ================================= * 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 nerds in the audience asking... * Why not use SVN? * The answer is simple. No. ================================= ![image:width:100%](intro_to_git/NAH.jpg) WHY don't we use SVN ================================= * An actual answer is that Git is Distributed, and SVN in centralized. * Simply put, devs can store their changes locally on their machines. * Whereas 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 laptops out ================================= How to download Git & Git LFS ================================= ## Download <> ================================= ![image:width:100%](intro_to_git/git_download_button.png) ================================= ![image:width:100%](intro_to_git/git_installer.png) ================================= ![image:width:100%](intro_to_git/git_installer_notepad_as_default_editor.png) ================================= ![image:width:100%](intro_to_git/git_installer_rename_master_to_main.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 these types of commit messages ================================= ![image:width:100%](intro_to_git/bad_message.png) ================================= ![image:width:100%](intro_to_git/forgejo_template_button.png) ================================= ![image:width:100%](intro_to_git/forgejo_template_repo_creation.png) ================================= ![image:width:100%](intro_to_git/forgejo_repo_link.png) ================================= LFS Install ================================= ````bash git lfs install ```` Setup SSH key (see Readme.md) ================================= ================================= ![image:width:100%](intro_to_git/forgejo_repo_settings.png) ================================= ![image:width:100%](intro_to_git/forgejo_secrets_location.png) ================================= ![image:width:100%](intro_to_git/forgejo_add_secret.png) ================================= ![image:width:100%](intro_to_git/forgejo_ssh_key_example.png) ================================= ````bash git init git remote add origin git pull origin git add git commit -m "" git push origin ```` ================================= ``https://.users.skynet.ie/`` TroubleShooting ================================= If you see this: ================================= ![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 =================================