Some Useful Git Commands

Since I started blogging in English, I think I can translate some useful posts even they were written a few years ago. It’s a translation of the same post in Russian

I’m tired to blog the same so I created this blog post to have everything in one place.

Set username/email for git:

$ git config --global user.email "e0ne@e0ne.info" $ git config --global user.name "e0ne" You can omit to set it global and it will be set only for the current repository.

Set upstream branch

$ git branch --set-upstream master upstream/master

Chage the last commit

$ git commit --amend -a

Change the author of several commits


$ git filter-branch –commit-filter ‘
        if [ “$GIT_COMMITTER_NAME” = “” ];
        then
                GIT_COMMITTER_NAME=””;
                GIT_AUTHOR_NAME=””;
                GIT_COMMITTER_EMAIL=””;
                GIT_AUTHOR_EMAIL=””;
                git commit-tree “$@”;
        else
                git commit-tree “$@”;
        fi’ HEAD
$ git push

Mark merge conflics as resolved

$ git add file

Rollback local commits

reset –soft HEAD^

Move tag to another commit

I hope you will NOT do it but if you need, you can do it in a following way: $ git tag -d ver_0.1 $ git push origin :refs/tags/ver_0.1

The best git manual

http://git-scm.com/book

My .gitconfig

It’s a bit outdated, I have to update it: https://github.com/e0ne/dot-files/blob/master/.gitconfig

My global .gitignore

https://github.com/e0ne/dot-files/blob/master/.gitignore

Create brach from tag

$ git checkout -b branchname tag

Pull remote changes and revert all local changes

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

Clean working directory: remove all untracked files ad directories

$ git clean -f -d

Tags

.net .net-framework .net-framework-3.5 agile ajax ajax-control-toolkit ampq ansible apache asp.net asp.net-mvc automation axum babel bash benchmark blog blog-engine bootstrap buildout c# cache centos chrome ci cinder ckan cli cloud code-review codeplex community config debugger deface dependencies development-environment devices devstack devtime disks django dlr dns docker dockerimage dos easy_install elmah encoding environment-variables error event events everything-as-a-code exception exceptions fabrik firefox flask foreach forms fstab gae gcc gerrit git github go google google-app-engine grep hack hacked hardware headless horizon hound html hugo iaas ienumerable iis internet iptables iron-python ironic iscsi java-script javascript jenkins jquery js jsx kharkivpy kiss kombu kvm kyiv lettuce libvirt linux lio loci logging loopback losetup lvm mac-os macos mercurial microsoft microsoft-sync-framework mobile mono ms-office msbuild networking news nginx npm npx offtopic oop open-source open-xml opensource openstack openvswitch os packages paraller-development patterns-practices performance php pika pip plugins pnp podcast popup postgresql profiler project protocols proxy pycamp pycharm pycon pykyiv pylint pypi python python-3 qcow quantum qumy rabbitmq rar react reactjs refactoring rfc rhel search-engine security selenium server shell silverlight socket software-engineering source-control sourcegear-vault sources sql sql-server sql-server-express sqlalchemy ssh static-site sublimetext svg tests tgt tipfy tornado typescript uapycon ui uneta unit-tests upgrades usability vim virtualenv visual-studio vitrage vm vue.js vuejs web-development web-server web-service web_root webpack webroot windows windows-live word-press x32 x64 xcode xml xss xvfb интернет-магазин книги


Archives

2019 (73)
2018 (2)
2017 (3)
2016 (2)
2015 (3)
2014 (5)
2013 (17)
2012 (22)
2011 (35)
2010 (25)
2009 (35)
2008 (32)
2007 (2)