git_notes
Table of Contents
workflow
Updating feature branch with the latest development branch
tags | bring feature branch up to date with development branch
Situation 1:
- User 1 raised a merge request to merge feature1 to development branch
- Before the merge request is accepted, development branch is updated by User 2
Situation 2:
- Say you forked from development branch a while ago to work on a feature and created a branch called “feature1”.
- After a while, development branch might have progressed and may have new changes added to it.
Task:
- Bring the feature1 branch up to date with the latest development branch.
Solution:
Get the latest versions of development and feature branches in the local repository.
git checkout development git pull git checkout feature1 git pull
Merge development branch into the feature branch and resolve any conflicts that may arise.
git merge development
Push the changes to the remote.
git push
Note:- The “git merge development” command works even if you have local changes not committed to feature1.
Tasks
Initializing git for version control
git config --global user.name "Kamaraju S. Kusumanchi" git config --global user.email "kamaraju@gmail.com" git config --global push.default matching git config --global alias.co checkout git init
Ref:- https://codemy.com/git
dummy
git resources
- https://learngitbranching.js.org/ - Very good resource to learn git branching.
stackoverflow answers I came across
- ignore all directories with a specific name - https://stackoverflow.com/questions/1470572/ignoring-any-bin-directory-on-a-git-project
show which branch is linked to which remote branch
rename a branch that has already been pushed
tags | change the remote branch name
show contents of a deleted file
git show HEAD^:full/path/to/file/from/top/dir/of/the/repository
See also:
- https://stackoverflow.com/questions/1395445/viewing-a-deleted-file-in-git - I got the answer from here. It also contains a few other alternate solutions.
git grep commands
dokuwiki table syntax
git grep -i --all-match -e '\^.*\^' -e '|.*|'
Count number of lines in a file but exclude blank lines
git grep -e "^" --and --not -e "^$" <file_name> | wc -l
For example:
$ git grep -e "^" --and --not -e "^$" dummy_1510.txt | wc -l 27
Commits related
amend last commit
export EDITOR=vim git commit --amend --author="Kamaraju S. Kusumanchi <kamaraju@gmail.com>" git config user.email "kamaraju@gmail.com" git config --get-all --show-scope user.email git config --get-all --show-origin user.email
Configuration related
configuration files
- https://git-scm.com/docs/git-config#FILES - talks about which files 'git config' reads from. High information density. Easy to understand.
git commands usage
git cherry-pick
git cherry-pick <Commit1> <Commit2> <...>
Ref:-
- https://learngitbranching.js.org/ → Moving Work Around → 1: Cherry-pick Intro
frequently used
newly created repo
git config user.name "Kamaraju S. Kusumanchi" git config user.email "kamaraju@gmail.com"
pull related
for git $\geq$ 2.23.0
git -c advice.detachedHead=false pull --rebase --autostash -v origin
for git $\leq$ 2.20.1
git pull --rebase --autostash -v origin
used in | https://github.com/KamarajuKusumanchi/rutils/blob/master/bin/git-up
git_notes.txt · Last modified: 2023/05/05 14:55 by admin