mirror of
https://github.com/donovanglover/nix-config.git
synced 2024-11-26 10:13:25 +01:00
41 lines
2.2 KiB
Markdown
41 lines
2.2 KiB
Markdown
# Git
|
|
|
|
## Common commands
|
|
|
|
- Start a new git repository: `git init` **OR** `gi`
|
|
- Add files to commit: `git add <files>` **OR** `ga <files>`
|
|
- Commit those files to the repository: `git commit -m <message>` **OR** `gc <message>`
|
|
- Undo the last commit: `gr`
|
|
- Undo the last commit and delete changes: `grr`
|
|
- Update your local repository with a remote repository: `git pull -u <remote> <branch>`
|
|
- The most common use is `git pull -u origin master`, although this also works for upstream remotes
|
|
-
|
|
- Show the status of the local repository: `git status` **OR** `gs` **OR** `git s`
|
|
- Push changes from your local repository to a remote repository: `git push <remote> <branch>` **OR** `git push` **OR** `gp`
|
|
- The most common use is `git push origin master`, which is usually the default for `git push`
|
|
- Show the difference between the staging area and the working tree: `git diff` **OR** `gd`
|
|
- Show a log of all the commits: `git log` (full log) **OR** `git lg` (commits only, easier to read)
|
|
|
|
Note that the `-u` flag means `set-(u)pstream-to`. It records the location so you don't have to set which remote to push or pull from every time.
|
|
|
|
Also note that `git clone` makes a remote name of `origin` by default. This is why `git push -u origin master` is usually used.
|
|
|
|
### Working with Branches
|
|
|
|
- Show all the branches: `git branch -a`
|
|
- Checkout a different branch: `git checkout <branch>`
|
|
- Useful for 1) checking out the master or development branch, 2) checking out an upstream branch, and 3) checking out a feature branch
|
|
- Create a new branch: `git checkout -b <branch>`
|
|
- Delete a branch when you're done with it: `git branch -d <branch>`
|
|
|
|
## Less common commands
|
|
|
|
- Removes files to commit: `git rm <files>`
|
|
- Delete all local changes in the repository: `git clean -f`
|
|
- Show all the diffs and changes from the last N commits: `git log -p -<N>`
|
|
- Show the differences between your repository and a remote one: `git log -p master..<REMOTE>/master`
|
|
- View all remotes for the current repository: `git remote -v` (e.g. GitHub mirror, friend's fork, upstream, etc.)
|
|
- Show the entire contents of a commit, including diffs: `git show <commit>`
|
|
- Search for a string in the files of a git repository: `git grep <pattern>`
|
|
|