Whenever you do git pull and you find some files modified locally as part of build and want to overwrite it with the contents in the git repository.
git checkout HEAD^ file/to/overwrite
git pull
To checkout a new git branch and to create a new git branch and checkout
git checkout <branch>
git checkout -b <branch>
To delete a remote branch and local branch
git push –delete origin bugfix/
git branch -d bugfix/
To copy a directory without its history and add as a new folder in git
cp -R old_dir new_dir
git add new_dir
git commit -m "first revision of new_dir's copied files"
Creating a diff file
git diff > 1.patch
Applying a git generated patch file
git apply 1.patch
Saving your changes while checking out a branch
git stash save
if you have to save again
git stash save
stash@{1} – older changes…newest will become stash{0}
git stash list – lists all stash
git stash drop
stash@{0} dropped. stash@{1} will become stash@{0}
git stash apply stash@{2} – to apply changelist in stash{2}
git stash drop stash@{2} – to drop the changelist in stash{2}
git stash pop - To get everything back
git checkout -b newbranch
git stash pop
git stash pop - Restore back to the saved state, but it deletes the stash from the temporary storage.
git stash apply - Restore back to the saved state and leaves the stash list for possible later reuse. Need to use below command to drop them.
git stash drop
git stash apply 1 is equal to git stash@{1} apply
To rename a git local branch
Use -m option to rename a branch. Here I forgot to add bugfix/ prefix int he branch name. So -m command helped me to add it.
git checkout bugfix-branch
git branch -m bugfix/bugfix-branch
To cherry pick a pull request
Create a new branch form the origin branch where you want to add the fix.
git branch cherry-branch origin/master
switch to the new branch
git checkout cherry-branch
Cheery pick the commit using commit id.
Use git log to find the commit id.
git cherry-pick COMMIT-ID
Push the new branch to your fork
git push origin cherry-branch
- References
- http://blog.asquareb.com/blog/2014/06/19/making-a-git-pull-request-for-specific-commits/
To Backport changes
To fetch all upstream changes
git fetch –all
create the cherrypick branch from the branch intended to check-in
git branch my_cherrypick_branch rel/release_branch_to_checkin
checkout temporary cherry pick branch
git checkout my_cherrypick_branch
cherry pick the commit
git cherry-pick dc4264056167c7ef9d496b276e9f2699d1b91106
push the cherry pick branch to upstream.
git push –set-upstream origin my_cherrypick_branch
Now create the pull requests.
to download again the artifact
git lfs uninstall
git pull
git lfs install
git lfs checkout