Project

General

Profile

Common git operations » History » Revision 15

Revision 14 (cryptogopher, 2020-07-10 02:47) → Revision 15/18 (cryptogopher, 2020-07-10 02:47)

h1. Common git operations 

 {{>toc}} 

 Prerequisites: 
 <pre> 
 cd ~/plugins/issue_recurring 
 </pre> 

 h2. Issue/pull request resolution in separate branch 

 h3. Create separate branch for issue 

 # Checkout and update master: 
 <pre> 
 $ git checkout master 
 $ git pull 
 </pre> 
 # Create, checkout new branch and push it to remote (so it will be tracked and replicated on it.michalczyk.pro): 
 <pre> 
 $ git checkout -b issueN 
 $ git push -u origin issueN 
 </pre> 
 # Reload all files open in vim: 
 <pre> 
 :bufdo! e 
 </pre> 

 h3. Merge issue/pull request branch into master 

 # Push uncommited changes on issue branch. 
 # Checkout and update master: 
 <pre> 
 $ git checkout master 
 $ git pull 
 </pre> 
 # Merge adding comment _closes #N_ (for issue branch), optionally view commits and push issueN/prN branch: 
 <pre> 
 $ git merge issueN 
 $ git log origin/master..HEAD 
 $ git push 
 </pre> 
 # Delete merged branch from local and remote: 
 <pre> 
 $ git branch -d issueN 
 $ git push origin :issueN 
 </pre> 
 # Verify: 
 <pre> 
 $ git branch -a 
 </pre> 

 h2. Pull requests 

 h3. Checkout pull request locally (for editing, testing etc.) 

 # Fetch pull request based on its number into new branch and switch to new branch: 
 <pre> 
 $ git fetch origin pull/N/head:prN 
 $ git checkout prN 
 </pre> 
 # (optionally) Push newly created branch: 
 <pre> 
 git push -u origin prN 
 </pre> 

 h2. Release 

 h3. Move tag to different commit (e.g. after fixing some mistake) 

 # Remove tag from remote (if it has been pushed): 
 <pre> 
 git push origin :refs/tags/1.3 
 </pre> 
 # Force replacement of existing tag with one referencing most recent commit: 
 <pre> 
 git tag -fa 1.3 
 </pre> 
 # Push: 
 <pre> 
 git push origin 1.3 
 </pre>