Skip to content

Instantly share code, notes, and snippets.

@prograhammer
Last active November 4, 2024 02:58
Show Gist options
  • Save prograhammer/81cac393bf599e69f825 to your computer and use it in GitHub Desktop.
Save prograhammer/81cac393bf599e69f825 to your computer and use it in GitHub Desktop.
Git cheat sheet for some useful Git commands and command scenarios.

Git Cheat Sheet

Single Git Commands

Initialize a git repo in the current directory

# git init

Add a remote called "origin"

# git remote add origin https://github.com/your-username-here/your-repo-here.git

Add all untracked changed files to staging, ready to be committed

# git add -A

Commit with a message

# git commit -m "some message here"

Push from local branch "master" up to remote branch "origin"

# git push origin master

Pull from remote branch "origin" down to local branch "master"

# git pull origin master

Force push "master" branch to remote "origin" forcing the remote to accept your changes

# git push --force origin master

Force pull and reset all files to match origin. (Won't mess with files in .gitignore)

# git fetch --all
# git reset --hard origin/master    

Removes untracked files (not those ignored). Such as those .orig files that are left after resolving conflicts

# git clean -f -n    // do this command first, with "n" flag to see what would be removed
# git clean -f       // this command actually removes the files

View remotes

# git remote -v

View current branch you are on

# git branch -l

Switch to a branch

# git checkout your-branch-here

Delete a branch

# git checkout other_than_branch_to_be_deleted
// Deleting local branch
# git branch -D branch_to_be_deleted
// Deleting remote branch
# git push origin --delete branch_to_be_deleted

Rebase the current branch off of some other branch (most of the time "some-other-branch" will be "master")

# git branch -l                  // shows you are currently on some-branch
# git rebase some-other-branch   // now rebase off of some-other-branch

Common Git Scenarios

Push some code changes up to github repo

# git init
# git remote add origin https://github.com/your-username/your-repo.git
# git add -A
# git commit -m "updated my package"
# git push --force origin master

Setup Git to use SSH key (perhaps for Bitbucket or Github)

// Go to ssh directory (or create it if it doesn't exist)
# cd ~/.ssh

// Generate SSH key
# ssh-keygen -t rsa -C "enter some random label here"

// Prompt "Enter file in which to save the key (/root/.ssh/somekey):"
[Enter your key name. In this case we call it "somekey"]

// Prompt "Enter passphrase (empty for no passphrase):"
[Enter a passphrase]

// See your public ssh key
# cat ~/.ssh/somekey.pub

// somekey.pub is your public key
// somekey is your private key

// Enter this command to see if the agent is running
# ps -e  | grep [s]sh-agent
[9060 ??         0:00.28 /usr/bin/ssh-agent -l]

// If the agent isn't running, start it manually with the following command:
# ssh-agent /bin/bash

// Load your new identity into the ssh-agent management program using the ssh-add command.
# ssh-add ~/.ssh/somekey
[Enter passphrase for /root/.ssh/id_rsa: 
Identity added: /root/.ssh/somekey]

// Use the ssh-add command to list the keys that the agent is managing.
# ssh-add -l
[2048 7a:9c:b2:9c:8e:4e:f4:af:de:70:77:b9:52:fd:44:97 /root/.ssh/somekey (RSA)]
@theody-magill-amp
Copy link

Very nice step through of the git rebase process.

@Ronnie7
Copy link

Ronnie7 commented Oct 10, 2017

Really helpful thank you!

@mcsee
Copy link

mcsee commented Aug 10, 2018

Thank you very much

@gary-cotton-codemaker-helper

Dear David Graham prograhammer:
{Your Profile:} "Pursuing all parts of the Web stack. Love helping people. Passionate about clean code."
Please Note: I share and also treasure what you have stated here. Thank You for providing a clear, very helpful, very useful: "Summary Sheet" (I try to avoid the term "Cheat Sheet"). ==> Please Note: I discovered your Information while trying to cope with Tower Git's offering a "Free" 'Eight Page Git Cheat Sheet', then - Never - sending it to my email, then granting me No More Re-access to the offer, but, baiting me, instead, to send out a Tweet-Advertisement, for their Company, using me as its source, making me think that it was a necessary step to receiving the 'Eight Page Git Cheat Sheet', which turned out to be false: the Tweet went out, but, no 'Eight Page Git Cheat Sheet'! Granted, it could be my error, But ... some team or coder, working for and-or adminning for, Tower Git, needs to update-fix this part of their website. Currently, It is mean treatment for learners such as me, and presumably others, and it sends a very contradictory image up against what I perceive is Tower Git's good-intentioned, honest, true nature and character. Anyhow, Thanks And Keep On Communicating and Contributing! God Bless You, Yours, All, Gary Cotton [email protected] (2019Mar24Sun)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment