3 homepage: https://git-scm.com
5 git: --fast-version-control
16 > Git is a fast, scalable, distributed revision control system with an unusually
17 > rich command set that provides both high-level operations and full access to
20 Github's [Git 'Hello World'](https://guides.github.com/activities/hello-world/)
21 is a good place to get started if you're new to git.
23 ### How to commit files
26 git add ./path/to/file1
27 git add ./path/to/file2
28 git commit -m "my summary for this commit"
31 ### How to ignore common files
33 In your project repository create a `.gitignore` file with patterns of fies to
43 ### How to create a branch
45 This will branch from the branch you're currently on.
48 git checkout -b my-branch-name
51 ### How to rebase by default
54 git config --global pull.rebase true
59 > To "rebase" simply means to undo any of your changes, apply updates from
60 > another branch first, and then replay your changes.
62 Rebase when fetching new updates
65 git pull --rebase origin master
68 Rebase a feature branch from master before a merge
76 # go back to your feature branch
77 git checkout my-feature
82 # fix conflicts if you need to, and then continue
83 git add ./my-merged-file
87 ### How to authenticate git with deploy tokens
90 [The Vanilla DevOps Git Credentials & Private Packages Cheatsheet](https://coolaj86.com/articles/vanilla-devops-git-credentials-cheatsheet/):
92 First, update `.gitconfig` to handle each type of git URL (git, ssh, and http)
96 git config --global url."https://api@github.com/".insteadOf "https://github.com/"
97 git config --global url."https://ssh@github.com/".insteadOf "ssh://git@github.com/"
98 git config --global url."https://git@github.com/".insteadOf "git@github.com:"
101 Next, create a `.git-askpass`:
104 echo 'echo $MY_GIT_TOKEN' > $HOME/.git-askpass
105 chmod +x $HOME/.git-askpass
108 Finally, add the following ENVs to your deployment environment:
111 GIT_ASKPASS=$HOME/.git-askpass
113 # Relpace xxxx... with your deploy token
114 MY_GIT_TOKEN=xxxxxxxxxxxxxxxx
117 In the case of Github it may be useful to create a read-only deploy user for
120 This can work with Docker, Github, Gitlab, Gitea, CircleCI, and many more.