Git
git - The stupid content tracker. Git is a stupid content tracker because it has no idea what's inside those blobs, and it doesn't try to store fine grained information like "lines 345-350 added, lines 502-508 removed" or anything like that.
How to clone github repository to your local terminal
$ git clone https://github.com/ardikas/shell-scripts
How to set up your terminal with remote access to your Github repo
You may see this when you try to commit:
$ git commit *** Please tell me who you are. Run git config --global user.email "you@example.com" git config --global user.name "Your Name" to set your account's default identity. Omit --global to set the identity only in this repository. fatal: empty ident name (for <ardika@DESKTOP-TOREEKS.localdomain>) not allowed
Do:
git config --global user.email "myemail@gmail.com" git config --global user.name "ardikas"
Another way to init Github repo:
git init git config user.name "someone" git config user.email "someone@someplace.com"
How to add SSH key and push using SSH
If you do git push and get this error, that is because password authentication was deprecated:
$ git push Username for 'https://github.com': ardikas Password for 'https://ardikas@github.com': remote: Support for password authentication was removed on August 13, 2021. remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication. fatal: Authentication failed for 'https://github.com/ardikas/python-scripts/'
Instead, my preferred way is to use SSH keys.
Follow these steps to generate an SSH key, add it to your Git Hub, and authenticate:
- https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-ssh-urls
- https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent#generating-a-new-ssh-key
- https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent#adding-your-ssh-key-to-the-ssh-agent
Then test the SSH key:
$ eval "$(ssh-agent -s)" $ ssh-add ~/.ssh/<githubkey> $ ssh -T git@github.com Hi ardikas! You've successfully authenticated, but GitHub does not provide shell access.
Change directory into the local clone of your repository (if you're not already there) and run:
$ git remote set-url origin git@github.com:ardikas/python-scripts.git
Now try editing a file (try the README) and then do:
$ git add -A $ git commit -m "memo"
$ git push Enumerating objects: 3, done. Counting objects: 100% (3/3), done. Delta compression using up to 8 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 1.28 KiB | 1.28 MiB/s, done. Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 To github.com:ardikas/python-scripts.git * [new branch] main -> main
How to commit/upload to git
Note: For Ardika, follow the How to add SSH key and push using SSH steps above to commit and push via your mac/pc.
To commit:
git add [new file] git commit -m "memo" git push
If you get: git@github.com: Permission denied (publickey), follow the steps below...
Workaround (need to find permanent fix):
- I put this as a script:
eval "$(ssh-agent -s)" ssh-add ~/.ssh/<githubkey> ssh -T git@github.com
- Then run:
git remote set-url origin git@github.com:ardikas/terraform git add * || git add [file] git commit -m "memo" git push
If you try to do git push but you get the following error:
fatal: The current branch main has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream ads9055/CS-GY-6843-2025-Spring main
This error means that your current branch (main) does not have an upstream branch set for the remote repository. Essentially, Git doesn't know where to push your changes.
To resolve this, you need to set the upstream branch for your main branch. You can do this using the following command:
git push --set-upstream ads9055/CS-GY-6843-2025-Spring
This command will push the main branch to the remote repository ads9055/CS-GY-6843-2025-Spring and set the upstream branch, so future git push commands will know where to send the changes.
$ git config --list user.email=<my email> user.name=ardikas core.repositoryformatversion=0 core.filemode=true core.bare=false core.logallrefupdates=true remote.origin.url=https://github.com/ardikas/shell-scripts remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* branch.master.remote=origin branch.master.merge=refs/heads/master
How to select branch using git
cd into the repo and run git checkout:
cd [repo directory] git checkout [branch]
How to check which branch you are in:
git status