Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Git cheat-sheets


Published on


Published in: Technology
  • Be the first to comment

Git cheat-sheets

  1. 1. Git Reference Support Back to GitHubGit cheat sheets BeginnerCheat sheets Alexander Zeitler’s Git Cheat Sheet Intermediate Zach Rusin’s Git Cheat Sheet Advanced Nate Murray’s Git Cheat Sheet Git – Der Spickzettel (in German) Troubleshooting DZone Git RefCard Cheat Sheet Sam Collett’s Git Cheat Sheet Third partyA practical git guide GitHub ResourcesNotes extracted from git screencast at Git resourcesConfiguration Git cheat sheetsidentify yourself to git: email and your name Pro Gitgit config --global "David Beckwith" Git SCMgit config --global "" Git Man PagesTo view all options: Git User Manualgit config --list Git ReadyOR Site policycat .git/configSet up aliases This website is open source. Please help us by forking the project and adding to it.git config --global checkoutView your configuration Site Status: All systems operationalcat .gitconfigTo ignore whitespace (Ruby is whitespace insensitive) GitHub Tips Next Tipgit config --global apply.whitespace nowarn Use embedded gists to add code snippets to your blog.Some nice aliases:gb = git branchgba = git branch -agc = git commit -vgd = git diff | mategl = git pullgp = git pushgst = git statusStart using gitgit initIgnoring filesAdd a file in the root directory called .gitignore and add some files to it: (comments beginwith hash)*.log db/schema.rb db/schema.sqlGit automatically ignores empty directories. If you want to have a log/ directory, but want toignore all the files in it, add the following lines to the root .gitignore : (lines beginning with ‘!’are exceptions)log/*!.gitignoreThen add an empty .gitignore in the empty directory:touch log/.gitignore
  2. 2. Scheduling the addition of all files to the next commitgit add .Checking the status of your repositorygit statusCommitting filesgit commit -m "First import"Seeing what files have been committedgit ls-filesScheduling deletion of a filegit rm [file name]Committing all changes in a repositorygit commit -aScheduling the addition of an individual file to the next commitgit add [file name]Viewing the difference as you commitgit commit -vCommit and type the message on the command linegit commit -m "This is the message describing the commit"Commit and automatically get any other changesgit commit -aA “normal” commit commandgit commit -a -vViewing a log of your commitsgit logViewing a log of your commits with a graph to show the changesgit log --statViewing a log with paginationgit log -vVisualizing git changesgitk --allCreating a new tag and pushing it to the remote branchgit tag "v1.3"git push --tagsCreating a new branchgit branch [name of your new branch]Pushing the branch to a remote repositorygit push origin [new-remote]Pulling a new branch from a remote repositorygit fetch origin [remote-branch]:[new-local-branch]Viewing branches
  3. 3. git branchViewing a list of all existing branchesgit branch -aSwitching to another branchThe state of your file system will change after executing this command.git checkout [name of the branch you want to switch to]ORgit co [name of the branch you want to switch to]Making sure changes on master appear in your branchgit rebase masterMerging a branch back into the master branchFirst, switch back to the master branch:git co masterCheck to see what changes you’re about to merge together, compare the two branches:git diff master xyzIf you’re in a branch that’s not the xyz branch and want to merge the xyz branch into it:git merge xyzReverting changes to before said mergegit reset --hard ORIG_HEADResolving conflictsRemove the markings, add the file, then commit.Creating a branch (and switching to the new branch) in one linegit checkout -b [name of new branch]Creating a stash (like a clipboard) of changes to allow you to switch branches withoutcommittinggit stash save "Put a message here to remind you of what youre saving to the clipboard"Switching from the current branch to anothergit co [branch you want to switch to]Do whateverThen switch back to the stashed branchgit co [the stashed branch]Viewing a list of stashesgit stash listLoading back the stashgit stash applyNow you can continue to work where you were previously.Deleting a branch (that has been merged back at some point)git branch -d [name of branch you want to delete]Deleting an unmerged branchgit branch -D [name of branch you want to delete]Deleting a stashgit stash clear
  4. 4. Setting up a repository for use on a remote serverCopy up your repository. e.g.:scp -r my_project your files on the remote server to /var/git/my_projectFor security make the owner of this project gitOn the repository server:sudo chown -R git:git my_projectThen (for security) restrict the “deploy” user to doing git-related things in /etc/passwd with agit-shell .Checking out a git repository from a remote to your local storagegit clone extra info about a remote repositorycat .git/configBy virtue of having cloned the remote repository, your local repository becomes the slave andwill track and synchronize with the remote master branch.Updating a local branch from the remote servergit pullDownloading a copy of an entire repository (e.g. laptop) without merging into your localbranchgit fetch laptopMerging two local branches (ie. your local xyz branch with your local master branch) USEMERGEgit merge laptop/xyzThis merged the (already copied laptop repository’s xyz branch) with the current branch you’resitting in.Viewing metadata about a remote repositorygit remote show laptopPushing a committed local change from one local branch to another remote branchgit push laptop xyzCreating a tracking branch (i.e. to link a local branch to a remote branch)git branch --track local_branch remote_branchYou do not need to specify the local branch if you are already sitting in it.git pullNote: You can track(link) different local branches to different remote machines. For example,you can track your friend’s “upgrade” branch with your “bobs_upgrade” branch, andsimultaneously you can track the origin’s “master” branch (of your main webserver) with yourlocal “master” branch.By convention, ‘origin’ is the local name given to the remote centralized server which is the waySVN is usually set up on a remote server.Seeing which local branches are tracking a remote branchgit remote show originWorking with a remote Subversion repository (but with git locally)git-svn clone [http location of an svn repository]Now you can work with the checked out directory as though it was a git repository. (cuz it is)Pushing (committing) changes to a remote Subversion repositorygit-svn dcommitUpdating a local git repository from a remote Subversion repository
  5. 5. git-svn rebaseNOTE: make sure you have your perl bindings to your local svn installation.I screwed up, how do I reset my checkout?git checkout -fSee also Git for computer scientists. Git user’s manual Git Magic Git Cheat Sheets Collection on GitHub Tools Extras About GitHub for Mac Shop Blog Gist The Octodex Contact & Support GitHub Enterprise Training Job Board Site Status Terms of Service Privacy Security © 2012 GitHub Inc. All rights reserved.