Version Control
1. Git
1. Git Setup and Configuration
git --version - Check Git version
git config --global user.name "Your Name" - Set global username
git config --global user.email "your.email@example.com" - Set global email
git config --global core.editor "vim" - Set default editor
git config --global init.defaultBranch main - Set default branch name
git config --list - View Git configuration
git help <command> - Get help for a Git command
2. Creating and Cloning Repositories
git init - Initialize a new Git repository
git clone <repo_url> - Clone an existing repository
git remote add origin <repo_url> - Link local repo to a remote repo
git remote -v - List remote repositories
3. Staging and Committing Changes
git status - Check the status of changes
git add <file> - Add a file to the staging area
git add . - Add all files to the staging area
git commit -m "Commit message" - Commit staged files
git commit -am "Commit message" - Add & commit changes in one step
git commit --amend -m "New message" - Modify the last commit message
4. Viewing History and Logs
git log - Show commit history
git log --oneline - Show history in one-line format
git log --graph --decorate --all - Display commit history as a graph
git show <commit_id> - Show details of a specific commit
git diff - Show unstaged changes
git diff --staged - Show staged but uncommitted changes
git blame <file> - Show who modified each line of a file
5. Branching and Merging
git branch - List all branches
git branch <branch_name> - Create a new branch
git checkout <branch_name> - Switch to another branch
git checkout -b <branch_name> - Create and switch to a new branch
git merge <branch_name> - Merge a branch into the current branch
git branch -d <branch_name> - Delete a local branch
git branch -D <branch_name> - Force delete a branch
6. Working with Remote Repositories
git fetch - Fetch changes from remote repo
git pull origin <branch_name> - Pull latest changes
git push origin <branch_name> - Push changes to remote repo
git push -u origin <branch_name> - Push and set upstream tracking
git remote show origin - Show details of the remote repo
git remote rm origin - Remove the remote repository
7. Undoing Changes
git restore <file> - Unstage changes
git restore --staged <file> - Unstage a file from the staging area
git reset HEAD~1 - Undo the last commit but keep changes
git reset --hard HEAD~1 - Undo the last commit and discard changes
git revert <commit_id></commit_id> - Create a new commit to undo changes
git stash - Save uncommitted changes temporarily
git stash pop - Apply stashed changes
git stash drop - Remove stashed changes
8. Tagging and Releases
git tag - List all tags
git tag <tag_name> - Create a tag
git tag -a <tag_name> -m "Tag message" - Create an annotated tag
git push origin <tag_name> - Push a tag to remote
git tag -d <tag_name> - Delete a local tag
git push --delete origin <tag_name> - Delete a remote tag
9. Working with Submodules
git submodule add <repo_url> <path> - Add a submodule
git submodule update --init --recursive - Initialize and update submodules
git submodule foreach git pull origin main - Update all submodules
10. Git Aliases (Shortcuts)
git config --global alias.st status - Create alias for status command
git config --global alias.co checkout - Create alias for checkout command
git config --global alias.br branch - Create alias for branch command
git config --global alias.cm commit - Create alias for commit command
git config --list | grep alias - View all configured aliases
11. Deleting Files and Folders
git rm <file> - Remove a file and stage deletion
git rm -r <folder> - Remove a directory
git rm --cached <file> - Remove file from repo but keep locally
12. Force Push and Rollback (Use with Caution)
git push --force - Force push changes
git reset --hard <commit_id> - Reset repo to a specific commit
git reflog - Show history of HEAD changes
git reset --hard ORIG_HEAD - Undo the last reset
2. GitHub
1. Authentication & Configuration
gh auth logout – Log out of GitHub CLI
gh auth status – Check authentication status
gh auth refresh – Refresh authentication token
gh config set editor <editor> – Set the default editor (e.g., nano, vim)
gh config get editor – Get the current editor setting
2. Repository Management
gh repo list – List repositories for the authenticated user
gh repo delete <name> – Delete a repository
gh repo rename <new-name> – Rename a repository
gh repo fork --clone=false <url> – Fork a repository without cloning
3. Branch & Commit Management
gh branch list – List branches in a repository
gh branch delete <branch> – Delete a branch
gh browse – Open the repository in a browser
gh co <branch> – Check out a branch
4. Issue & Pull Request Handling
gh issue create – Create a new issue
gh issue close <issue-number> – Close an issue
gh issue reopen <issue-number> – Reopen a closed issue
gh issue comment <issue-number> --body "Comment" – Add a comment to an issue
gh pr list – List open pull requests
gh pr checkout <pr-number> – Check out a pull request branch
gh pr close <pr-number> – Close a pull request
5. Gists & Actions
gh gist create <file> – Create a new gist
gh gist list– List all gists
gh workflow list – List GitHub Actions workflows
gh run list – List workflow runs
Webhooks
- Go to Repo → Settings → Webhooks → Add Webhook
- Events: push, pull_request, issues, etc.
- Payload sent in JSON format to the specified URL
3. GitLab
1. Project & Repository Management
gitlab project create <name> – Create a new project
gitlab repo list – List repositories
gitlab project delete <id> – Delete a project
gitlab repo fork <repo> – Fork a repository
gitlab repo clone <url> – Clone a GitLab repository
gitlab repo archive <repo> – Archive a repository
2. Issues & Merge Requests
gitlab issue list – List all issues in a project
gitlab issue create --title "<title>" --description "<desc>" – Create an issue
gitlab issue close <issue_id> – Close an issue
gitlab issue reopen <issue_id> – Reopen an issue
gitlab merge_request list – List merge requests
gitlab merge_request create --source-branch <branch> --target-branch <branch> --title "<title>" – Create a merge request
gitlab merge_request close <mr_id> – Close a merge request
3. Pipeline & CI/CD
gitlab pipeline trigger – Trigger a pipeline
gitlab pipeline list – List all pipelines
gitlab pipeline retry <pipeline_id> – Retry a failed pipeline
gitlab pipeline cancel <pipeline_id> – Cancel a running pipeline
gitlab pipeline delete <pipeline_id> – Delete a pipeline
gitlab runner register – Register a CI/CD runner
gitlab runner list – List registered runners
gitlab runner unregister <runner_id> – Unregister a runner
4. User & Group Management
gitlab user list – List users in GitLab
gitlab user create --name "<name>" --email "<email>" – Create a new user
gitlab group list – List groups in GitLab
gitlab group create --name "<group_name>" --path "<group_path>" – Create a group
gitlab group delete <group_id> – Delete a group
5. Access & Permissions
gitlab project member list <project_id> – List project members
gitlab project member add <project_id> <user_id> <access_level> – Add a user to a project
gitlab group member list <group_id> – List group members
gitlab group member add <group_id> <user_id> <access_level> – Add a user to a group
6. Repository Protection & Settings
gitlab branch protect <branch> – Protect a branch
gitlab branch unprotect <branch> – Unprotect a branch
gitlab repository mirror – Set up repository mirroring
gitlab repository settings update – Update repository settings
Webhooks:
- Go to Settings → Webhooks
- Select triggers: Push events, Tag push, Merge request, etc.
- Use GitLab CI/CD with .gitlab-ci.yml
4. Bitbucket
1. Repository Management
bitbucket repo create <name> - Create a repository
bitbucket repo list - List all repositories
bitbucket repo delete <name> - Delete a repository
bitbucket repo clone <repo-url> - Clone a repository
bitbucket repo fork <repo> - Fork a repository
bitbucket repo update <repo> - Update repository settings
2. Branch Management
bitbucket branch create <branch-name> – Create a new branch
bitbucket branch list - List all branches
bitbucket branch delete <branch-name> - Delete a branch
3. Pipeline Management
bitbucket pipeline run - Run a pipeline
bitbucket pipeline list - List pipelines
bitbucket pipeline stop <pipeline-id> - Stop a running pipeline
bitbucket pipeline rerun <pipeline-id> - Rerun a pipeline
4. Issue Tracking
bitbucket issue list - List all issues
bitbucket issue create "<title>" --kind=<bug/task/enhancement> - Create an issue
bitbucket issue update <issue-id> --status=<open/closed/resolved> - Update issue status
bitbucket issue delete <issue-id> - Delete an issue
5. Pull Request Management
bitbucket pullrequest create --source <branch> --destination <branch> - Create a pull request
bitbucket pullrequest list - List pull requests
bitbucket pullrequest merge <id> - Merge a pull request
bitbucket pullrequest approve <id> - Approve a pull request
bitbucket pullrequest decline <id> - Decline a pull request
Webhooks
- Go to Repo → Repository Settings → Webhooks
- Choose event typesd like repo:push, pullrequest:created, etc