Git Brancher
by Johan Vandeplas
HTML
<label for="blessed">Target Branch</label>
<input type="text" name="blessed" value="RC" />
<label for="ticket">Ticket</label>
<input type="text" name="ticket" value="feature/CERES-3488" />
<label for="newBranchCommitMergeToDev">New Branch Commit Merge To Dev</label>
<div class="textarea" contentEditable="true" name="newBranchCommitMergeToDev"></div>
<label for="commitMergeToDev">commit Merge To Dev</label>
<div class="textarea" contentEditable="true" name="commitMergeToDev"></div>
<label for="checkoutPullAndPullBlessed">Checkout Pull Blessed</label>
<div class="textarea" contentEditable="true" name="checkoutPullAndPullBlessed"></div>
<label for="renameRemote">Rename Remote</label>
<input type="text" name="oldName" value="oldName" />
<div class="textarea" contentEditable="true" name="renameRemote"></div>
CSS
label, input, .textarea {
font-family: monospace;
display: block;
clear: both;
width: calc(100% - 10px);
margin: 5px;
}
.textarea {
display:inline-block;
border: solid 1px #AAA;
padding: 2px 1px;
}
JavaScript
$('[name=ticket], [name=oldName], [name=blessed]').on('keyup', function () {
var ticket = $('[name=ticket]').val(),
oldName = $('[name=oldName]').val(),
blessed= $('[name=blessed]').val();
var newBranchCommitMergeToDev = [
"git checkout -b " + ticket + ";",
"git commit -am '" + ticket + "';",
"git push --set-upstream origin " + ticket + ";",
"git push;",
"stash pull-request " + ticket + " "+blessed+";",
"git checkout develop;",
"git pull;",
"git merge --no-ff --no-edit " + ticket + ";",
"git push;",
"git checkout "+blessed+";",
"git pull;"].join(' ');
var commitMergeToDev = [
"git commit -am '" + ticket + "';",
"git push;",
"git checkout develop;",
"git pull;",
"git merge --no-ff --no-edit " + ticket + ";",
"git push;",
"git checkout "+blessed+";",
"git pull;"].join(' ');
var checkoutPullAndPullBlessed = [
"git checkout " + ticket + ";",
"git pull;",
"git pull --no-edit origin "+blessed+";"].join(' ');
var renameRemote = [
"git branch " + ticket + " origin/" + oldName + ";",
"git push origin --set-upstream " + ticket + ";",
"git push origin :" + oldName + ";"].join(' ');
$('[name=newBranchCommitMergeToDev]').text(newBranchCommitMergeToDev);
$('[name=commitMergeToDev]').text(commitMergeToDev);
$('[name=checkoutPullAndPullBlessed]').text(checkoutPullAndPullBlessed);
$('[name=renameRemote]').text(renameRemote);
});