In this part of my git video tutorial I will answer a bunch of questions I have received. We’ll cover how to generate and use SSH keys locally as well as on GitHub. We’ll then look at how to set up multiple GitHub accounts on one computer. Through this you’ll easily be able to change accounts with one simple command. Then we’ll look at some examples on how the Fork & Pull workflow works on GitHub.
A transcript / cheat sheet follows the video below.
If you like videos like this, it helps my search ranking when you share this on Google Plus with a click here
Previous Git Video Tutorial Videos
Init, Add, Commit, Status, Diff, Rm, Log and Installation : http://goo.gl/L3bR9f
GitHub, Remote Repositories, Push, Pull, Remote, Fetch, Tagging, Aliases and Clone : http://goo.gl/ctIF44
Branching, HEAD, Checkout, Rebasing, Reverting, Reset, Clean, Solving Merge Conflicts and Mergetool : http://goo.gl/zWDj7T
Git Video Tutorial 4 Transcript / Cheat Sheet
---------------- GIT PART 4 ---------------- 1. Here I'll demonstrate a workflow option with git called Fork 7 Pull. I'll also answer some questions I've received like how to work with multiple GitHub accounts on the same computer. ---------------- GENERATING SSH KEYS ---------------- 2. SSH keys allow you to identify trusted computers without the need for passwords and here I'll show you how to generate multiple codes for multiple GitHub accounts. a. ssh-keygen -t rsa -C "Your Email Address" # Generates the key 3. Then you have to define the name of the file you want to save the key in 4. A public key and a randomart image are generated. The randomart image is provided because it is easier to recognize then a random string of numbers. 5. cd ~/.ssh # Takes us to the location of our keys 6. I'll open the public key with vim 7. Now I'll copy the entire key from ssh-rsa till the end with my email 8. Got to GitHub and sign in 9. Click on account settings 10. Click on SSH 11. Give the key a name, paste in the key and click add key 12. Your public key is then listed ---------------- CREATING MULTIPLE GITHUB ACCOUNTS ---------------- 13. Now I'll create another ssh key for a completely new account on GitHub ssh-keygen -t rsa -C "Your Email Address" # Generates the key 14. Give it a name 15. A public key and randomart are generated again 16. cd ~/.ssh # Takes me to the location for the keys ls # Lists everything in the directory 17. Go to GitHub again using a different GitHub account and click Account Settings 18. vim newthinktank.pub # Get the new key that was generated 19. Copy the key 20. After you click SSH Keys in the sidebar on GitHub, paste the key in, give it a title and click Add Key 21. We used a unique name for our keys so we have to tell ssh about them. ssh-add ~/.ssh/derekbanas ssh-add ~/.ssh/newthinktank 22. touch ~/.ssh/config # Creates the empty file config vim config # Open config 23. We are defining which account we want to work with by associating a keyword to our 2 different hosts. Host github.com HostName github.com User git IdentityFile ~/.ssh/derekbanas Host github-ntt HostName github.com User git IdentityFile ~/.ssh/newthinktank 24. Change to the directory you want to use on GitHub 25. This is the account on GitHub that holds the original master files 26 - 28. After I edit some files I stage them and commit them 29. git remote add myorigin git@github-ntt:newthinktank/CrazyTipCalc.git a. Create an alias for our remote directory b. github-ntt # I identify myself using the newthinktank ssh key c. newthinktank/CrazyTipCalc.git # The specific files I want on GitHub 30. git push myorigin master When you try to push to GitHub you may see this warning. You can verify you are pushing to GitHub by comparing the public keys 31 - 34. You can see GitHubs public keys here https://help.github.com/articles/what-are-github-s-ssh-key-fingerprints 35 - 37. Log into GitHub using my derekbanas account and search for the directory I have associated with my newthinktank account 38 - 41. Get the URL from GitHub and I can clone it git clone https://github.com/newthinktank/CrazyTipCalc.git ---------------- FORK & PULL WORKFLOW ---------------- The way the Fork & Pull works is that anyone can Fork a repository and make changes locally. They don't have the ability to push their potentially damaging code. They can however request that the host repository pull their changes if they would like using a Pull Request. ( This is a very common workflow in the open source community ) 42. Find a repository you'd like to work on and click Fork in GitHub 43 - 45. git clone https://github.com/derekbanas/CrazyTipCalc.git # Get the URL for the fork on GitHub and clone it on your local computer 46. git remote add upstream https://github.com/derekbanas/CrazyTipCalc.git # Assigns the original remote and not the fork to the keyword upstream 47. git fetch upstream # Pull in changes made in the original repository with effecting the local files 48 - 53. I can change a file locally, stage and commit it. I can then push it to more Fork on GitHub. 54. git merge upstream/master # Merges files on GitHub with my local files 55. If I think my changes should be merged with the original repository I can make a Pull Request. Click on Compare, review, create a pull request on GitHub. 56. Changes are listed as well as other data associated with your Forked version. Click the button labeled Create Pull Request if you think you're ready. 57 - 58. Leave a detailed reason why the Pull Request should be excepted and click Send Pull Request 59. The owner of the original repository can see how many Pull Requests they have received on the right side of the screen. 60 - 63. They can go through the Pull Requests and decide what to do. 64 - 65. To merge click Merge Pull Request in GitHub and then leave a detailed explanation why it was done.