?? Day 14: Navigating the GitHub Galaxy ??
JIGNESH KUMAR
Electrical & Instrumentation Engineer at SIC | Data Science Enthusiastic | ICE' 2024 SLIET
A. GitHub Concepts
1. Introduction to GitHub:
i) Understanding the Basics:
ii) GitHub Account Setup:
iii) Creating and Managing Repositories:
iv) Basic Git Commands:
2. Collaboration and Contribution:
i) Forking Repositories:
ii) Pull Requests:
iii) Branching Strategies:
iv) Code Review and Collaboration:
3. GitHub Issues and Projects:
i) Creating and Managing Issues:
ii) Organizing with Projects:
iii) Milestones and Labels:
4. Advanced Git Operations:
i) Rebasing:
ii) Squashing Commits:
iii) Git Hooks:
5. GitHub Actions:
i) Setting up Continuous Integration:
ii) Creating Custom Workflows:
iii) Integrating with Third-Party Services:
6. GitHub Pages:
i) Hosting Your Website:
ii) Custom Domains:
7. GitHub Security:
i) Code Scanning:
ii) Dependabot:
iii) Security Advisories:
8. GitHub API:
i) Interacting Programmatically:
领英推荐
ii) Building GitHub Apps:
9. GitHub CLI:
i) Command-Line Interface for GitHub:
10. GitHub for Open Source:
i) Best Practices:
ii) Licensing:
iii) Community Management:
11. GitHub Enterprise:
i) Deploying GitHub in Enterprise Environments:
ii) Advanced Administration:
12. GitHub Insights and Analytics:
i) Traffic Analysis:
ii) Contributor Statistics:
iii) Repository Insights:
B. GitHub Cheat-Sheet
1. SETUP
Configuring user information used across all local repositories:
git config --global user.name "[firstname lastname]"
# set a name that is identifiable for credit when reviewing version history
git config --global user.email "[valid-email]"
# set an email address that will be associated with each history marker
git config --global color.ui auto
# set automatic command line coloring for Git for easy reviewing
2. STAGE & SNAPSHOT
Working with snapshots and the Git staging area:
git init
# initialize an existing directory as a Git repository
git clone [url]
# retrieve an entire repository from a hosted location via URL
3. STAGE & SNAPSHOT
Working with snapshots and the Git staging area:
git status
# show modified files in the working directory, staged for your next commit
git add [file]
# add a file as it looks now to your next commit (stage)
git reset [file]
# unstage a file while retaining the changes in the working directory
git diff
# diff of what is changed but not staged
git diff --staged
# diff of what is staged but not yet committed
git commit -m "[descriptive message]"
# commit your staged content as a new commit snapshot
4. BRANCH & MERGE
Isolating work in branches, changing context, and integrating changes:
git branch
# list your branches. a * will appear next to the currently active branch
git branch [branch-name]
# create a new branch at the current commit
git checkout
# switch to another branch and check it out into your working directory
git merge [branch]
# merge the specified branch’s history into the current one
git log
# show all commits in the current branch’s history
5. INSPECT & COMPARE
Examining logs, diffs, and object information:
git log
# show the commit history for the currently active branch
git log branchB..branchA
# show the commits on branchA that are not on branchB
git log --follow [file]
# show the commits that changed file, even across renames
git diff branchB...branchA
# show the diff of what is in branchA that is not in branchB
git show [SHA]
# show any object in Git in human-readable format
6. TRACKING PATH CHANGES
Versioning file removals and path changes:
git rm [file]
# delete the file from the project and stage the removal for commit
git mv [existing-path] [new-path]
# change an existing file path and stage the move
git log --stat -M
# show all commit logs with indication of any paths that moved
7. IGNORING PATTERNS
Preventing unintentional staging or committing of files:
logs/
*.notes
pattern*/
# Save a file with desired patterns as .gitignore with either direct string matches or wildcard globs.
git config --global core.excludesfile [file]
# system-wide ignore pattern for all local repositories
8. SHARE & UPDATE
Retrieving updates from another repository and updating local repositories:
git remote add [alias] [url]
# add a git URL as an alias
git fetch [alias]
# fetch down all the branches from that Git remote
git merge [alias]/[branch]
# merge a remote branch into your current branch to bring it up to date
git push [alias] [branch]
# transmit local branch commits to the remote repository branch
git pull
# fetch and merge any commits from the tracking remote branch
9. REWRITE HISTORY
Rewriting branches, updating commits, and clearing history:
git rebase [branch]
# apply any commits of the current branch ahead of the specified one
git reset --hard [commit]
# clear the staging area, rewrite the working tree from the specified commit
10. TEMPORARY COMMITS
Temporarily store modified, tracked files to change branches:
git stash
# save modified and staged changes
git stash list
# list stack-order of stashed file changes
git stash pop
# write working from the top of the stash stack
git stash drop
# discard the changes from the top of the stash stack