mirror of
https://github.com/webinstall/webi-installers.git
synced 2026-08-23 22:16:48 +00:00
add cheat sheet
This commit is contained in:
+103
@@ -0,0 +1,103 @@
|
||||
---
|
||||
title: Git
|
||||
homepage: https://git-scm.com
|
||||
tagline: |
|
||||
git: --fast-version-control
|
||||
description: |
|
||||
> Git is a fast, scalable, distributed revision control system with an
|
||||
> unusually rich command set that provides both high-level operations and full
|
||||
> access to internals.
|
||||
---
|
||||
|
||||
Github's [Git 'Hello World'](https://guides.github.com/activities/hello-world/)
|
||||
is a good place to get started if you're new to git.
|
||||
|
||||
### How to commit files
|
||||
|
||||
```bash
|
||||
git add ./path/to/file1
|
||||
git add ./path/to/file2
|
||||
git commit -m "my summary for this commit"
|
||||
```
|
||||
|
||||
### How to ignore common files
|
||||
|
||||
In your project repository create a `.gitignore` file with patterns of fies to
|
||||
ignore
|
||||
|
||||
```txt
|
||||
.env*
|
||||
*.bak
|
||||
*.tmp
|
||||
.*.sw*
|
||||
```
|
||||
|
||||
### How to create a branch
|
||||
|
||||
This will branch from the branch you're currently on.
|
||||
|
||||
```bash
|
||||
git checkout -b my-branch-name
|
||||
```
|
||||
|
||||
### How to rebase
|
||||
|
||||
Rebase when fetching new updates
|
||||
|
||||
```bash
|
||||
git pull --rebase origin master
|
||||
```
|
||||
|
||||
Rebase a feature branch from master before a merge
|
||||
|
||||
```bash
|
||||
# update master
|
||||
git fetch
|
||||
git checkout master
|
||||
git pull
|
||||
|
||||
# go back to your feature branch
|
||||
git checkout my-feature
|
||||
|
||||
# start the rebase
|
||||
git rebase master
|
||||
|
||||
# fix conflicts if you need to, and then continue
|
||||
git add ./my-merged-file
|
||||
git rebase --continue
|
||||
```
|
||||
|
||||
### How to authenticate git with deploy tokens
|
||||
|
||||
Abbreviated from
|
||||
[The Vanilla DevOps Git Credentials & Private Packages Cheatsheet](https://coolaj86.com/articles/vanilla-devops-git-credentials-cheatsheet/):
|
||||
|
||||
First, update `.gitconfig` to handle each type of git URL (git, ssh, and http)
|
||||
as https:
|
||||
|
||||
```bash
|
||||
git config --global url."https://api@github.com/".insteadOf "https://github.com/"
|
||||
git config --global url."https://ssh@github.com/".insteadOf "ssh://git@github.com/"
|
||||
git config --global url."https://git@github.com/".insteadOf "git@github.com:"
|
||||
```
|
||||
|
||||
Next, create a `.git-askpass`:
|
||||
|
||||
```bash
|
||||
echo 'echo $MY_GIT_TOKEN' > $HOME/.git-askpass
|
||||
chmod +x $HOME/.git-askpass
|
||||
```
|
||||
|
||||
Finally, add the following ENVs to your deployment environment:
|
||||
|
||||
```bash
|
||||
GIT_ASKPASS=$HOME/.git-askpass
|
||||
|
||||
# Relpace xxxx... with your deploy token
|
||||
MY_GIT_TOKEN=xxxxxxxxxxxxxxxx
|
||||
```
|
||||
|
||||
In the case of Github it may be useful to create a read-only deploy user for
|
||||
your organization.
|
||||
|
||||
This can work with Docker, Github, Gitlab, Gitea, CircleCI, and many more.
|
||||
Reference in New Issue
Block a user