====== Git Basics ======
[[https://githowto.com/|Git How-to]]
===== Stage / Commit / Push =====
git add the.file
git commit -m "The message"
git push
===== Branches =====
Switch branch (option create)
git switch branch_name
git switch -c create_branch_name
(''git switch'' needs git 2.23 or later; on older versions use ''git checkout'' and ''git checkout -b''.)
===== Git and Rust =====
When you create a new Rust project using Cargo it automatically initializes a local git repository.
To connect it with a remote repository follow the basic instructions :
cd existing_folder
git init # Skip if in a Rust project created with cargo, git is already initialized
git remote add origin
git add . # required
git commit -m "Initial commit" # Feel free to change the message
git push -u origin main # This is what actually pushes (use master if your default branch is still called master)
Git will ask you to authenticate as the owner of the remote repository. GitHub no longer accepts account passwords for git: use a personal access token (entered as the password) or an SSH key (with an SSH remote URL).
Most modern editors (VS Code, Zed...) detect the git repository automatically when the project root folder is opened directly.
If you want to set all of your branches to automatically use this remote repo when you use git pull, add --set-upstream to the push:
git push --all --set-upstream origin
===== Branching =====
To get a branch that exists on the remote repository, fetch the remote data then switch to the branch:
git fetch origin
git switch
''git fetch'' downloads everything from ''origin'' without changing your files. ''git switch'' then creates a local branch with the same name that automatically tracks the remote one.
===== Resources =====
[[https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control|Git book]]