--- title: "Git" category: "Developer tools" tagline: "The version control system almost every software project uses, with CoreDesktop's shortcuts." source: "pacman" package: "git" command: "git" website: "https://git-scm.com/" code: "https://github.com/git/git" links: - name: "Pro Git (free book)" url: "https://git-scm.com/book/en/v2" --- ## What it is Git records the history of a project's files. Each commit is a snapshot you can go back to, compare or undo, and branches let you work on several changes at once and merge them when they're ready. It's distributed: every copy of a repository has the full history, and you share work by pushing and pulling between copies, often through GitHub, GitLab or Gitea. ## Why it's here - **The standard.** Nearly every open-source and commercial project uses it. - **Safe experiments.** Branch, try something, and throw it away if it doesn't work. - **Needed by everything else.** Editors, AI agents and installers all use Git. ## On CoreDesktop Git is installed from pacman. CoreDesktop adds shell shortcuts for it: - `g` for `git`, and `lg` for [lazygit](/software/lazygit/) - `gcm "message"` commits with a message, `gcam "message"` commits all changed files, and `gcad` adds changed files to the last commit - `ga ` creates a worktree for a new branch next to the current repository, in `../--`, and moves you into it; `gd`, run inside it, removes the worktree and its branch `update` keeps Git current with the rest of the pacman packages.