git tricks
rebase -i
- drop
- move
- rename
- merge
- edit list of files
pick 8eb8793 Connect: reset registration form on load
pick b317be9 Connect: fix unit tests
pick da8bc4a Connect: fix add site test
pick ec1703a Connect: fix e2e tests
# Rebase d5fade4..ec1703a onto d5fade4 (4 command(s))
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out
push --force-with-lease
- check if someone else has pushed to the branch
- reject if (s)he does
- allow otherwise
reflog
ec1703a HEAD@{0}: rebase -i (finish): returning to refs/heads/feature/CC-356-unify-validation-and-localization
ec1703a HEAD@{1}: rebase -i (start): checkout HEAD~4
ec1703a HEAD@{2}: rebase -i (finish): returning to refs/heads/feature/CC-356-unify-validation-and-localization
ec1703a HEAD@{3}: rebase -i (start): checkout HEAD~4
ec1703a HEAD@{4}: commit: Connect: fix e2e tests
da8bc4a HEAD@{5}: commit: Connect: fix add site test
b317be9 HEAD@{6}: commit: Connect: fix unit tests
8eb8793 HEAD@{7}: commit: Connect: reset registration form on load
d5fade4 HEAD@{8}: reset: moving to HEAD~1
ea3b549 HEAD@{9}: commit: Connect: reset registration form on load
d5fade4 HEAD@{10}: commit: Connect: handle form reset in tuple
0935c85 HEAD@{11}: commit: Connect: connect input and label
22b27af HEAD@{12}: merge develop: Merge made by the 'recursive' strategy.
58ce01b HEAD@{13}: checkout: moving from develop to feature/CC-356-unify-validation-and-localization
4bc834c HEAD@{14}: rebase finished: returning to refs/heads/develop
4bc834c HEAD@{15}: pull --rebase origin: checkout 4bc834cf1599240e21ec57858c954cb7622852b6
8b29039 HEAD@{16}: checkout: moving from feature/CC-356-unify-validation-and-localization to develop
58ce01b HEAD@{17}: commit: Connect: reset study id form when loaded
ad60a76 HEAD@{18}: checkout: moving from feature/CC-387-when-user-adds-study-and-is-redir to feature/CC-356-unify-validation-and-localization
959930e HEAD@{19}: checkout: moving from feature/CC-356-unify-validation-and-localization to feature/CC-387-when-user-adds-study-and-is-redir
ad60a76 HEAD@{20}: commit: Connect: turn on backend validation on most of the forms
b339bc1 HEAD@{21}: commit: Connect: make criteria tab looking better
e4185dd HEAD@{22}: commit: Connect: fix study select hiding
f9641f6 HEAD@{23}: commit: Connect: fix physician study tabs
7106cb2 HEAD@{24}: commit: Connect: try to fix some tests
91c615e HEAD@{25}: commit: Connect: fix form errors
0f8cf47 HEAD@{26}: commit: Connect: fix tests for password change
Log of ANY operation
- merge
- rebase
- stash
- commit
- checkout
Undo any operation!
reset
Accidental commit?
git reset HEAD~1
Want to start from scratch?
git reset --hard
Something is really screwed up and you want to make sure your local branch is equal to remote one?
git reset --hard origin my-branch
status -s
Quick preview of changes
M __nightwatch__/physician/tour/finish.js
D __nightwatch__/physician/tour/selectors.js
M __nightwatch__/physician/tour/skip.js
M __nightwatch__/physician/tour/skipForever.js
?? __nightwatch__/physician/tour/close.js
?? __nightwatch__/physician/tour/next.js
?? __nightwatch__/physician/tour/prev.js
?? __nightwatch__/physician/tour/utils.js
Instead of
On branch feature/CC-468-physician-fix-quicktour
Your branch is behind 'origin/feature/CC-468-physician-fix-quicktour' by 1 commit, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: __nightwatch__/physician/tour/finish.js
deleted: __nightwatch__/physician/tour/selectors.js
modified: __nightwatch__/physician/tour/skip.js
modified: __nightwatch__/physician/tour/skipForever.js
Untracked files:
(use "git add <file>..." to include in what will be committed)
__nightwatch__/physician/tour/close.js
__nightwatch__/physician/tour/next.js
__nightwatch__/physician/tour/prev.js
__nightwatch__/physician/tour/utils.js
no changes added to commit (use "git add" and/or "git commit -a")
clean -f
On branch feature/CC-468-physician-fix-quicktour
Your branch is up-to-date with 'origin/feature/CC-468-physician-fix-quicktour'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
01_some
02_rubbish
03_files
04_like
05_npm-error.log.124435
06_temporary-fieles-of-each-kind
07_porn-you-downloaded-to-repo-dir-by-accident
nothing added to commit but untracked files present (use "git add" to track)
Even better with a little script!
Cleaning
Would remove 01_some
Would remove 02_rubbish
Would remove 03_files
Would remove 04_like
Would remove 05_npm-error.log.124435
Would remove 06_temporary-fieles-of-each-kind
Would remove 07_porn-you-downloaded-to-repo-dir-by-accident
Proceed?
1) Yes 2) No
?#
git branch -vvv(a)
remote prune origin
* develop 23d2b51 [origin/develop] Merge branch 'feature/CC-558_Physician_Referring_patient_updating_textss' into develop CC-558
referring patients new texts merge
feature/CC-404-backend 3d76678 [origin/feature/CC-404-backend: gone] Connect: wait for button before trying to click
feature/CC-447 84b9632 Connect: fix redirection to add study screen when list is not loaded yet
feature/CC-450-physician-fix-account-setup-setti 80ad0ed [origin/feature/CC-450-physician-fix-account-setup-setti: behind 40] Connect: update dependencies correctly
feature/CC-468-physician-fix-quicktour 0387023 [origin/feature/CC-468-physician-fix-quicktour] Connect: fix styles for tour elements
feature/CC-485-site-simplify-study-left-sidebar 18012f3 [origin/feature/CC-485-site-simplify-study-left-sidebar] Connect: use this.assert instead of standalone one
feature/CC-492-site-improve-physician-right-side 4f0df87 [origin/feature/CC-492-site-improve-physician-right-side] Connect: fixes after review
feature/CC-510-remove-underscores-from-fixtures c9c545b [origin/feature/CC-510-remove-underscores-from-fixtures] Merged in feature/CC-494-investigator-settings-click-c
lick (pull request #240)
feature/CC-513-merge-two-login-pages-into-one ff354d4 [origin/feature/CC-513-merge-two-login-pages-into-one: gone] Connect: make var
feature/CC-526-site-when-user-want-to-delete-add 814cc92 [origin/feature/CC-526-site-when-user-want-to-delete-add] Connect: use letters generator from util
feature/CC-529-edit-site-button-is-available-whe fd0bce0 [origin/feature/CC-529-edit-site-button-is-available-whe] Connect: check if site exists before showing edit sit
e button
feature/CC-566-physiciansite-incorrect-color-of- 2a024de [origin/feature/CC-566-physiciansite-incorrect-color-of-] Connect: make all secondary buttons neutral
feature/CC-form-validation-tests 6b60ce3 [origin/feature/CC-form-validation-tests] Connect: create custom command for testing field validation
feature/cc-registersite-uifixes 079a1a1 [origin/feature/cc-registersite-uifixes] Connect: autogenerate input id
$ git remote prune origin
Pruning origin
URL: git@bitbucket.org:clinworkconnect/apps.git
* [pruned] origin/feature/CC-446-physician-while-referring-patient
* [pruned] origin/feature/CC-483-physician-allow-editing-physician
* [pruned] origin/feature/CC-485-site-simplify-study-left-sidebar
* [pruned] origin/feature/CC-492-site-improve-physician-right-side
* [pruned] origin/feature/CC-526-site-when-user-want-to-delete-add
* [pruned] origin/feature/CC-529-edit-site-button-is-available-whe
* [pruned] origin/feature/CC-536-site-allow-editing-sites-details-
* [pruned] origin/feature/CC-558_Physician_Referring_patient_updating_textss
To prune local branches... script!
Removing branches...
feature/CC-404-backend
feature/CC-485-site-simplify-study-left-sidebar
feature/CC-492-site-improve-physician-right-side
feature/CC-513-merge-two-login-pages-into-one
feature/CC-526-site-when-user-want-to-delete-add
feature/CC-529-edit-site-button-is-available-whe
Proceed?
1) Yes 2) No
?# 1
Removing in progress...
Deleted branch feature/CC-404-backend (was 3d76678).
Deleted branch feature/CC-485-site-simplify-study-left-sidebar (was 18012f3).
Deleted branch feature/CC-492-site-improve-physician-right-side (was 4f0df87).
Deleted branch feature/CC-513-merge-two-login-pages-into-one (was ff354d4).
Deleted branch feature/CC-526-site-when-user-want-to-delete-add (was 814cc92).
Deleted branch feature/CC-529-edit-site-button-is-available-whe (was fd0bce0).
All branches removed!
log
if you like colorful trees...
like this
or this
or that
git log --graph --pretty=format:"%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset" --abbrev-commit --date=relative
log --follow
track changes of given file
$ git log --follow package.json
commit 91d00768300e331bea4169f51a2ecde492cf8685
Author: Eryk Napierała <eryk.piast@gmail.com>
Date: Fri Sep 30 10:11:32 2016 +0000
Connect: fix webpack exit code
commit 971c384afb4e407afa7ee021588d3d0a6c7f3614
Author: przemyslaw <przemyslaw.jan.pietrzak@gmail.com>
Date: Thu Sep 29 15:39:32 2016 +0200
freeze new lib
commit 23553b7f3a2d8d0b92b1a106f04ca80013927b3f
Author: przemyslaw <przemyslaw.jan.pietrzak@gmail.com>
Date: Thu Sep 29 15:04:40 2016 +0200
fix redirect after set persona data
commit 17542887874e83badb4f548f303b27a90ac27280
Author: p.olejak <p.olejak@clinwork.com>
Date: Mon Sep 19 09:41:21 2016 +0200
Unmodifying package.json changes
commit b49681c425c7feda632a5b8d4eab4f8c48cf3215
Author: p.olejak <p.olejak@clinwork.com>
Date: Fri Sep 16 11:10:17 2016 +0200
eslint
git clone --single-branch --depth=1
$ git clone git://github.com/django/django.git
Cloning into 'django'...
remote: Counting objects: 369928, done.
remote: Compressing objects: 100% (21/21), done.
remote: Total 369928 (delta 5), reused 0 (delta 0), pack-reused 369907
Receiving objects: 100% (369928/369928), 141.83 MiB | 209.00 KiB/s, done.
Resolving deltas: 100% (269558/269558), done.
Checking connectivity... done.
$ git clone --single-branch --depth=1 git://github.com/django/django.git
Cloning into 'django'...
remote: Counting objects: 7783, done.
remote: Compressing objects: 100% (4847/4847), done.
remote: Total 7783 (delta 1893), reused 5618 (delta 1724), pack-reused 0
Receiving objects: 100% (7783/7783), 8.68 MiB | 260.00 KiB/s, done.
Resolving deltas: 100% (1893/1893), done.
Checking connectivity... done.
git checkout -p
$ git diff file.txt
It's a content of the file
- asdasdasdadasdad
+ It's a good change
- And this is not
+ dassadadaadasda dsad
$ git checkout -p file.txt
y - discard this hunk from worktree
n - do not discard this hunk from worktree
q - quit; do not discard this hunk or any of the remaining ones
a - discard this hunk and all later hunks in the file
d - do not discard this hunk or any of the later hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help
@@ -xxx,y +xxx,z @@
It's a content of the file
- asdasdasdadasdad
+ It's a good change
Discard this hunk from worktree [y,n,q,a,d,/,K,j,J,g,e,?]?
$ git diff file.txt
It's a content of the file
- asdasdasdadasdad
+ It's a good change
Discover git
By Eryk Napierała
Discover git
- 1,785