--- 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) ================================= 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. ================================= ![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 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 this ![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 =================================