Repository: GoldinGuy/UltimateGitResource Branch: main Commit: 0edc97b1f804 Files: 7 Total size: 28.7 KB Directory structure: gitextract_e9zlxc_3/ ├── .gitignore ├── All About Git.pptx ├── README.md └── docs/ ├── .gitignore ├── README.md ├── css/ │ └── style.css └── index.html ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ ### GIT_IGNORE - This is where you list files you don't want to commit, such as files containing API keys, passwords, or auto-generated files specific to your machine ## EXAMPLES ## # You can prepend a pattern with a double asterisk to match directories anywhere in the repository **/logs # You can also use a double asterisk to match files based on their name and the name of their parent directory **/logs/debug.log # An asterisk is a wildcard that matches zero or more characters *.log # By default, patterns match files in any directory debug.log # If you don't append a slash, the pattern will match both files and the contents of directories with that name. In the example matches on the left, both directories and files named logs are ignored logs # Appending a slash indicates the pattern is a directory. The entire contents of any directory in the repository matching that name – including all of its files and subdirectories – will be ignored logs/ # A question mark matches exactly one character debug?.log # Square brackets can also be used to match a single character from a specified range debug[0-9].log # Square brackets match a single character form the specified set debug[01].log # An exclamation mark can be used to match any character except one from the specified set debug[!01].log # Ranges can be numeric or alphabetic debug[a-z].log # A double asterisk matches zero or more directories logs/**/debug.log # Wildcards can be used in directory names as well logs/*day/debug.log # Patterns specifying a file in a particular directory are relative to the repository root. (You can prepend a slash if you like, but it doesn't do anything special.) logs/debug.log ## It's a common practice to name files or directories that get ignored with a "." in front - For example: # Compiled source # *.com *.class *.dll *.exe *.o *.so # Packages # # it's better to unpack these files and commit the raw source # git has its own built in compression methods *.7z *.dmg *.gz *.iso *.jar *.rar *.tar *.zip # Logs and databases # *.log *.sql *.sqlite # OS generated files # .DS_Store .DS_Store? ._* .Spotlight-V100 .Trashes ehthumbs.db Thumbs.db ## This file uses the helpful examples provided by https://www.atlassian.com/git/tutorials/saving-changes/gitignore ================================================ FILE: README.md ================================================ # UltimateGitResource 📚 A list of helpful Git commands for the Google DSC Git Event & Hackapalooza Hackathon [![Discuss On Discord][discord]][discord-url] [![Contributors][contributors-shield]][contributors-url] [![Issues][issues]][issues-url] [**Watch a recording of the All About Git presentation here!**](https://www.youtube.com/watch?v=mqhDMv6nIVI) Git is the most popular [version control system](https://en.wikipedia.org/wiki/Version_control). It tracks changes you make to files and keeps a record of your work. It also lets you revert to earlier versions of your code if the need arises. Git drastically improves collaboration, allowing multiple people to work in sync on the same source code. Below is a selection of the most helpful and commonly used Git commands to power up your programming! *Note - Wherever used the shorthand `Repo` means [Repository](https://en.wikipedia.org/wiki/Repository_(version_control))* The [Docs](https://github.com/GoldinGuy/UltimateGitResource/tree/main/docs) folder of this repo contains a simple profile/resume static site built on HTML5 and [TailwindCSS](https://v1.tailwindcss.com/) to help learn about [Github pages](https://pages.github.com/). You can clone the repository and test it out yourself, or visit [this link](https://goldinguy.github.io/UltimateGitResource/) to see a live demo. For more info look at the [README](https://github.com/GoldinGuy/UltimateGitResource/blob/main/docs/README.md) for the `/docs` directory. This repo contains a powerpoint presentation explaning many of these commands that can be viewed online [here](https://docs.google.com/presentation/d/1BHa_ZxiyRRJQKaCRXTozmMhlPgkFcx-zn5esd5n-HWY/edit?usp=sharing). ## Table of Contents - [Installing Git](https://docs.github.com/en/free-pro-team@latest/github/getting-started-with-github/set-up-git) - [Gitting Existing Projects](#-gitting-existing-projects) - [Gitting Started - Setting Up a New Repo](#-gitting-started---setting-up-a-new-repo) - [The Nitty Gitty - Examine History & State](#-the-nitty-gitty---examine-history--state) - [Branching Out - Grow, Mark & Tweak History](#-branching-out---grow-mark--tweak-history) - [Git Gud - Dealing With Merge Conflicts](#-git-gud---dealing-with-merge-conflicts) - [Git More - Pushing, Pulling, & Remote Origin](#-git-more---pushing-pulling--remote-origin) - [Gitting Complicated - The Danger Zone](#-gitting-complicated---the-danger-zone) - [Git Resources](#-more-git-resources) - [Contributing](#contributing) ## Git Commands You can run `git help` in the terminal to learn about many of these commands at any time. `git help -a` and `git help -g` list available subcommands and concept guides. `git help ` or `git help ` allow you to read about a specific subcommand or concept. `HEAD` represents your current working directory. The `HEAD` pointer can be moved to different branches, tags, or commits using `git checkout`. The `gitignore` file allows you to control what gets committed and what doesn't, allowing you to keep your keys and passwords secure, and reducing the amount of bloat on the remote repo. You can learn more about it in the [.gitignore file](https://github.com/GoldinGuy/UltimateGitResource/blob/main/.gitignore) above. ### 📗 Gitting Existing Projects | Command | Description | | ------- | ----------- | | `git clone ssh://git@github.com//.git` | Create a local copy of a remote repo using SSH | | `git clone https://github.com//.git` | Create a local copy of a remote repo using HTTPS | You can also [fork](https://github.com/GoldinGuy/UltimateGitResource/fork) repos *(create a copy of the original repo that remains on your GitHub account)*. ### 📘 Gitting Started - Setting Up a New Repo | Command | Description | | ------- | ----------- | | `git init` | Initialize a local Git repository | | `git add .` | Add all files in the working directory to the staging area | | `git commit -m ""` | Commit your changes | | `git remote add origin git@github.com:/.git` | Add upstream repo to publish commits at (the remote repo) | | `git push -u origin master` | Push your changes to remote repository | #### More Options For Staging Files | Command | Description | | ------- | ----------- | | `git add ` | Add a single file to the staging area | | `git add -A` | Add all files in all directories to the staging area | | `git rm -r ` | Remove a single file (or folder) | | `git rm -r . --cached` | Remove all files recursively from staging area | ### 📙 The Nitty Gitty - Examine History & State | Command | Description | | ------- | ----------- | | `git status` | See details about the current branch | | `git show` | Shows changes in committed files | | `git log` | View changes in commit history | | `git log --summary` | View changes (detailed) | | `git log --oneline` | View changes (briefly) | | `git diff ` | Preview changes before merging | ### 📒 Branching Out - Grow, Mark & Tweak History | Command | Description | | ------- | ----------- | | `git branch` | List branches (the * is the current branch) | | `git branch -a` | List all branches (local and remote) | | `git branch ` | Create a new local branch | | `git branch -d ` | Delete a local branch | | `git push origin --delete ` | Delete a remote branch | | `git checkout -b ` | Create a new local branch and switch to it | | `git checkout -b origin/` | Clone a remote branch and switch to it | | `git branch -m ` | Rename a local branch | | `git checkout ` | Switch to a branch | | `git checkout -` | Switch to the most recent branch | | `git checkout -- ` | Revert your recent changes to a file | ### 📕 Git Gud - Dealing With Merge Conflicts | Command | Description | | ------- | ----------- | | `git merge ` | Merge a branch into the active branch | | `git merge ` | Merge a branch into a target branch | | `git merge --abort` | Abort the current conflict resolution process, and attempt to reconstruct the pre-merge state | | `git stash` | Stash changes in a dirty working directory | | `git stash clear` | Remove all stashed entries | ### 📓 Git More - Pushing, Pulling, & Remote Origin | Command | Description | | ------- | ----------- | | `git push origin ` | Push a branch to your remote repo | | `git push -u origin ` | Push changes to remote repo (and remember the branch) | | `git push` | Push changes to remote repo (only if you have previously set a remote origin) | | `git push origin --delete ` | Delete a remote branch | | `git pull` | Synchronize local repo with remote repo | | `git pull origin ` | Pull changes from remote repo | | `git fetch` | Checks to see if there are any changes on the remote repo (does not pull changes) | | `git fetch --prune` | Fetch all remote branch refs and delete those no longer in use | | `git remote -v` | Shows URLs of remote repositories when listing your current remote connections | | `git remote add origin ssh://git@github.com//.git`| Add upstream repo to publish commits at (the remote repo) | | `git remote set-url origin ssh://git@github.com//.git` | Set a repo's origin branch to SSH | ### 📔 Gitting Complicated - The Danger Zone *HEY! Changing your history may cause undesired side effects. You may lose data. Many of these commands cannot be undone. If you change your remote history, don't say I didn't warn you.* | Command | Description | | ------- | ----------- | | `git rebase ` | Reapply commits on top of another base tip | | `git rebase -i ` | Reapply all commits from ` | Apply the changes introduced by some existing commits | | `git clean -f` | Removes and deletes untracked files from the working tree | | `git clean -fd` | Remove all untracked directories | | `git commit --amend` | Allows you to edit a previous commit that has not been pushed | | `git commit --fixup ` | Combine new changes with an existing commit under the same name | | `git reset ` | Reverts all commits after specified commit, while keeping local changes | | `git reset --hard ` | Reverts all history and changes back to the given commit | | `git reset HEAD~1` | Revert 1 commit (while keeping current local state) | | `git push origin --force` | Deletes all your previous commits and pushes your current one | ### 📖 More Git Resources - [Git Docs](https://git-scm.com/doc), for those who want to dive deep into the documentation - [Git Handbook](https://guides.github.com/introduction/git-handbook/), for those who want a quick overview - [Visual Git CheatSheet](https://ndpsoftware.com/git-cheatsheet.html), for those who are visual learners - [Official Printable PDF CheatSheet](https://training.github.com/downloads/github-git-cheat-sheet.pdf), for those who need the physical copy - [Visualize Git Under the Hood](https://git-school.github.io/visualizing-git/), allows you to explore exactly how commands affect repo structure - [Stanford GitMagic](http://www-cs-students.stanford.edu/~blynn/gitmagic/), a plain but detailed quide to git - [GitReady](http://gitready.com/), lets you learn git one commit at a time - [Git From the Bottom Up](https://jwiegley.github.io/git-from-the-bottom-up/), gives you a better understanding of the powerful system - [Git, the Simple Guide](https://rogerdudler.github.io/git-guide/), as stated, with no deep knowledge required - [Git Explained (Not just commands)](https://towardsdatascience.com/git-help-all-2d0bb0c31483), a brief guide including more than commands - [Git-It](https://github.com/jlord/git-it-electron#what-to-install), an app that teaches you git via challenges in the terminal - [Interactive Way to Learn Git Branching](https://learngitbranching.js.org/), for an enjoyable way to tackle an important concept - [Git Markdown Emoji](https://github.com/ikatyang/emoji-cheat-sheet), to spice up your Git repos - [Article on Writing Good Commit Messages](https://chris.beams.io/posts/git-commit/), which pretty much everyone could stand to improve ;) - [Github Student Developer Pack](https://education.github.com/pack), seriously, if you're a student you should have this - [Intro to Git Rebase](https://dev.to/maxwell_dev/the-git-rebase-introduction-i-wish-id-had), a great explanation of a powerful command ### Contributing 1. Fork UltimateGitResource [here](https://github.com/GoldinGuy/UltimateGitResource/fork) 2. Create a branch with your improvements (`git checkout -b improvement/fooBar`) 3. Commit your changes (`git commit -am 'Add some fooBar'`) 4. Push to the branch (`git push origin improvement/fooBar`) 5. Create a new Pull Request #### Meta Created by [@GoldinGuy](https://github.com/GoldinGuy) for the FAU Google DSC Git Event. [discord-url]: https://discord.gg/gKYSMeJ [discord]: https://img.shields.io/discord/689176425701703810 [issues]: https://img.shields.io/github/issues/GoldinGuy/UltimateGitResource [issues-url]: https://github.com/GoldinGuy/UltimateGitResource/issues [contributors-shield]: https://img.shields.io/github/contributors/GoldinGuy/UltimateGitResource.svg?style=flat-square [contributors-url]: https://github.com/GoldinGuy/UltimateGitResource/graphs/contributors ================================================ FILE: docs/.gitignore ================================================ node_modules .vscode ================================================ FILE: docs/README.md ================================================ # DSC Github Pages Lab This is a demo site to practice using Git and Github Pages. It is a basic portfolio/resume template. Feel free to alter/edit it to your liking. If you have experience with Web Dev, you can use a completely different site for the lab. Profile photos are randomly pulled from [ThisPersonDoesNotExist](https://thispersondoesnotexist.com/). Every time you refresh you should see a different one. ## Completing the Lab ### Copying the Repo Choose one of the following options to copy this repository to your local machine. | Forking | Downloading | Cloning | | ------- | ----------- | ------- | | Click `Fork` on [Github](https://github.com/GoldinGuy/UltimateGitResource), then clone your forked repo by running `git clone git@github.com:/UltimateGitResource.git` | Click `CODE -> DOWNLOAD ZIP` at the root directory of this repo on [Github](https://github.com/GoldinGuy/UltimateGitResource) | Run `git clone git@github.com:GoldinGuy/UltimateGitResource.git` | | ![image](https://user-images.githubusercontent.com/47064842/103800713-bb7f8380-501a-11eb-9ba2-bb0d2e76d856.png) |![image](https://user-images.githubusercontent.com/47064842/103799793-91799180-5019-11eb-99c2-37349da63f18.png) | ![image](https://user-images.githubusercontent.com/47064842/103801899-5af14600-501c-11eb-8eca-86ea5975ca38.png)| *(Each method comes with its own upsides and downsides. Downloading is quick and easy but you lose the repo's history. Forking allows you to compare your own history and the original repo's, but takes an extra step to get the code to your local machine. Cloning requires you to change the remote origin from this repo to your own custom one, and keeps the old repo's history).* ### Customizing the Site Once you have the repo on your local machine, edit the site to your liking in a text editor (I recommend either [VSCode](https://code.visualstudio.com/) or [Atom](https://atom.io/)). _(You can skip this step if you don't care about customization - it's just cool to have your own personal profile site)_ - You can change the font to anything you like from [Google Fonts](https://fonts.google.com/) by replacing the name of the font in the HTML link. - You can use any of the [TailwindCSS](https://v1.tailwindcss.com/) classes to edit your styling. - The quickest way to edit the site is to `Ctrl-F` for the default person "Alex B. Carroll" and replace it with your name. Then do the same for their email "alexbcarroll@hey.com", address, linkedIn, and so on. It will likely require a basic knowledge of HTML5. ### Pushing Your Changes & Making the Site Live Based on the option you chose above, follow these steps to create a remote if necessary and push changes | Forking | Downloading | Cloning | | ------- | ------- | ------- | | Since you forked the repo, you already have a remote repository. | On [Github](https://github.com/), create a remote repository. You can do this by clicking the `+` icon in the top-right, then `new repository`, then filling out the name and description. I recommend naming it `Ultimate Git CheatSheet` but you can call it whatever you want | Same as Downloading | Run Git commands in the terminal to push your local state to the remote repo. *(If you cloned the repo, make sure you made at least one change to the site)*. | Forking | Downloading | Cloning | | ------- | ------- | ------- | | `git init` | `git init` | `git remote set-url origin git@github.com:/.git` | | `git add .` | `git add .` | `git add .` | | `git commit -m ""` | `git commit -m ""` | `git commit -m ""` | | `git push` | `git remote add origin git@github.com:/.git` | `git push` | | `git log` | `git push -u origin master` | `git log` | If you navigate to `https://github.com:/`, you should now see your repo in all its glory ### Setting Up Github Pages We are now going to setup `Github Pages` to host our demo site for free - Navigate to the `settings` tab of the Github repo at `https://github.com://settings`. - Scroll down to the section titled `GitHub Pages`. - Click `branch` and select `main`. Then click the folder icon and select `docs`. This sets the Github pages to build from the `/docs` folder which contains our site. - Click save, and wait a minute for your site to load. It should look similar to the image below when complete. - You're done! Now you have your own personal profile/resume site, hosted for free on Github. You learned how to use the most common commands, and hopefully have a basic understanding of how git works. ![image](https://user-images.githubusercontent.com/47064842/103049165-f2f02980-455e-11eb-85c1-ac598508f433.png) ### Data Breach - Bonus Challenge! In the index.html file there is a `DUMMY_API_KEY`. By completing this lab as normal, we are simulating an API key (essentially, a password) being accidentally exposed *(A common mistake that I have made several times)* For this bonus challenge, you must quickly remove all traces from this credential from your history. Requirements are as follows: - You must include the `DUMMY_API_KEY` in the initial commit - You must use Git commands to remove the API Key from your history. There are many ways to accomplish this.
If you are stuck, click here for a hint: ```Use Rebase, Force Push, Commit --amend, or git filter-branch```
Notably, if this was a real data breach and you already pushed the API key, it's too late. You should do the above, but I also recommend invaldiating and changing the API key to be safe. Github has an article about it [here](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/removing-sensitive-data-from-a-repository). This template is based on an open-source portfolio site found [here](https://github.com/mohusman360/mohusman360.github.io) ================================================ FILE: docs/css/style.css ================================================ /* add your own css! */ ================================================ FILE: docs/index.html ================================================ Alex B. Carroll

Alex B. Carroll

Software Engineer
(alexbcarroll@hey.com)

Summary

At your discretion, such verbatim copies may or may be distributed subject to this License; and You and Apple relating to this License; they are first used, and the intellectual property claims, to do so, and all software distributed in the case of the Work, and as a whole is intended to give away the Licensed Program or a Contribution incorporated within the Work.

Experience

  • Muscle Factory

    Food and tobacco roasting, baking, and drying machine operator
    Jan 2020 - Now
  • P. Samuels Men's Clothiers

    Forest, conservation, and logging worker
    Jan 2020 - Mar 2020
  • Heisenberg's Cookout

    Clerical assistant.
    Dec 2018 - Dec 2019
  • Forest City

    Poultry scientist
    Agu 2017 - Okt 2018

Skills

  • Can eat a large pizza alone Can type without loking at thekeyboard Play a mean tambourine 9 years of liquid eyeliner experience Can load a Pez dispenser all in one go Proficient in using Search Engines Can speak Dothraki