Git notes

From I Will Fear No Evil
Jump to navigation Jump to search

General git commands that are useful

Change git remote:

With or without ssh keys added to your user account..

git remote set-url origin git@gitlab01.iwillfearnoevil.com:monitoring/nmsui.git
or:
git remote set-url origin https://gitlab01.iwillfearnoevil.com/monitoring/nmsui.git

Sort git branches by last commit

git for-each-ref --sort=committerdate refs/heads/ --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(color:red)%(objectname:short)%(color:reset) - %(contents:subject) - %(authorname) (%(color:green)%(committerdate:relative)%(color:reset))'

Show git commit hashes for each branch sorted by date

git for-each-ref --sort=-committerdate refs/heads/

Do a git diff between two branches

git diff <branch>..origin/<branch2>

Update Submodules

pull-latest-changes-for-all-git-submodules

git submodule update --recursive --init
git submodule update --recursive --remote

Checkout specific commit hash

This can be useful when the hash is not in the expected branch, or when you are in a detached head state

git clone [remote_address_here] my_repo
cd my_repo
git reset --hard [ENTER HERE THE COMMIT HASH YOU WANT]

Change submodule URL

This is very much a hammer way of doing this. I have seen elegant ways online, but they seem inconsistent when something goes wrong. This way is reproducible as far as I am concerned.

This example assumes that directory/ is where your submodule lives.

edit .gitmodule
change values
rm -rf directory/
git submodule update --init --recursive --remote
cd into directory/
git pull whatever submodule branch you need
cd ..
git add -A
git commit -m 'save new submodule changes'
git push

Save image in README.md on github.com

Per: Stackoverflow

Works:


Very Simple : Can be done using Ctrl + C/V

Most of the answers here directly or indirectly involve uploading the image somewhere else & then providing a link to it.

It can be done very simply by just copying any image and pasting it while editing Readme.md

    Copying the image - You can just click on the image file and use Ctrl + C or may copy the screenshot image to your clipboard using the snipping tool
    You can then simply do Ctrl + V while editing Readme.md

Guithub will automatically upload it to user-images.githubusercontent.com and a link to it will be inserted there

Change remote URL

Change Git remote URL

git remote set-url origin new.git.url/here

Clean up local orphan branches

When you have branches locally present that have been merged on the remote server this works to clean out your local repo.

If there are still some that you want to keep, add in a 'git -v "someName"' before xargs

remove tracking branches no longer on remote

git branch --merged | grep -v "\*" | xargs -n 1 git branch -d