From 028da4a0c3527ecc463ec8bfc69757cc90c4a9f6 Mon Sep 17 00:00:00 2001 From: Aditya Harsh Date: Thu, 7 Jul 2016 19:12:54 +0530 Subject: [PATCH 001/108] Add tip to use common diff tools --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 98ca3f2..8e15921 100644 --- a/README.md +++ b/README.md @@ -78,6 +78,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Fetch pull request by ID to a local branch](#fetch-pull-request-by-id-to-a-local-branch) * [Show the most recent tag on the current branch.](#show-the-most-recent-tag-on-the-current-branch) * [Show inline word diff.](#show-inline-word-diff) +* [Show changes using common diff tools.](#show-changes-using-common-diff-tools) * [Don’t consider changes for tracked file.](#dont-consider-changes-for-tracked-file) * [Undo assume-unchanged.](#undo-assume-unchanged) * [Clean the files from `.gitignore`.](#clean-the-files-from-gitignore) @@ -634,6 +635,11 @@ git describe --tags --abbrev=0 git diff --word-diff ``` +## Show changes using common diff tools. +```sh +git difftool -t +``` + ## Don’t consider changes for tracked file. ```sh git update-index --assume-unchanged diff --git a/tips.json b/tips.json index 3c1bcab..d730120 100644 --- a/tips.json +++ b/tips.json @@ -238,6 +238,9 @@ }, { "title": "Show inline word diff.", "tip": "git diff --word-diff" +}, { + "title": "Show changes using common diff tools.", + "tip": "git difftool -t " }, { "title": "Don’t consider changes for tracked file.", "tip": "git update-index --assume-unchanged " From d764ab75165c3e4ac3d703d70093df7f9d9fec7a Mon Sep 17 00:00:00 2001 From: S N Munendra Date: Sat, 16 Jul 2016 13:33:32 +0530 Subject: [PATCH 002/108] Add git shortlog git shortlog summaries git log output. Each commit is grouped by authors and title. --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 8e15921..7f80a6d 100644 --- a/README.md +++ b/README.md @@ -127,6 +127,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Force push to Remote Repository](#force-push-to-remote-repository) * [Adding Remote name](#adding-remote-name) * [Show the author, time and last revision made to each line of a given file](#show-the-author-time-and-last-revision-made-to-each-line-of-a-given-file) +* [Group commits by authors and title](#group-commits-by-authors-and-title) @@ -892,5 +893,10 @@ git remote add git blame ``` +## Group commits by authors and title +```sh +git shortlog +``` + diff --git a/tips.json b/tips.json index d730120..ea1779b 100644 --- a/tips.json +++ b/tips.json @@ -386,4 +386,7 @@ }, { "title": "Show the author, time and last revision made to each line of a given file", "tip": "git blame " +}, { + "title": "Group commits by authors and title", + "tip": "git shortlog" }] From 89e9fa678c89989de364f76764f89459bcd1d7ca Mon Sep 17 00:00:00 2001 From: xueweihan <595666367@qq.com> Date: Sat, 23 Jul 2016 10:35:37 +0800 Subject: [PATCH 003/108] Import Chinese version --- README.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 7f80a6d..b81459f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ ## git-tips > Collection of `git-tips`, want to add your tips? Checkout [contributing.md](./contributing.md) +[English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) + P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. @@ -353,7 +355,7 @@ git branch --contains ## Git Aliases ```sh -git config --global alias. +git config --global alias. git config --global alias.st status ``` @@ -517,7 +519,7 @@ __Alternatives:__ git branch -m [] ``` -## rebases 'feature' to 'master' and merges it in to master +## rebases 'feature' to 'master' and merges it in to master ```sh git checkout feature && git rebase @{-1} && git checkout @{-2} && git merge @{-1} ``` @@ -798,12 +800,12 @@ git checkout master && git branch --no-merged ## Find guilty with binary search ```sh -git bisect start # Search start -git bisect bad # Set point to bad commit -git bisect good v2.6.13-rc2 # Set point to good commit|tag -git bisect bad # Say current state is bad -git bisect good # Say current state is good -git bisect reset # Finish search +git bisect start # Search start +git bisect bad # Set point to bad commit +git bisect good v2.6.13-rc2 # Set point to good commit|tag +git bisect bad # Say current state is bad +git bisect good # Say current state is good +git bisect reset # Finish search ``` From 3c17588d846e04cffcc94bf4c91d48dc426774fc Mon Sep 17 00:00:00 2001 From: nirajpandkar Date: Sun, 31 Jul 2016 18:22:27 +0530 Subject: [PATCH 004/108] Capitalized the first letter of certain words --- README.md | 34 +++++++++++++++++----------------- tips.json | 10 +++++----- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index b81459f..9ab3cf1 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Update all the submodules](#update-all-the-submodules) * [Show all commits in the current branch yet to be merged to master](#show-all-commits-in-the-current-branch-yet-to-be-merged-to-master) * [Rename a branch](#rename-a-branch) -* [rebases 'feature' to 'master' and merges it in to master ](#rebases-feature-to-master-and-merges-it-in-to-master) +* [Rebases 'feature' to 'master' and merges it in to master ](#rebases-feature-to-master-and-merges-it-in-to-master) * [Archive the `master` branch](#archive-the-master-branch) * [Modify previous commit without modifying the commit message](#modify-previous-commit-without-modifying-the-commit-message) * [Prunes references to remote branches that have been deleted in the remote.](#prunes-references-to-remote-branches-that-have-been-deleted-in-the-remote) @@ -94,13 +94,13 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Check if the change was a part of a release.](#check-if-the-change-was-a-part-of-a-release) * [Dry run. (any command that supports dry-run flag should do.)](#dry-run-any-command-that-supports-dry-run-flag-should-do) * [Marks your commit as a fix of a previous commit.](#marks-your-commit-as-a-fix-of-a-previous-commit) -* [squash fixup commits normal commits.](#squash-fixup-commits-normal-commits) -* [skip staging area during commit.](#skip-staging-area-during-commit) +* [Squash fixup commits normal commits.](#squash-fixup-commits-normal-commits) +* [Skip staging area during commit.](#skip-staging-area-during-commit) * [Interactive staging.](#interactive-staging) * [List ignored files.](#list-ignored-files) * [Status of ignored files.](#status-of-ignored-files) * [Commits in Branch1 that are not in Branch2](#commits-in-branch1-that-are-not-in-branch2) -* [reuse recorded resolution, record and reuse previous conflicts resolutions.](#reuse-recorded-resolution-record-and-reuse-previous-conflicts-resolutions) +* [Reuse recorded resolution, record and reuse previous conflicts resolutions.](#reuse-recorded-resolution-record-and-reuse-previous-conflicts-resolutions) * [Open all conflicted files in an editor.](#open-all-conflicted-files-in-an-editor) * [Count unpacked number of objects and their disk consumption.](#count-unpacked-number-of-objects-and-their-disk-consumption) * [Prune all unreachable objects from the object database.](#prune-all-unreachable-objects-from-the-object-database) @@ -119,7 +119,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Create and switch new branch](#create-and-switch-new-branch) * [Ignore file mode changes on commits](#ignore-file-mode-changes-on-commits) * [Turn off git colored terminal output](#turn-off-git-colored-terminal-output) -* [specific color settings](#specific-color-settings) +* [Specific color settings](#specific-color-settings) * [Show all local branches ordered by recent commits](#show-all-local-branches-ordered-by-recent-commits) * [Find lines matching the pattern (regex or string) in tracked files](#find-lines-matching-the-pattern-regex-or-string-in-tracked-files) * [Clone a shallow copy of a repository](#clone-a-shallow-copy-of-a-repository) @@ -355,7 +355,7 @@ git branch --contains ## Git Aliases ```sh -git config --global alias. +git config --global alias. git config --global alias.st status ``` @@ -519,7 +519,7 @@ __Alternatives:__ git branch -m [] ``` -## rebases 'feature' to 'master' and merges it in to master +## Rebases 'feature' to 'master' and merges it in to master ```sh git checkout feature && git rebase @{-1} && git checkout @{-2} && git merge @{-1} ``` @@ -708,12 +708,12 @@ git clean -fd --dry-run git commit --fixup ``` -## squash fixup commits normal commits. +## Squash fixup commits normal commits. ```sh git rebase -i --autosquash ``` -## skip staging area during commit. +## Skip staging area during commit. ```sh git commit --only ``` @@ -738,7 +738,7 @@ git status --ignored git log Branch1 ^Branch2 ``` -## reuse recorded resolution, record and reuse previous conflicts resolutions. +## Reuse recorded resolution, record and reuse previous conflicts resolutions. ```sh git config --global rerere.enabled 1 ``` @@ -800,12 +800,12 @@ git checkout master && git branch --no-merged ## Find guilty with binary search ```sh -git bisect start # Search start -git bisect bad # Set point to bad commit -git bisect good v2.6.13-rc2 # Set point to good commit|tag -git bisect bad # Say current state is bad -git bisect good # Say current state is good -git bisect reset # Finish search +git bisect start # Search start +git bisect bad # Set point to bad commit +git bisect good v2.6.13-rc2 # Set point to good commit|tag +git bisect bad # Say current state is bad +git bisect good # Say current state is good +git bisect reset # Finish search ``` @@ -845,7 +845,7 @@ git config core.fileMode false git config --global color.ui false ``` -## specific color settings +## Specific color settings ```sh git config --global ``` diff --git a/tips.json b/tips.json index ea1779b..08550e3 100644 --- a/tips.json +++ b/tips.json @@ -183,7 +183,7 @@ "tip": "git branch -m ", "alternatives": ["git branch -m [] "] }, { - "title": "rebases 'feature' to 'master' and merges it in to master ", + "title": "Rebases 'feature' to 'master' and merges it in to master ", "tip": "git checkout feature && git rebase @{-1} && git checkout @{-2} && git merge @{-1}" }, { "title": "Archive the `master` branch", @@ -281,10 +281,10 @@ "title": "Marks your commit as a fix of a previous commit.", "tip": "git commit --fixup " }, { - "title": "squash fixup commits normal commits.", + "title": "Squash fixup commits normal commits.", "tip": "git rebase -i --autosquash" }, { - "title": "skip staging area during commit.", + "title": "Skip staging area during commit.", "tip": "git commit --only " }, { "title": "Interactive staging.", @@ -299,7 +299,7 @@ "title": "Commits in Branch1 that are not in Branch2", "tip": "git log Branch1 ^Branch2" }, { - "title": "reuse recorded resolution, record and reuse previous conflicts resolutions.", + "title": "Reuse recorded resolution, record and reuse previous conflicts resolutions.", "tip": "git config --global rerere.enabled 1" }, { "title": "Open all conflicted files in an editor.", @@ -357,7 +357,7 @@ "title": "Turn off git colored terminal output", "tip": "git config --global color.ui false" },{ - "title": "specific color settings", + "title": "Specific color settings", "tip": "git config --global " },{ "title": "Show all local branches ordered by recent commits", From 275ff62454faa748931627b9b128f9b5c0600e10 Mon Sep 17 00:00:00 2001 From: nirajpandkar Date: Wed, 10 Aug 2016 22:02:02 +0530 Subject: [PATCH 005/108] added gtip CLI link --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 9ab3cf1..76a4fab 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,8 @@ [English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) +[gtip](https://github.com/nirajpandkar/gtip) - A handy CLI to make optimum use of these tips. + P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. From 7c9f3c88c579d8bdba6b6c9363c75477b2b268cb Mon Sep 17 00:00:00 2001 From: weirdpattern Date: Wed, 10 Aug 2016 13:08:56 -0500 Subject: [PATCH 006/108] git push --force-with-lease tip --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 9ab3cf1..2ca8f50 100644 --- a/README.md +++ b/README.md @@ -130,6 +130,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Adding Remote name](#adding-remote-name) * [Show the author, time and last revision made to each line of a given file](#show-the-author-time-and-last-revision-made-to-each-line-of-a-given-file) * [Group commits by authors and title](#group-commits-by-authors-and-title) +* [Forced push but still ensure you don't overwrite other's work](#forced-push-but-still-ensure-you-dont-overwrite-others-work) @@ -900,5 +901,10 @@ git blame git shortlog ``` +## Forced push but still ensure you don't overwrite other's work +```sh +git push --force-with-lease +``` + diff --git a/tips.json b/tips.json index 08550e3..75dd558 100644 --- a/tips.json +++ b/tips.json @@ -389,4 +389,7 @@ }, { "title": "Group commits by authors and title", "tip": "git shortlog" +}, { + "title": "Forced push but still ensure you don't overwrite other's work", + "tip": "git push --force-with-lease " }] From 19e49a97e1f2fe28320cf6d79c0f40d9f7292088 Mon Sep 17 00:00:00 2001 From: nirajpandkar Date: Thu, 11 Aug 2016 11:25:16 +0530 Subject: [PATCH 007/108] changed the name of the module --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 76a4fab..69ae8e2 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) -[gtip](https://github.com/nirajpandkar/gtip) - A handy CLI to make optimum use of these tips. +[git-tip](https://www.npmjs.com/package/git-tip) - A handy CLI to make optimum use of these tips. P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. From 4f94e6733eb86af05f78b9d7c30839aca21b223e Mon Sep 17 00:00:00 2001 From: nirajpandkar Date: Thu, 11 Aug 2016 11:41:59 +0530 Subject: [PATCH 008/108] added Tools subcategory --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 69ae8e2..1e58e8e 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,9 @@ [English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) -[git-tip](https://www.npmjs.com/package/git-tip) - A handy CLI to make optimum use of these tips. +### Tools + +* [git-tip](https://www.npmjs.com/package/git-tip) - A handy CLI to make optimum use of these tips. P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. From debac552398de728b5689c841a623e9d640bb20e Mon Sep 17 00:00:00 2001 From: nirajpandkar Date: Thu, 11 Aug 2016 12:05:19 +0530 Subject: [PATCH 009/108] format changes --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1e58e8e..6f4dace 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) -### Tools +### __Tools:__ * [git-tip](https://www.npmjs.com/package/git-tip) - A handy CLI to make optimum use of these tips. From bfb1379951634c73183368f28eec5670d1ae3dc7 Mon Sep 17 00:00:00 2001 From: Changlang Kuang Date: Fri, 12 Aug 2016 19:04:12 +0800 Subject: [PATCH 010/108] add: Show how many lines does an author contribute (#121) --- README.md | 14 ++++++++++++++ tips.json | 4 ++++ 2 files changed, 18 insertions(+) diff --git a/README.md b/README.md index c3c31a8..fcf5404 100644 --- a/README.md +++ b/README.md @@ -135,6 +135,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Show the author, time and last revision made to each line of a given file](#show-the-author-time-and-last-revision-made-to-each-line-of-a-given-file) * [Group commits by authors and title](#group-commits-by-authors-and-title) * [Forced push but still ensure you don't overwrite other's work](#forced-push-but-still-ensure-you-dont-overwrite-others-work) +* [Show how many lines does an author contribute](#show-how-many-lines-does-an-author-contribute) @@ -910,5 +911,18 @@ git shortlog git push --force-with-lease ``` +## Show how many lines does an author contribute +```sh +git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | gawk '{ add += ; subs += ; loc += - } END { printf "added lines: %s removed lines: %s total lines: %s +", add, subs, loc }' - +``` + + +__Alternatives:__ +```sh +git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | awk '{ add += ; subs += ; loc += - } END { printf "added lines: %s, removed lines: %s, total lines: %s +", add, subs, loc }' - # on Mac OSX +``` + diff --git a/tips.json b/tips.json index 75dd558..85c762d 100644 --- a/tips.json +++ b/tips.json @@ -392,4 +392,8 @@ }, { "title": "Forced push but still ensure you don't overwrite other's work", "tip": "git push --force-with-lease " +},{ + "title": "Show how many lines does an author contribute", + "tip": "git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | gawk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf \"added lines: %s removed lines: %s total lines: %s\n\", add, subs, loc }' -", + "alternatives": ["git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf \"added lines: %s, removed lines: %s, total lines: %s\n\", add, subs, loc }' - # on Mac OSX"] }] From d155ea094e281b1a7755f89896d2071f4aacd77d Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 13 Aug 2016 12:30:43 +0300 Subject: [PATCH 011/108] Add alternatives "Git reset first commit" (#111) --- README.md | 6 ++++++ tips.json | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index fcf5404..e456f6f 100644 --- a/README.md +++ b/README.md @@ -168,6 +168,12 @@ git ls-tree --name-only -r git update-ref -d HEAD ``` + +__Alternatives:__ +```sh +git reset --hard HEAD +``` + ## List all the conflicted files ```sh git diff --name-only --diff-filter=U diff --git a/tips.json b/tips.json index 85c762d..183a8d6 100644 --- a/tips.json +++ b/tips.json @@ -12,7 +12,8 @@ "tip": "git ls-tree --name-only -r " }, { "title": "Git reset first commit", - "tip": "git update-ref -d HEAD" + "tip": "git update-ref -d HEAD", + "alternatives": ["git reset --hard HEAD"] }, { "title": "List all the conflicted files", "tip": "git diff --name-only --diff-filter=U" From 81040e9500815384677c8068c7e1283576b59c1e Mon Sep 17 00:00:00 2001 From: S N Munendra Date: Sun, 14 Aug 2016 20:36:13 +0530 Subject: [PATCH 012/108] count commits in a branch (#122) --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index e456f6f..9eb4aed 100644 --- a/README.md +++ b/README.md @@ -136,6 +136,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Group commits by authors and title](#group-commits-by-authors-and-title) * [Forced push but still ensure you don't overwrite other's work](#forced-push-but-still-ensure-you-dont-overwrite-others-work) * [Show how many lines does an author contribute](#show-how-many-lines-does-an-author-contribute) +* [Number of commits in a branch](#number-of-commits-in-a-branch) @@ -930,5 +931,10 @@ git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | awk '{ add += ", add, subs, loc }' - # on Mac OSX ``` +## Number of commits in a branch +```sh +git rev-list --count +``` + diff --git a/tips.json b/tips.json index 183a8d6..ff32f8c 100644 --- a/tips.json +++ b/tips.json @@ -397,4 +397,7 @@ "title": "Show how many lines does an author contribute", "tip": "git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | gawk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf \"added lines: %s removed lines: %s total lines: %s\n\", add, subs, loc }' -", "alternatives": ["git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf \"added lines: %s, removed lines: %s, total lines: %s\n\", add, subs, loc }' - # on Mac OSX"] +},{ + "title": "Number of commits in a branch", + "tip": "git rev-list --count " }] From 9f75591eef3fca1f1fee0c9c94324aadad738194 Mon Sep 17 00:00:00 2001 From: "Hemanth.HM" Date: Sat, 13 Aug 2016 18:11:04 +0000 Subject: [PATCH 013/108] fixes #118 --- README.md | 2 +- tips.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9eb4aed..13a8c4f 100644 --- a/README.md +++ b/README.md @@ -683,7 +683,7 @@ git checkout -- ## Always rebase instead of merge on pull. ```sh -git config --global branch.autosetuprebase always +git config --global pull.rebase true ``` ## List all the alias and configs. diff --git a/tips.json b/tips.json index ff32f8c..c01fedf 100644 --- a/tips.json +++ b/tips.json @@ -259,7 +259,7 @@ "tip": "git checkout -- " }, { "title": "Always rebase instead of merge on pull.", - "tip": "git config --global branch.autosetuprebase always" + "tip": "git config --global pull.rebase true" }, { "title": "List all the alias and configs.", "tip": "git config --list" From 3357955baa48d9c78304e8fe5858f4ebf158a913 Mon Sep 17 00:00:00 2001 From: "Hemanth.HM" Date: Mon, 15 Aug 2016 23:43:07 +0530 Subject: [PATCH 014/108] Fixed #117 --- README.md | 2 +- tips.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 13a8c4f..fd4eb42 100644 --- a/README.md +++ b/README.md @@ -534,7 +534,7 @@ git branch -m [] ## Rebases 'feature' to 'master' and merges it in to master ```sh -git checkout feature && git rebase @{-1} && git checkout @{-2} && git merge @{-1} +git rebase master feature && git checkout master && git merge - ``` ## Archive the `master` branch diff --git a/tips.json b/tips.json index c01fedf..0d63138 100644 --- a/tips.json +++ b/tips.json @@ -185,7 +185,7 @@ "alternatives": ["git branch -m [] "] }, { "title": "Rebases 'feature' to 'master' and merges it in to master ", - "tip": "git checkout feature && git rebase @{-1} && git checkout @{-2} && git merge @{-1}" + "tip": "git rebase master feature && git checkout master && git merge -" }, { "title": "Archive the `master` branch", "tip": "git archive master --format=zip --output=master.zip" From 08096c7c71429ac044a90bbd43f67aef13a91102 Mon Sep 17 00:00:00 2001 From: "Hemanth.HM" Date: Sun, 14 Aug 2016 18:14:08 +0000 Subject: [PATCH 015/108] fixes #58 --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index fd4eb42..95bdcac 100644 --- a/README.md +++ b/README.md @@ -136,6 +136,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Group commits by authors and title](#group-commits-by-authors-and-title) * [Forced push but still ensure you don't overwrite other's work](#forced-push-but-still-ensure-you-dont-overwrite-others-work) * [Show how many lines does an author contribute](#show-how-many-lines-does-an-author-contribute) +* [Revert: Reverting an entire merge](#revert-reverting-an-entire-merge) * [Number of commits in a branch](#number-of-commits-in-a-branch) @@ -931,6 +932,11 @@ git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | awk '{ add += ", add, subs, loc }' - # on Mac OSX ``` +## Revert: Reverting an entire merge +```sh +git revert -m 1 +``` + ## Number of commits in a branch ```sh git rev-list --count diff --git a/tips.json b/tips.json index 0d63138..0c35cd8 100644 --- a/tips.json +++ b/tips.json @@ -397,6 +397,9 @@ "title": "Show how many lines does an author contribute", "tip": "git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | gawk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf \"added lines: %s removed lines: %s total lines: %s\n\", add, subs, loc }' -", "alternatives": ["git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf \"added lines: %s, removed lines: %s, total lines: %s\n\", add, subs, loc }' - # on Mac OSX"] +},{ + "title": "Revert: Reverting an entire merge", + "tip": "git revert -m 1 " },{ "title": "Number of commits in a branch", "tip": "git rev-list --count " From 9d7a837add968948a0d86a5c2e08d47871ac9871 Mon Sep 17 00:00:00 2001 From: Gianluca Casati Date: Fri, 26 Aug 2016 13:41:30 +0200 Subject: [PATCH 016/108] added alias: git undo (#123) Credits to [Enrico Campidoglio](http://megakemp.com/about/), see [original article](http://megakemp.com/2016/08/25/git-undo/). --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 95bdcac..fd0f084 100644 --- a/README.md +++ b/README.md @@ -138,6 +138,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Show how many lines does an author contribute](#show-how-many-lines-does-an-author-contribute) * [Revert: Reverting an entire merge](#revert-reverting-an-entire-merge) * [Number of commits in a branch](#number-of-commits-in-a-branch) +* [Alias: git undo](#alias-git-undo) @@ -942,5 +943,10 @@ git revert -m 1 git rev-list --count ``` +## Alias: git undo +```sh +git config --global alias.undo '!f() { git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; }; f' +``` + diff --git a/tips.json b/tips.json index 0c35cd8..4aff636 100644 --- a/tips.json +++ b/tips.json @@ -403,4 +403,7 @@ },{ "title": "Number of commits in a branch", "tip": "git rev-list --count " +},{ + "title": "Alias: git undo", + "tip": "git config --global alias.undo '!f() { git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; }; f'" }] From dca76041d8e3c7181b26c2bdbff31c837852a82d Mon Sep 17 00:00:00 2001 From: "Hemanth.HM" Date: Mon, 29 Aug 2016 10:54:26 +0530 Subject: [PATCH 017/108] wrong alternatives were removed --- README.md | 6 ------ tips.json | 3 +-- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/README.md b/README.md index fd0f084..adab0cf 100644 --- a/README.md +++ b/README.md @@ -171,12 +171,6 @@ git ls-tree --name-only -r git update-ref -d HEAD ``` - -__Alternatives:__ -```sh -git reset --hard HEAD -``` - ## List all the conflicted files ```sh git diff --name-only --diff-filter=U diff --git a/tips.json b/tips.json index 4aff636..2d07351 100644 --- a/tips.json +++ b/tips.json @@ -12,8 +12,7 @@ "tip": "git ls-tree --name-only -r " }, { "title": "Git reset first commit", - "tip": "git update-ref -d HEAD", - "alternatives": ["git reset --hard HEAD"] + "tip": "git update-ref -d HEAD" }, { "title": "List all the conflicted files", "tip": "git diff --name-only --diff-filter=U" From 9007100789a3650457de12a9e15b671bd3f538c6 Mon Sep 17 00:00:00 2001 From: "Hemanth.HM" Date: Sat, 24 Sep 2016 23:10:03 +0530 Subject: [PATCH 018/108] git-notes --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index adab0cf..0cb9173 100644 --- a/README.md +++ b/README.md @@ -139,6 +139,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Revert: Reverting an entire merge](#revert-reverting-an-entire-merge) * [Number of commits in a branch](#number-of-commits-in-a-branch) * [Alias: git undo](#alias-git-undo) +* [Add object notes](#add-object-notes) @@ -942,5 +943,10 @@ git rev-list --count git config --global alias.undo '!f() { git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; }; f' ``` +## Add object notes +```sh +git notes add -m 'Note on the previous commit....' +``` + diff --git a/tips.json b/tips.json index 2d07351..2745894 100644 --- a/tips.json +++ b/tips.json @@ -405,4 +405,7 @@ },{ "title": "Alias: git undo", "tip": "git config --global alias.undo '!f() { git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; }; f'" +}, { + "title": "Add object notes", + "tip": "git notes add -m 'Note on the previous commit....'" }] From 814bafcaa2f044217bdc91ad34f2cbc90cab98d3 Mon Sep 17 00:00:00 2001 From: "Hemanth.HM" Date: Sat, 24 Sep 2016 23:11:34 +0530 Subject: [PATCH 019/108] show all the git-notes --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 0cb9173..ca7e964 100644 --- a/README.md +++ b/README.md @@ -140,6 +140,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Number of commits in a branch](#number-of-commits-in-a-branch) * [Alias: git undo](#alias-git-undo) * [Add object notes](#add-object-notes) +* [Show all the git-notes](#show-all-the-git-notes) @@ -948,5 +949,10 @@ git config --global alias.undo '!f() { git reset --hard $(git rev-parse --abbrev git notes add -m 'Note on the previous commit....' ``` +## Show all the git-notes +```sh +git log --show-notes='*' +``` + diff --git a/tips.json b/tips.json index 2745894..54bc4ef 100644 --- a/tips.json +++ b/tips.json @@ -408,4 +408,7 @@ }, { "title": "Add object notes", "tip": "git notes add -m 'Note on the previous commit....'" +}, { + "title": "Show all the git-notes", + "tip": "git log --show-notes='*'" }] From 59de6a8b8070c7720dfd50e6c5279429e993c21d Mon Sep 17 00:00:00 2001 From: Steve Bink Date: Wed, 28 Sep 2016 12:13:13 -0400 Subject: [PATCH 020/108] Apply commit from another repository (#124) --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index ca7e964..08fea5b 100644 --- a/README.md +++ b/README.md @@ -141,6 +141,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Alias: git undo](#alias-git-undo) * [Add object notes](#add-object-notes) * [Show all the git-notes](#show-all-the-git-notes) +* [Apply commit from another repository](#apply-commit-from-another-repository) @@ -954,5 +955,10 @@ git notes add -m 'Note on the previous commit....' git log --show-notes='*' ``` +## Apply commit from another repository +```sh +git --git-dir=/.git format-patch -k -1 --stdout | git am -3 -k +``` + diff --git a/tips.json b/tips.json index 54bc4ef..89e877a 100644 --- a/tips.json +++ b/tips.json @@ -411,4 +411,7 @@ }, { "title": "Show all the git-notes", "tip": "git log --show-notes='*'" +}, { + "title": "Apply commit from another repository", + "tip": "git --git-dir=/.git format-patch -k -1 --stdout | git am -3 -k" }] From d2bf9e8c6343acdb3791072f79235f94789a6d3b Mon Sep 17 00:00:00 2001 From: Steve Binkowski Date: Wed, 28 Sep 2016 12:37:48 -0400 Subject: [PATCH 021/108] Find common ancestor of two branches --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 08fea5b..171d9a0 100644 --- a/README.md +++ b/README.md @@ -142,6 +142,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Add object notes](#add-object-notes) * [Show all the git-notes](#show-all-the-git-notes) * [Apply commit from another repository](#apply-commit-from-another-repository) +* [Find common ancestor of two branches](#find-common-ancestor-of-two-branches) @@ -960,5 +961,10 @@ git log --show-notes='*' git --git-dir=/.git format-patch -k -1 --stdout | git am -3 -k ``` +## Find common ancestor of two branches +```sh +diff -u <(git rev-list --first-parent BranchA) <(git rev-list --first-parent BranchB) | sed -ne 's/^ //p' | head -1 +``` + diff --git a/tips.json b/tips.json index 89e877a..781e03a 100644 --- a/tips.json +++ b/tips.json @@ -414,4 +414,7 @@ }, { "title": "Apply commit from another repository", "tip": "git --git-dir=/.git format-patch -k -1 --stdout | git am -3 -k" +}, { + "title": "Find common ancestor of two branches", + "tip": "diff -u <(git rev-list --first-parent BranchA) <(git rev-list --first-parent BranchB) | sed -ne 's/^ //p' | head -1" }] From c42ade5ba4f8b40d12b6a9846311d507ff475691 Mon Sep 17 00:00:00 2001 From: "Hemanth.HM" Date: Sun, 2 Oct 2016 03:22:29 +0000 Subject: [PATCH 022/108] fetch ref --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 08fea5b..4443396 100644 --- a/README.md +++ b/README.md @@ -142,6 +142,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Add object notes](#add-object-notes) * [Show all the git-notes](#show-all-the-git-notes) * [Apply commit from another repository](#apply-commit-from-another-repository) +* [Specific fetch reference](#specific-fetch-reference) @@ -960,5 +961,10 @@ git log --show-notes='*' git --git-dir=/.git format-patch -k -1 --stdout | git am -3 -k ``` +## Specific fetch reference +```sh +git fetch origin master:refs/remotes/origin/mymaster +``` + diff --git a/tips.json b/tips.json index 89e877a..dca6643 100644 --- a/tips.json +++ b/tips.json @@ -414,4 +414,7 @@ }, { "title": "Apply commit from another repository", "tip": "git --git-dir=/.git format-patch -k -1 --stdout | git am -3 -k" +},{ + "title": "Specific fetch reference", + "tip": "git fetch origin master:refs/remotes/origin/mymaster" }] From 50bb41326f845ffe8ea5ab2432351f057315bab4 Mon Sep 17 00:00:00 2001 From: Ankur Kumar Date: Wed, 5 Oct 2016 15:48:35 +0530 Subject: [PATCH 023/108] Add alternative for rebase on pulls (git < 1.7.9) (#126) --- README.md | 7 +++++++ tips.json | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4443396..ce3d857 100644 --- a/README.md +++ b/README.md @@ -686,6 +686,13 @@ git checkout -- git config --global pull.rebase true ``` + +__Alternatives:__ +```sh +#git < 1.7.9 +git config --global branch.autosetuprebase always +``` + ## List all the alias and configs. ```sh git config --list diff --git a/tips.json b/tips.json index dca6643..4bc19e9 100644 --- a/tips.json +++ b/tips.json @@ -258,7 +258,8 @@ "tip": "git checkout -- " }, { "title": "Always rebase instead of merge on pull.", - "tip": "git config --global pull.rebase true" + "tip": "git config --global pull.rebase true", + "alternatives" : ["#git < 1.7.9\ngit config --global branch.autosetuprebase always"] }, { "title": "List all the alias and configs.", "tip": "git config --list" From a7cb20ee0f6afe7aab23a2de1e96dda55d22b745 Mon Sep 17 00:00:00 2001 From: "Hemanth.HM" Date: Sun, 9 Oct 2016 18:14:08 +0000 Subject: [PATCH 024/108] List unpushed git commits. --- README.md | 17 +++++++++++++++++ tips.json | 4 ++++ 2 files changed, 21 insertions(+) diff --git a/README.md b/README.md index 22f0676..8785d7b 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Apply commit from another repository](#apply-commit-from-another-repository) * [Specific fetch reference](#specific-fetch-reference) * [Find common ancestor of two branches](#find-common-ancestor-of-two-branches) +* [List unpushed git commits](#list-unpushed-git-commits) @@ -979,5 +980,21 @@ git fetch origin master:refs/remotes/origin/mymaster diff -u <(git rev-list --first-parent BranchA) <(git rev-list --first-parent BranchB) | sed -ne 's/^ //p' | head -1 ``` +## List unpushed git commits +```sh +git log --branches --not --remotes +``` + + +__Alternatives:__ +```sh +git log @{u}.. +``` + + +```sh +git cherry -v +``` + diff --git a/tips.json b/tips.json index c4cd799..0d44021 100644 --- a/tips.json +++ b/tips.json @@ -421,4 +421,8 @@ }, { "title": "Find common ancestor of two branches", "tip": "diff -u <(git rev-list --first-parent BranchA) <(git rev-list --first-parent BranchB) | sed -ne 's/^ //p' | head -1" +}, { + "title": "List unpushed git commits", + "tip": "git log --branches --not --remotes", + "alternatives": ["git log @{u}..", "git cherry -v"] }] From 318484a77fef7aeed58d1d04f0acbe85a7f3a73b Mon Sep 17 00:00:00 2001 From: "Hemanth.HM" Date: Mon, 24 Oct 2016 21:40:06 +0530 Subject: [PATCH 025/108] add everything but whitespace changes --- README.md | 6 ++++++ tips.json | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8785d7b..7d46cdb 100644 --- a/README.md +++ b/README.md @@ -145,6 +145,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Specific fetch reference](#specific-fetch-reference) * [Find common ancestor of two branches](#find-common-ancestor-of-two-branches) * [List unpushed git commits](#list-unpushed-git-commits) +* [Add everything, but whitespace changes](#add-everything-but-whitespace-changes) @@ -996,5 +997,10 @@ git log @{u}.. git cherry -v ``` +## Add everything, but whitespace changes +```sh +git diff --ignore-all-space | git apply --cached +``` + diff --git a/tips.json b/tips.json index 0d44021..fcd7e7c 100644 --- a/tips.json +++ b/tips.json @@ -425,4 +425,7 @@ "title": "List unpushed git commits", "tip": "git log --branches --not --remotes", "alternatives": ["git log @{u}..", "git cherry -v"] -}] +}, { + "title": "Add everything, but whitespace changes", + "tip": "git diff --ignore-all-space | git apply --cached" +}] \ No newline at end of file From 6886c2c8f639816b2688e796a94c3a7a44949b1b Mon Sep 17 00:00:00 2001 From: "Hemanth.HM" Date: Sun, 30 Oct 2016 14:41:20 +0000 Subject: [PATCH 026/108] edit git config --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 7d46cdb..4b6f118 100644 --- a/README.md +++ b/README.md @@ -146,6 +146,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Find common ancestor of two branches](#find-common-ancestor-of-two-branches) * [List unpushed git commits](#list-unpushed-git-commits) * [Add everything, but whitespace changes](#add-everything-but-whitespace-changes) +* [Edit [local/global] git config](#edit-localglobal-git-config) @@ -1002,5 +1003,10 @@ git cherry -v git diff --ignore-all-space | git apply --cached ``` +## Edit [local/global] git config +```sh +git config [--global] --edit +``` + diff --git a/tips.json b/tips.json index fcd7e7c..e508888 100644 --- a/tips.json +++ b/tips.json @@ -428,4 +428,7 @@ }, { "title": "Add everything, but whitespace changes", "tip": "git diff --ignore-all-space | git apply --cached" +}, { + "title": "Edit [local/global] git config", + "tip": "git config [--global] --edit" }] \ No newline at end of file From 9e7c67ed6c6c9afe7b3c229e7b98e7474571871b Mon Sep 17 00:00:00 2001 From: "Hemanth.HM" Date: Mon, 31 Oct 2016 21:18:46 +0530 Subject: [PATCH 027/108] blame on certain range --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 4b6f118..8281097 100644 --- a/README.md +++ b/README.md @@ -147,6 +147,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [List unpushed git commits](#list-unpushed-git-commits) * [Add everything, but whitespace changes](#add-everything-but-whitespace-changes) * [Edit [local/global] git config](#edit-localglobal-git-config) +* [blame on certain range](#blame-on-certain-range) @@ -1008,5 +1009,10 @@ git diff --ignore-all-space | git apply --cached git config [--global] --edit ``` +## blame on certain range +```sh +git blame -L , +``` + diff --git a/tips.json b/tips.json index e508888..dd299d3 100644 --- a/tips.json +++ b/tips.json @@ -431,4 +431,7 @@ }, { "title": "Edit [local/global] git config", "tip": "git config [--global] --edit" +}, { + "title": "blame on certain range", + "tip": "git blame -L ," }] \ No newline at end of file From 37d2ef123c91bb981ddb861624a2238b354c3677 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 28 Nov 2016 01:35:33 +0300 Subject: [PATCH 028/108] Fixing git bash completion script URL. http://git.io/vfhol This URL leads to the needful script via redirect. When I do `$ curl http://git.io/vfhol` (on OSX, at least), it fetches redirect info: ```sh You are being redirected. ``` When I set curl option to -L (--location), everything works properly. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8281097..6456e72 100644 --- a/README.md +++ b/README.md @@ -336,7 +336,7 @@ git add -p ## Get git bash completion ```sh -curl http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc +curl -L http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc ``` ## What changed since two weeks? From 16b9349d48ff564a51743878c7de65ab0b6be648 Mon Sep 17 00:00:00 2001 From: "Hemanth.HM" Date: Mon, 12 Dec 2016 20:16:32 +0530 Subject: [PATCH 029/108] show a Git logical variable. --- README.md | 8 +++++++- tips.json | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6456e72..57829c3 100644 --- a/README.md +++ b/README.md @@ -148,6 +148,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Add everything, but whitespace changes](#add-everything-but-whitespace-changes) * [Edit [local/global] git config](#edit-localglobal-git-config) * [blame on certain range](#blame-on-certain-range) +* [Show a Git logical variable.](#show-a-git-logical-variable) @@ -336,7 +337,7 @@ git add -p ## Get git bash completion ```sh -curl -L http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc +curl http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc ``` ## What changed since two weeks? @@ -1014,5 +1015,10 @@ git config [--global] --edit git blame -L , ``` +## Show a Git logical variable. +```sh +git var -l | +``` + diff --git a/tips.json b/tips.json index dd299d3..34deda9 100644 --- a/tips.json +++ b/tips.json @@ -434,4 +434,7 @@ }, { "title": "blame on certain range", "tip": "git blame -L ," +}, { + "title": "Show a Git logical variable.", + "tip":"git var -l | " }] \ No newline at end of file From 5d23b75504901dfe9bbb212db9eac65bbad75805 Mon Sep 17 00:00:00 2001 From: "Hemanth.HM" Date: Sun, 25 Dec 2016 21:23:02 +0530 Subject: [PATCH 030/108] format-patch --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 57829c3..c52cb06 100644 --- a/README.md +++ b/README.md @@ -149,6 +149,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Edit [local/global] git config](#edit-localglobal-git-config) * [blame on certain range](#blame-on-certain-range) * [Show a Git logical variable.](#show-a-git-logical-variable) +* [Preformatted patch file.](#preformatted-patch-file) @@ -1020,5 +1021,10 @@ git blame -L , git var -l | ``` +## Preformatted patch file. +```sh +git format-patch -M upstream..topic +``` + diff --git a/tips.json b/tips.json index 34deda9..cc95b68 100644 --- a/tips.json +++ b/tips.json @@ -437,4 +437,7 @@ }, { "title": "Show a Git logical variable.", "tip":"git var -l | " +}, { + "title": "Preformatted patch file.", + "tip": "git format-patch -M upstream..topic" }] \ No newline at end of file From e88ee1e1c9be3a22c3e3fdb7f22088eff85268d2 Mon Sep 17 00:00:00 2001 From: "Hemanth.HM" Date: Sun, 8 Jan 2017 17:53:01 +0530 Subject: [PATCH 031/108] Get the repo name. --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index c52cb06..ce7e45c 100644 --- a/README.md +++ b/README.md @@ -150,6 +150,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [blame on certain range](#blame-on-certain-range) * [Show a Git logical variable.](#show-a-git-logical-variable) * [Preformatted patch file.](#preformatted-patch-file) +* [Get the repo name.](#get-the-repo-name) @@ -1026,5 +1027,10 @@ git var -l | git format-patch -M upstream..topic ``` +## Get the repo name. +```sh +git rev-parse --show-toplevel +``` + diff --git a/tips.json b/tips.json index cc95b68..5aae461 100644 --- a/tips.json +++ b/tips.json @@ -440,4 +440,7 @@ }, { "title": "Preformatted patch file.", "tip": "git format-patch -M upstream..topic" +}, { + "title": "Get the repo name.", + "tip": "git rev-parse --show-toplevel" }] \ No newline at end of file From e6bbc5941883dafe711d156b2a4b0672dc611a8b Mon Sep 17 00:00:00 2001 From: "Hemanth.HM" Date: Mon, 16 Jan 2017 22:04:23 +0530 Subject: [PATCH 032/108] logs between date range --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index ce7e45c..24a4ebe 100644 --- a/README.md +++ b/README.md @@ -151,6 +151,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Show a Git logical variable.](#show-a-git-logical-variable) * [Preformatted patch file.](#preformatted-patch-file) * [Get the repo name.](#get-the-repo-name) +* [logs between date range](#logs-between-date-range) @@ -1032,5 +1033,10 @@ git format-patch -M upstream..topic git rev-parse --show-toplevel ``` +## logs between date range +```sh +git log --since='FEB 1 2017' --until='FEB 14 2017' +``` + diff --git a/tips.json b/tips.json index 5aae461..2daf36a 100644 --- a/tips.json +++ b/tips.json @@ -443,4 +443,7 @@ }, { "title": "Get the repo name.", "tip": "git rev-parse --show-toplevel" +}, { + "title": "logs between date range", + "tip": "git log --since='FEB 1 2017' --until='FEB 14 2017'" }] \ No newline at end of file From 2b772cda5b8a968c856523307fa4fca821b5cad9 Mon Sep 17 00:00:00 2001 From: "Hemanth.HM" Date: Mon, 16 Jan 2017 22:07:20 +0530 Subject: [PATCH 033/108] Exclude author from logs --- README.md | 7 +++++++ tips.json | 3 +++ 2 files changed, 10 insertions(+) diff --git a/README.md b/README.md index 24a4ebe..6c76c23 100644 --- a/README.md +++ b/README.md @@ -152,6 +152,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Preformatted patch file.](#preformatted-patch-file) * [Get the repo name.](#get-the-repo-name) * [logs between date range](#logs-between-date-range) +* [Exclude author from logs](#exclude-author-from-logs) @@ -1038,5 +1039,11 @@ git rev-parse --show-toplevel git log --since='FEB 1 2017' --until='FEB 14 2017' ``` +## Exclude author from logs +```sh +git log --perl-regexp --author='^((?!excluded-author-regex).*) + +``` + diff --git a/tips.json b/tips.json index 2daf36a..d27af25 100644 --- a/tips.json +++ b/tips.json @@ -446,4 +446,7 @@ }, { "title": "logs between date range", "tip": "git log --since='FEB 1 2017' --until='FEB 14 2017'" +}, { + "title": "Exclude author from logs", + "tip": "git log --perl-regexp --author='^((?!excluded-author-regex).*)$'" }] \ No newline at end of file From 5822d83f518bb66e6be83dc2cd342477cec7a1c8 Mon Sep 17 00:00:00 2001 From: djoudi mohammed Date: Fri, 20 Jan 2017 14:28:35 +0100 Subject: [PATCH 034/108] Doc update - Link added to Docker version --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6c76c23..3f2e3f0 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ### __Tools:__ -* [git-tip](https://www.npmjs.com/package/git-tip) - A handy CLI to make optimum use of these tips. +* [git-tip](https://www.npmjs.com/package/git-tip) - A handy CLI to make optimum use of these tips. ([Here in Docker container](https://github.com/djoudi5/docker-git-tip)) P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. From 3261e1fb66764fafa81196f1c5053a08ac550bf3 Mon Sep 17 00:00:00 2001 From: "Hemanth.HM" Date: Wed, 25 Jan 2017 04:06:52 +0000 Subject: [PATCH 035/108] pull-request command --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 3f2e3f0..c762252 100644 --- a/README.md +++ b/README.md @@ -153,6 +153,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Get the repo name.](#get-the-repo-name) * [logs between date range](#logs-between-date-range) * [Exclude author from logs](#exclude-author-from-logs) +* [Generates a summary of pending changes](#generates-a-summary-of-pending-changes) @@ -1045,5 +1046,10 @@ git log --perl-regexp --author='^((?!excluded-author-regex).*) ``` +## Generates a summary of pending changes +```sh +git request-pull v1.0 https://git.ko.xz/project master:for-linus +``` + diff --git a/tips.json b/tips.json index d27af25..a9ee2df 100644 --- a/tips.json +++ b/tips.json @@ -449,4 +449,7 @@ }, { "title": "Exclude author from logs", "tip": "git log --perl-regexp --author='^((?!excluded-author-regex).*)$'" +}, { + "title": "Generates a summary of pending changes", + "tip": "git request-pull v1.0 https://git.ko.xz/project master:for-linus" }] \ No newline at end of file From 7b0e0e471c9f5e3bd0bdcae999f3d270a75a45a2 Mon Sep 17 00:00:00 2001 From: "Hemanth.HM" Date: Thu, 26 Jan 2017 17:06:30 +0530 Subject: [PATCH 036/108] ls-remote --- .vscode/settings.json | 3 +++ README.md | 6 ++++++ tips.json | 3 +++ 3 files changed, 12 insertions(+) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..4748804 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "eslint.enable": false +} \ No newline at end of file diff --git a/README.md b/README.md index c762252..ae9540c 100644 --- a/README.md +++ b/README.md @@ -154,6 +154,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [logs between date range](#logs-between-date-range) * [Exclude author from logs](#exclude-author-from-logs) * [Generates a summary of pending changes](#generates-a-summary-of-pending-changes) +* [List references in a remote repository](#list-references-in-a-remote-repository) @@ -1051,5 +1052,10 @@ git log --perl-regexp --author='^((?!excluded-author-regex).*) git request-pull v1.0 https://git.ko.xz/project master:for-linus ``` +## List references in a remote repository +```sh +git ls-remote git://git.kernel.org/pub/scm/git/git.git +``` + diff --git a/tips.json b/tips.json index a9ee2df..10eea9f 100644 --- a/tips.json +++ b/tips.json @@ -452,4 +452,7 @@ }, { "title": "Generates a summary of pending changes", "tip": "git request-pull v1.0 https://git.ko.xz/project master:for-linus" +}, { + "title":"List references in a remote repository", + "tip": "git ls-remote git://git.kernel.org/pub/scm/git/git.git" }] \ No newline at end of file From 0bc5364128d42b42eef413faac9946636c887e98 Mon Sep 17 00:00:00 2001 From: "Hemanth.HM" Date: Sun, 29 Jan 2017 15:54:27 +0530 Subject: [PATCH 037/108] Backup untracked files. --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index ae9540c..b1f09eb 100644 --- a/README.md +++ b/README.md @@ -155,6 +155,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Exclude author from logs](#exclude-author-from-logs) * [Generates a summary of pending changes](#generates-a-summary-of-pending-changes) * [List references in a remote repository](#list-references-in-a-remote-repository) +* [Backup untracked files.](#backup-untracked-files) @@ -1057,5 +1058,10 @@ git request-pull v1.0 https://git.ko.xz/project master:for-linus git ls-remote git://git.kernel.org/pub/scm/git/git.git ``` +## Backup untracked files. +```sh +git ls-files --others -i --exclude-standard | xargs zip untracked.zip +``` + diff --git a/tips.json b/tips.json index 10eea9f..5e73ee3 100644 --- a/tips.json +++ b/tips.json @@ -455,4 +455,7 @@ }, { "title":"List references in a remote repository", "tip": "git ls-remote git://git.kernel.org/pub/scm/git/git.git" +}, { + "title": "Backup untracked files.", + "tip": "git ls-files --others -i --exclude-standard | xargs zip untracked.zip" }] \ No newline at end of file From ba3cda945fb3bd0a2ae407f280513f947aa37da2 Mon Sep 17 00:00:00 2001 From: Muhammad Imangazaliev Date: Mon, 13 Feb 2017 18:03:03 +0300 Subject: [PATCH 038/108] Add link to Russian translation --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b1f09eb..82ea037 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ## git-tips > Collection of `git-tips`, want to add your tips? Checkout [contributing.md](./contributing.md) -[English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) +[English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) | [Русский](https://github.com/Imangazaliev/git-tips) ### __Tools:__ From 1274a98aba97896e4024dcadbc7ecf0c76370464 Mon Sep 17 00:00:00 2001 From: shfshanyue Date: Thu, 16 Feb 2017 10:29:36 +0800 Subject: [PATCH 039/108] Add alternative for git checkout - --- README.md | 6 ++++++ tips.json | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 82ea037..9220065 100644 --- a/README.md +++ b/README.md @@ -229,6 +229,12 @@ git branch --merged master git checkout - ``` + +__Alternatives:__ +```sh +git checkout @{-1} +``` + ## Remove branches that have already been merged with master ```sh git branch --merged master | grep -v '^\*' | xargs -n 1 git branch -d diff --git a/tips.json b/tips.json index 5e73ee3..568afc3 100644 --- a/tips.json +++ b/tips.json @@ -34,7 +34,8 @@ "tip": "git branch --merged master" }, { "title": "Quickly switch to the previous branch", - "tip": "git checkout -" + "tip": "git checkout -", + "alternatives": ["git checkout @{-1}"] }, { "title": "Remove branches that have already been merged with master", "tip": "git branch --merged master | grep -v '^\\*' | xargs -n 1 git branch -d", @@ -458,4 +459,4 @@ }, { "title": "Backup untracked files.", "tip": "git ls-files --others -i --exclude-standard | xargs zip untracked.zip" -}] \ No newline at end of file +}] From 6fd5b4b52d6221113f884d931a25b2f98ab3dbca Mon Sep 17 00:00:00 2001 From: shfshanyue Date: Tue, 21 Feb 2017 13:57:24 +0800 Subject: [PATCH 040/108] Add tip: git log -n --- README.md | 12 ++++++++++++ tips.json | 4 ++++ 2 files changed, 16 insertions(+) diff --git a/README.md b/README.md index 9220065..5f993d0 100644 --- a/README.md +++ b/README.md @@ -104,6 +104,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [List ignored files.](#list-ignored-files) * [Status of ignored files.](#status-of-ignored-files) * [Commits in Branch1 that are not in Branch2](#commits-in-branch1-that-are-not-in-branch2) +* [List n last commits](#list-n-last-commits) * [Reuse recorded resolution, record and reuse previous conflicts resolutions.](#reuse-recorded-resolution-record-and-reuse-previous-conflicts-resolutions) * [Open all conflicted files in an editor.](#open-all-conflicted-files-in-an-editor) * [Count unpacked number of objects and their disk consumption.](#count-unpacked-number-of-objects-and-their-disk-consumption) @@ -777,6 +778,17 @@ git status --ignored git log Branch1 ^Branch2 ``` +## List n last commits +```sh +git log - +``` + + +__Alternatives:__ +```sh +git log -n +``` + ## Reuse recorded resolution, record and reuse previous conflicts resolutions. ```sh git config --global rerere.enabled 1 diff --git a/tips.json b/tips.json index 568afc3..b2c216c 100644 --- a/tips.json +++ b/tips.json @@ -300,6 +300,10 @@ }, { "title": "Commits in Branch1 that are not in Branch2", "tip": "git log Branch1 ^Branch2" +}, { + "title": "List n last commits", + "tip": "git log -", + "alternatives": ["git log -n "] }, { "title": "Reuse recorded resolution, record and reuse previous conflicts resolutions.", "tip": "git config --global rerere.enabled 1" From e574325d660cdf7c1e93332226abb78084bdbe86 Mon Sep 17 00:00:00 2001 From: shfshanyue Date: Tue, 21 Feb 2017 16:35:57 +0800 Subject: [PATCH 041/108] Add tip: git stash save --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 5f993d0..d965a0e 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Git Aliases](#git-aliases) * [Saving current state of tracked files without commiting](#saving-current-state-of-tracked-files-without-commiting) * [Saving current state including untracked files](#saving-current-state-including-untracked-files) +* [Saving current state with message](#saving-current-state-with-message) * [Show list of all saved stashes](#show-list-of-all-saved-stashes) * [Apply any stash without deleting from the stashed list](#apply-any-stash-without-deleting-from-the-stashed-list) * [Apply last stashed state and delete it from stashed list](#apply-last-stashed-state-and-delete-it-from-stashed-list) @@ -414,6 +415,11 @@ __Alternatives:__ git stash save --include-untracked ``` +## Saving current state with message +```sh +git stash save +``` + ## Show list of all saved stashes ```sh git stash list diff --git a/tips.json b/tips.json index b2c216c..9fe00f9 100644 --- a/tips.json +++ b/tips.json @@ -124,6 +124,9 @@ "title": "Saving current state including untracked files", "tip": "git stash save -u", "alternatives": ["git stash save --include-untracked"] +}, { + "title": "Saving current state with message", + "tip": "git stash save " }, { "title": "Show list of all saved stashes", "tip": "git stash list" From 7d8adcb4075677045f664d814840b0aaae81bb47 Mon Sep 17 00:00:00 2001 From: Diogo Lemos Date: Wed, 22 Feb 2017 17:26:38 +0000 Subject: [PATCH 042/108] Add list all git aliases --- README.md | 12 ++++++++++++ tips.json | 4 ++++ 2 files changed, 16 insertions(+) diff --git a/README.md b/README.md index d965a0e..47dc259 100644 --- a/README.md +++ b/README.md @@ -158,6 +158,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Generates a summary of pending changes](#generates-a-summary-of-pending-changes) * [List references in a remote repository](#list-references-in-a-remote-repository) * [Backup untracked files.](#backup-untracked-files) +* [List all git aliases](#list-all-git-aliases) @@ -1087,5 +1088,16 @@ git ls-remote git://git.kernel.org/pub/scm/git/git.git git ls-files --others -i --exclude-standard | xargs zip untracked.zip ``` +## List all git aliases +```sh +git config -l | grep alias | sed 's/^alias\.//g' +``` + + +__Alternatives:__ +```sh +git config -l | grep alias | cut -d '.' -f 2 +``` + diff --git a/tips.json b/tips.json index 9fe00f9..d0ac2fe 100644 --- a/tips.json +++ b/tips.json @@ -466,4 +466,8 @@ }, { "title": "Backup untracked files.", "tip": "git ls-files --others -i --exclude-standard | xargs zip untracked.zip" +}, { + "title": "List all git aliases", + "tip": "git config -l | grep alias | sed 's/^alias\\.//g'", + "alternatives": ["git config -l | grep alias | cut -d '.' -f 2"] }] From 9dc216197a0b9e1110635d606a3a7ea4f0767b1f Mon Sep 17 00:00:00 2001 From: Diogo Lemos Date: Thu, 23 Feb 2017 10:15:03 +0000 Subject: [PATCH 043/108] Add git status short --- README.md | 6 ++++++ tips.json | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 47dc259..b3be0f2 100644 --- a/README.md +++ b/README.md @@ -159,6 +159,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [List references in a remote repository](#list-references-in-a-remote-repository) * [Backup untracked files.](#backup-untracked-files) * [List all git aliases](#list-all-git-aliases) +* [Show git status short](#show-git-status-short) @@ -1099,5 +1100,10 @@ __Alternatives:__ git config -l | grep alias | cut -d '.' -f 2 ``` +## Show git status short +```sh +git status --short --branch +``` + diff --git a/tips.json b/tips.json index d0ac2fe..a48a076 100644 --- a/tips.json +++ b/tips.json @@ -470,4 +470,8 @@ "title": "List all git aliases", "tip": "git config -l | grep alias | sed 's/^alias\\.//g'", "alternatives": ["git config -l | grep alias | cut -d '.' -f 2"] -}] +},{ + "title": "Show git status short", + "tip": "git status --short --branch" +} +] From f9ec0251aa89a88dcba1045f710fce8c679a4b5c Mon Sep 17 00:00:00 2001 From: Sina Siadat Date: Fri, 24 Feb 2017 14:19:12 +0330 Subject: [PATCH 044/108] Fetch origin, not --all --- README.md | 2 +- tips.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b3be0f2..3afcc9f 100644 --- a/README.md +++ b/README.md @@ -179,7 +179,7 @@ git help -g ## Overwrite pull ```sh -git fetch --all && git reset --hard origin/master +git fetch origin && git reset --hard origin/master ``` ## List of all files till a commit diff --git a/tips.json b/tips.json index a48a076..0f7c9e4 100644 --- a/tips.json +++ b/tips.json @@ -6,7 +6,7 @@ "tip": "git help -g" }, { "title": "Overwrite pull", - "tip": "git fetch --all && git reset --hard origin/master" + "tip": "git fetch origin && git reset --hard origin/master" }, { "title": "List of all files till a commit", "tip": "git ls-tree --name-only -r " From c8abe4cc13d1ed340525d1dab18a65b29f0d343f Mon Sep 17 00:00:00 2001 From: Diogo Lemos Date: Fri, 24 Feb 2017 11:29:18 +0000 Subject: [PATCH 045/108] Add stash of unstaged changes to tracked files --- README.md | 17 +++++++++++++++++ tips.json | 4 ++++ 2 files changed, 21 insertions(+) diff --git a/README.md b/README.md index 3afcc9f..b7e549b 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Find out branches containing commit-hash](#find-out-branches-containing-commit-hash) * [Git Aliases](#git-aliases) * [Saving current state of tracked files without commiting](#saving-current-state-of-tracked-files-without-commiting) +* [Saving current state of unstaged changes to tracked files](#saving-current-state-of-unstaged-changes-to-tracked-files) * [Saving current state including untracked files](#saving-current-state-including-untracked-files) * [Saving current state with message](#saving-current-state-with-message) * [Show list of all saved stashes](#show-list-of-all-saved-stashes) @@ -406,6 +407,22 @@ __Alternatives:__ git stash save ``` +## Saving current state of unstaged changes to tracked files +```sh +git stash -k +``` + + +__Alternatives:__ +```sh +git stash --keep-index +``` + + +```sh +git stash save --keep-index +``` + ## Saving current state including untracked files ```sh git stash save -u diff --git a/tips.json b/tips.json index 0f7c9e4..ab99a12 100644 --- a/tips.json +++ b/tips.json @@ -120,6 +120,10 @@ "title": "Saving current state of tracked files without commiting", "tip": "git stash", "alternatives": ["git stash save"] +}, { + "title": "Saving current state of unstaged changes to tracked files", + "tip": "git stash -k", + "alternatives": ["git stash --keep-index", "git stash save --keep-index"] }, { "title": "Saving current state including untracked files", "tip": "git stash save -u", From 3fe8a233c09e7c2ed1878c00f9acd34bf636aecb Mon Sep 17 00:00:00 2001 From: Diogo Lemos Date: Fri, 24 Feb 2017 11:38:44 +0000 Subject: [PATCH 046/108] Add stash all --- README.md | 17 +++++++++++++++++ tips.json | 4 ++++ 2 files changed, 21 insertions(+) diff --git a/README.md b/README.md index b7e549b..cad7841 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Saving current state of unstaged changes to tracked files](#saving-current-state-of-unstaged-changes-to-tracked-files) * [Saving current state including untracked files](#saving-current-state-including-untracked-files) * [Saving current state with message](#saving-current-state-with-message) +* [Saving current state of all files (ignored, untracked, and tracked)](#saving-current-state-of-all-files-ignored-untracked-and-tracked) * [Show list of all saved stashes](#show-list-of-all-saved-stashes) * [Apply any stash without deleting from the stashed list](#apply-any-stash-without-deleting-from-the-stashed-list) * [Apply last stashed state and delete it from stashed list](#apply-last-stashed-state-and-delete-it-from-stashed-list) @@ -439,6 +440,22 @@ git stash save --include-untracked git stash save ``` +## Saving current state of all files (ignored, untracked, and tracked) +```sh +git stash -a +``` + + +__Alternatives:__ +```sh +git stash --all +``` + + +```sh +git stash save --all +``` + ## Show list of all saved stashes ```sh git stash list diff --git a/tips.json b/tips.json index ab99a12..2693d2b 100644 --- a/tips.json +++ b/tips.json @@ -131,6 +131,10 @@ }, { "title": "Saving current state with message", "tip": "git stash save " +}, { + "title": "Saving current state of all files (ignored, untracked, and tracked)", + "tip": "git stash -a", + "alternatives": ["git stash --all", "git stash save --all"] }, { "title": "Show list of all saved stashes", "tip": "git stash list" From e849a6f24a4ddaeeccc1595992fb87cddc99bc11 Mon Sep 17 00:00:00 2001 From: Diogo Lemos Date: Fri, 24 Feb 2017 11:44:13 +0000 Subject: [PATCH 047/108] No need for git stash save --- README.md | 7 ++++++- tips.json | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index cad7841..f0bc850 100644 --- a/README.md +++ b/README.md @@ -426,11 +426,16 @@ git stash save --keep-index ## Saving current state including untracked files ```sh -git stash save -u +git stash -u ``` __Alternatives:__ +```sh +git stash save -u +``` + + ```sh git stash save --include-untracked ``` diff --git a/tips.json b/tips.json index 2693d2b..16b56eb 100644 --- a/tips.json +++ b/tips.json @@ -126,8 +126,8 @@ "alternatives": ["git stash --keep-index", "git stash save --keep-index"] }, { "title": "Saving current state including untracked files", - "tip": "git stash save -u", - "alternatives": ["git stash save --include-untracked"] + "tip": "git stash -u", + "alternatives": ["git stash save -u", "git stash save --include-untracked"] }, { "title": "Saving current state with message", "tip": "git stash save " From af614c269eb16d8a5cb27f305ade4bf8346b08df Mon Sep 17 00:00:00 2001 From: Juan Ignacio Donoso Date: Thu, 9 Mar 2017 14:22:47 -0500 Subject: [PATCH 048/108] Add alternative to remove remote tag --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f0bc850..e2eca76 100644 --- a/README.md +++ b/README.md @@ -285,7 +285,13 @@ git tag -d ## Delete remote tag ```sh -git push origin :refs/tags/ +git push origin : +``` + + +__Alternatives:__ +```sh +git push origin :refs/tags/ ``` ## Undo local changes with the last content in head From 81f9099a1f4466e6c264bd2eb1ef0bb0a48cb389 Mon Sep 17 00:00:00 2001 From: eliranm Date: Thu, 23 Mar 2017 15:09:46 +0200 Subject: [PATCH 049/108] add change by content search tip --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index f0bc850..8be62cf 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Everyday Git in twenty commands or so](#everyday-git-in-twenty-commands-or-so) * [Show helpful guides that come with Git](#show-helpful-guides-that-come-with-git) +* [Search change by content](#search-change-by-content) * [Overwrite pull](#overwrite-pull) * [List of all files till a commit](#list-of-all-files-till-a-commit) * [Git reset first commit](#git-reset-first-commit) @@ -179,6 +180,11 @@ git help everyday git help -g ``` +## Search change by content +```sh +git log -S'' +``` + ## Overwrite pull ```sh git fetch origin && git reset --hard origin/master diff --git a/tips.json b/tips.json index 16b56eb..0c5a3e2 100644 --- a/tips.json +++ b/tips.json @@ -4,6 +4,9 @@ }, { "title": "Show helpful guides that come with Git", "tip": "git help -g" +}, { + "title": "Search change by content", + "tip": "git log -S''" }, { "title": "Overwrite pull", "tip": "git fetch origin && git reset --hard origin/master" From 3c766833b4625753b254645c4d619b9b176781cd Mon Sep 17 00:00:00 2001 From: eliranm Date: Tue, 28 Mar 2017 11:07:51 +0300 Subject: [PATCH 050/108] update "overwrite pull": - rename to "sync with remote" for clarity - add 'git clean' to ensure working tree is clean --- README.md | 6 +++--- tips.json | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 8be62cf..c518583 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Everyday Git in twenty commands or so](#everyday-git-in-twenty-commands-or-so) * [Show helpful guides that come with Git](#show-helpful-guides-that-come-with-git) * [Search change by content](#search-change-by-content) -* [Overwrite pull](#overwrite-pull) +* [Sync with remote](#sync-with-remote) * [List of all files till a commit](#list-of-all-files-till-a-commit) * [Git reset first commit](#git-reset-first-commit) * [List all the conflicted files](#list-all-the-conflicted-files) @@ -185,9 +185,9 @@ git help -g git log -S'' ``` -## Overwrite pull +## Sync with remote ```sh -git fetch origin && git reset --hard origin/master +git fetch origin && git reset --hard origin/master && git clean -f -d ``` ## List of all files till a commit diff --git a/tips.json b/tips.json index 0c5a3e2..9d3b1ce 100644 --- a/tips.json +++ b/tips.json @@ -8,8 +8,8 @@ "title": "Search change by content", "tip": "git log -S''" }, { - "title": "Overwrite pull", - "tip": "git fetch origin && git reset --hard origin/master" + "title": "Sync with remote", + "tip": "git fetch origin && git reset --hard origin/master && git clean -f -d" }, { "title": "List of all files till a commit", "tip": "git ls-tree --name-only -r " From 3d4092c3bd7c7cd3fa9ee5c0d695861b5201eb57 Mon Sep 17 00:00:00 2001 From: eliranm Date: Tue, 28 Mar 2017 11:08:59 +0300 Subject: [PATCH 051/108] add .idea to .gitignore, for intellij-idea/webstorm users --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 93f1361..67d713f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ +.idea node_modules npm-debug.log From 48a611a626a984cf4c932c9e934178fc97a8ee90 Mon Sep 17 00:00:00 2001 From: eliranm Date: Tue, 28 Mar 2017 11:13:33 +0300 Subject: [PATCH 052/108] update sync with remote title for brevity --- README.md | 4 ++-- tips.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c518583..6348949 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Everyday Git in twenty commands or so](#everyday-git-in-twenty-commands-or-so) * [Show helpful guides that come with Git](#show-helpful-guides-that-come-with-git) * [Search change by content](#search-change-by-content) -* [Sync with remote](#sync-with-remote) +* [Sync with remote (overwrite local changes)](#sync-with-remote-overwrite-local-changes) * [List of all files till a commit](#list-of-all-files-till-a-commit) * [Git reset first commit](#git-reset-first-commit) * [List all the conflicted files](#list-all-the-conflicted-files) @@ -185,7 +185,7 @@ git help -g git log -S'' ``` -## Sync with remote +## Sync with remote (overwrite local changes) ```sh git fetch origin && git reset --hard origin/master && git clean -f -d ``` diff --git a/tips.json b/tips.json index 9d3b1ce..a6a99d5 100644 --- a/tips.json +++ b/tips.json @@ -8,7 +8,7 @@ "title": "Search change by content", "tip": "git log -S''" }, { - "title": "Sync with remote", + "title": "Sync with remote (overwrite local changes)", "tip": "git fetch origin && git reset --hard origin/master && git clean -f -d" }, { "title": "List of all files till a commit", From 2ce1f0fb06051953d734835f767b360f6f8d9764 Mon Sep 17 00:00:00 2001 From: eliranm Date: Tue, 28 Mar 2017 11:14:45 +0300 Subject: [PATCH 053/108] update sync with remote title for brevity --- README.md | 4 ++-- tips.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6348949..8d2a553 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Everyday Git in twenty commands or so](#everyday-git-in-twenty-commands-or-so) * [Show helpful guides that come with Git](#show-helpful-guides-that-come-with-git) * [Search change by content](#search-change-by-content) -* [Sync with remote (overwrite local changes)](#sync-with-remote-overwrite-local-changes) +* [Sync with remote - overwrite local changes](#sync-with-remote-overwrite-local-changes) * [List of all files till a commit](#list-of-all-files-till-a-commit) * [Git reset first commit](#git-reset-first-commit) * [List all the conflicted files](#list-all-the-conflicted-files) @@ -185,7 +185,7 @@ git help -g git log -S'' ``` -## Sync with remote (overwrite local changes) +## Sync with remote - overwrite local changes ```sh git fetch origin && git reset --hard origin/master && git clean -f -d ``` diff --git a/tips.json b/tips.json index a6a99d5..90526c8 100644 --- a/tips.json +++ b/tips.json @@ -8,7 +8,7 @@ "title": "Search change by content", "tip": "git log -S''" }, { - "title": "Sync with remote (overwrite local changes)", + "title": "Sync with remote - overwrite local changes", "tip": "git fetch origin && git reset --hard origin/master && git clean -f -d" }, { "title": "List of all files till a commit", From 1d4eca0e251cf9cc43c7cbd2cb11cf3928d0eed7 Mon Sep 17 00:00:00 2001 From: eliranm Date: Tue, 28 Mar 2017 11:16:50 +0300 Subject: [PATCH 054/108] update sync with remote title for brevity --- README.md | 4 ++-- tips.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8d2a553..6348949 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Everyday Git in twenty commands or so](#everyday-git-in-twenty-commands-or-so) * [Show helpful guides that come with Git](#show-helpful-guides-that-come-with-git) * [Search change by content](#search-change-by-content) -* [Sync with remote - overwrite local changes](#sync-with-remote-overwrite-local-changes) +* [Sync with remote (overwrite local changes)](#sync-with-remote-overwrite-local-changes) * [List of all files till a commit](#list-of-all-files-till-a-commit) * [Git reset first commit](#git-reset-first-commit) * [List all the conflicted files](#list-all-the-conflicted-files) @@ -185,7 +185,7 @@ git help -g git log -S'' ``` -## Sync with remote - overwrite local changes +## Sync with remote (overwrite local changes) ```sh git fetch origin && git reset --hard origin/master && git clean -f -d ``` diff --git a/tips.json b/tips.json index 90526c8..a6a99d5 100644 --- a/tips.json +++ b/tips.json @@ -8,7 +8,7 @@ "title": "Search change by content", "tip": "git log -S''" }, { - "title": "Sync with remote - overwrite local changes", + "title": "Sync with remote (overwrite local changes)", "tip": "git fetch origin && git reset --hard origin/master && git clean -f -d" }, { "title": "List of all files till a commit", From b0d87788efa58a58bc3b0e1a93978a675fa66dd3 Mon Sep 17 00:00:00 2001 From: eliranm Date: Tue, 28 Mar 2017 11:17:39 +0300 Subject: [PATCH 055/108] update sync with remote title for brevity --- README.md | 4 ++-- tips.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6348949..8d2a553 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Everyday Git in twenty commands or so](#everyday-git-in-twenty-commands-or-so) * [Show helpful guides that come with Git](#show-helpful-guides-that-come-with-git) * [Search change by content](#search-change-by-content) -* [Sync with remote (overwrite local changes)](#sync-with-remote-overwrite-local-changes) +* [Sync with remote - overwrite local changes](#sync-with-remote-overwrite-local-changes) * [List of all files till a commit](#list-of-all-files-till-a-commit) * [Git reset first commit](#git-reset-first-commit) * [List all the conflicted files](#list-all-the-conflicted-files) @@ -185,7 +185,7 @@ git help -g git log -S'' ``` -## Sync with remote (overwrite local changes) +## Sync with remote - overwrite local changes ```sh git fetch origin && git reset --hard origin/master && git clean -f -d ``` diff --git a/tips.json b/tips.json index a6a99d5..90526c8 100644 --- a/tips.json +++ b/tips.json @@ -8,7 +8,7 @@ "title": "Search change by content", "tip": "git log -S''" }, { - "title": "Sync with remote (overwrite local changes)", + "title": "Sync with remote - overwrite local changes", "tip": "git fetch origin && git reset --hard origin/master && git clean -f -d" }, { "title": "List of all files till a commit", From 18f472475799c9c485455cda353fc5f0312517c8 Mon Sep 17 00:00:00 2001 From: eliranm Date: Tue, 28 Mar 2017 11:29:18 +0300 Subject: [PATCH 056/108] fix broken link --- README.md | 12 +++--------- tips.json | 2 +- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index afb2649..1a0b680 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Everyday Git in twenty commands or so](#everyday-git-in-twenty-commands-or-so) * [Show helpful guides that come with Git](#show-helpful-guides-that-come-with-git) * [Search change by content](#search-change-by-content) -* [Sync with remote - overwrite local changes](#sync-with-remote-overwrite-local-changes) +* [Sync with remote, overwrite local changes](#sync-with-remote-overwrite-local-changes) * [List of all files till a commit](#list-of-all-files-till-a-commit) * [Git reset first commit](#git-reset-first-commit) * [List all the conflicted files](#list-all-the-conflicted-files) @@ -185,7 +185,7 @@ git help -g git log -S'' ``` -## Sync with remote - overwrite local changes +## Sync with remote, overwrite local changes ```sh git fetch origin && git reset --hard origin/master && git clean -f -d ``` @@ -291,13 +291,7 @@ git tag -d ## Delete remote tag ```sh -git push origin : -``` - - -__Alternatives:__ -```sh -git push origin :refs/tags/ +git push origin :refs/tags/ ``` ## Undo local changes with the last content in head diff --git a/tips.json b/tips.json index 90526c8..e32beae 100644 --- a/tips.json +++ b/tips.json @@ -8,7 +8,7 @@ "title": "Search change by content", "tip": "git log -S''" }, { - "title": "Sync with remote - overwrite local changes", + "title": "Sync with remote, overwrite local changes", "tip": "git fetch origin && git reset --hard origin/master && git clean -f -d" }, { "title": "List of all files till a commit", From 39d1012fc9652aa9853d58d0fd1086070d82e4f7 Mon Sep 17 00:00:00 2001 From: "Hemanth.HM" Date: Sat, 1 Apr 2017 01:30:00 +0530 Subject: [PATCH 057/108] Checkout a commit prior to a day ago. --- .vscode/settings.json | 3 ++- README.md | 6 ++++++ tips.json | 6 +++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 4748804..9097a64 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,4 @@ { - "eslint.enable": false + "eslint.enable": false, + "vsicons.presets.angular": false } \ No newline at end of file diff --git a/README.md b/README.md index 1a0b680..ae22f2a 100644 --- a/README.md +++ b/README.md @@ -163,6 +163,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Backup untracked files.](#backup-untracked-files) * [List all git aliases](#list-all-git-aliases) * [Show git status short](#show-git-status-short) +* [Checkout a commit prior to a day ago](#checkout-a-commit-prior-to-a-day-ago) @@ -1150,5 +1151,10 @@ git config -l | grep alias | cut -d '.' -f 2 git status --short --branch ``` +## Checkout a commit prior to a day ago +```sh +git checkout master@{yesterday} +``` + diff --git a/tips.json b/tips.json index e32beae..57486bb 100644 --- a/tips.json +++ b/tips.json @@ -484,5 +484,9 @@ },{ "title": "Show git status short", "tip": "git status --short --branch" -} +}, + { + "title": "Checkout a commit prior to a day ago", + "tip": "git checkout master@{yesterday}" + } ] From f65336b83df27937974e46387a68ab4f95fa2cbc Mon Sep 17 00:00:00 2001 From: mingrammer Date: Mon, 26 Jun 2017 01:07:39 +0900 Subject: [PATCH 058/108] Add a translation link for korean --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ae22f2a..8ee9e09 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ## git-tips > Collection of `git-tips`, want to add your tips? Checkout [contributing.md](./contributing.md) -[English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) | [Русский](https://github.com/Imangazaliev/git-tips) +[English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) | [Русский](https://github.com/Imangazaliev/git-tips) | [한국어](https://github.com/mingrammer/git-tips) ### __Tools:__ From 33dc77736c426c995dab3cc0862942f906be56b9 Mon Sep 17 00:00:00 2001 From: Chaithanya Ganta Date: Tue, 8 Aug 2017 15:41:23 +0530 Subject: [PATCH 059/108] Push a new local branch to remote and track --- README.md | 6 ++++++ tips.json | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8ee9e09..896bc5d 100644 --- a/README.md +++ b/README.md @@ -164,6 +164,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [List all git aliases](#list-all-git-aliases) * [Show git status short](#show-git-status-short) * [Checkout a commit prior to a day ago](#checkout-a-commit-prior-to-a-day-ago) +* [Push a new local branch to remote repository and track](#push-a-new-local-branch-to-remote-repository-and-track) @@ -1156,5 +1157,10 @@ git status --short --branch git checkout master@{yesterday} ``` +## Push a new local branch to remote repository and track +```sh +git push -u origin +``` + diff --git a/tips.json b/tips.json index 57486bb..59b6eae 100644 --- a/tips.json +++ b/tips.json @@ -488,5 +488,8 @@ { "title": "Checkout a commit prior to a day ago", "tip": "git checkout master@{yesterday}" - } + }, { + "title": "Push a new local branch to remote repository and track", + "tip": "git push -u origin " +} ] From 741782cdb0904d4f0d59ca6249852b9d7106d981 Mon Sep 17 00:00:00 2001 From: lukabot Date: Tue, 24 Oct 2017 11:14:00 +0900 Subject: [PATCH 060/108] Remove duplicated command --- README.md | 6 ------ tips.json | 3 +-- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/README.md b/README.md index 896bc5d..9161377 100644 --- a/README.md +++ b/README.md @@ -563,12 +563,6 @@ git clean -f git clean -f -d ``` - -__Alternatives:__ -```sh -git clean -df -``` - ## Update all the submodules ```sh git submodule foreach git pull diff --git a/tips.json b/tips.json index 59b6eae..92d1b38 100644 --- a/tips.json +++ b/tips.json @@ -183,8 +183,7 @@ "tip": "git clean -f" }, { "title": "Forcefully remove untracked directory", - "tip": "git clean -f -d", - "alternatives": ["git clean -df"] + "tip": "git clean -f -d" }, { "title": "Update all the submodules", "tip": "git submodule foreach git pull", From 3b0185e443910f215b98e5b001e6d87bea536f30 Mon Sep 17 00:00:00 2001 From: eliranm Date: Mon, 30 Oct 2017 12:24:22 +0200 Subject: [PATCH 061/108] add a tip to remove sensitive data from history (after a push) --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 9161377..20349b2 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Everyday Git in twenty commands or so](#everyday-git-in-twenty-commands-or-so) * [Show helpful guides that come with Git](#show-helpful-guides-that-come-with-git) * [Search change by content](#search-change-by-content) +* [Remove sensitive data from history, after a push](#remove-sensitive-data-from-history-after-a-push) * [Sync with remote, overwrite local changes](#sync-with-remote-overwrite-local-changes) * [List of all files till a commit](#list-of-all-files-till-a-commit) * [Git reset first commit](#git-reset-first-commit) @@ -187,6 +188,11 @@ git help -g git log -S'' ``` +## Remove sensitive data from history, after a push +```sh +git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch ' --prune-empty --tag-name-filter cat -- --all && git push origin --force --all +``` + ## Sync with remote, overwrite local changes ```sh git fetch origin && git reset --hard origin/master && git clean -f -d diff --git a/tips.json b/tips.json index 92d1b38..c5c7924 100644 --- a/tips.json +++ b/tips.json @@ -7,6 +7,9 @@ }, { "title": "Search change by content", "tip": "git log -S''" +}, { + "title": "Remove sensitive data from history, after a push", + "tip": "git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch ' --prune-empty --tag-name-filter cat -- --all && git push origin --force --all" }, { "title": "Sync with remote, overwrite local changes", "tip": "git fetch origin && git reset --hard origin/master && git clean -f -d" From 4bf33b325890ea9c90e845a5abb4ddc921beb14b Mon Sep 17 00:00:00 2001 From: John Pham Date: Mon, 27 Nov 2017 12:14:07 +0700 Subject: [PATCH 062/108] Add a translation link for Vietnamese --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9161377..bd7b226 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ## git-tips > Collection of `git-tips`, want to add your tips? Checkout [contributing.md](./contributing.md) -[English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) | [Русский](https://github.com/Imangazaliev/git-tips) | [한국어](https://github.com/mingrammer/git-tips) +[English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) | [Русский](https://github.com/Imangazaliev/git-tips) | [한국어](https://github.com/mingrammer/git-tips) | [Tiếng Việt](https://github.com/hprobotic/git-tips) ### __Tools:__ From a7b9fbf3b16617f06eb3ec492defc95b1223728b Mon Sep 17 00:00:00 2001 From: Mohit Agarwal Date: Wed, 20 Dec 2017 15:13:08 +0530 Subject: [PATCH 063/108] Fix difftool example The example currently reads: git difftool -t This would cause `commit1` to be considered as the diff tool. --- README.md | 2 +- tips.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b6421ec..8681c13 100644 --- a/README.md +++ b/README.md @@ -728,7 +728,7 @@ git diff --word-diff ## Show changes using common diff tools. ```sh -git difftool -t +git difftool [-t ] ``` ## Don’t consider changes for tracked file. diff --git a/tips.json b/tips.json index c5c7924..0cc3d88 100644 --- a/tips.json +++ b/tips.json @@ -257,7 +257,7 @@ "tip": "git diff --word-diff" }, { "title": "Show changes using common diff tools.", - "tip": "git difftool -t " + "tip": "git difftool [-t ] " }, { "title": "Don’t consider changes for tracked file.", "tip": "git update-index --assume-unchanged " From 26e8a7be82c4286d97d617318fabb99f30055756 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristian=20Uma=C3=B1a?= Date: Thu, 8 Mar 2018 16:48:00 -0600 Subject: [PATCH 064/108] An alternative with shorter hash, author and relative date for "Visualize the version tree." tip, has been added. --- README.md | 5 +++++ tips.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8681c13..f13ee01 100644 --- a/README.md +++ b/README.md @@ -665,6 +665,11 @@ __Alternatives:__ gitk --all ``` + +```sh +git log --graph --pretty=format:'%C(auto) %h | %s | %an | %ar%d' +``` + ## Deploying git tracked subfolder to gh-pages ```sh git subtree push --prefix subfolder_name origin gh-pages diff --git a/tips.json b/tips.json index 0cc3d88..6de1373 100644 --- a/tips.json +++ b/tips.json @@ -219,7 +219,7 @@ }, { "title": "Visualize the version tree.", "tip": "git log --pretty=oneline --graph --decorate --all", - "alternatives": ["gitk --all"] + "alternatives": ["gitk --all","git log --graph --pretty=format:'%C(auto) %h | %s | %an | %ar%d'"] }, { "title": "Deploying git tracked subfolder to gh-pages", "tip": "git subtree push --prefix subfolder_name origin gh-pages", From 0286eb33145b8830170b08bbbffbd6afa3b3b65c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ni=20Marvaud?= <24732919+lmarvaud@users.noreply.github.com> Date: Wed, 21 Mar 2018 20:24:10 +0100 Subject: [PATCH 065/108] Add change a branch base tips Based on : https://stackoverflow.com/questions/10853935/change-branch-base Tested on `git version 2.11.0 (Apple Git-81)` : ```bash-4.3$ git --version git version 2.11.0 (Apple Git-81) bash-4.3$ git checkout -b test-rebase-onto Switched to a new branch 'test-rebase-onto' bash-4.3$ touch "test-to-rebase" bash-4.3$ git add test-to-rebase bash-4.3$ git commit -m "Commit to rebase" [test-rebase-onto 11d1cdd] Commit to rebase 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test-to-rebase bash-4.3$ git log bash-4.3$ git rebase --onto master dev Applying: Commit to rebase bash-4.3$ git log``` --- README.md | 6 ++++++ tips.json | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/README.md b/README.md index f13ee01..8d5064c 100644 --- a/README.md +++ b/README.md @@ -166,6 +166,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Show git status short](#show-git-status-short) * [Checkout a commit prior to a day ago](#checkout-a-commit-prior-to-a-day-ago) * [Push a new local branch to remote repository and track](#push-a-new-local-branch-to-remote-repository-and-track) +* [Change a branch base](#change-a-branch-base) @@ -1167,5 +1168,10 @@ git checkout master@{yesterday} git push -u origin ``` +## Change a branch base +```sh +git rebase --onto +``` + diff --git a/tips.json b/tips.json index 6de1373..66846f8 100644 --- a/tips.json +++ b/tips.json @@ -493,5 +493,9 @@ }, { "title": "Push a new local branch to remote repository and track", "tip": "git push -u origin " + }, { + "title": "Change a branch base", + "tip": "git rebase --onto " } + ] From c46d4a737ef1b73a7accbc8f6142ab3cba5bf115 Mon Sep 17 00:00:00 2001 From: Diogo Lemos Date: Tue, 24 Apr 2018 20:04:56 +0100 Subject: [PATCH 066/108] Add first commit from branch alternative --- README.md | 8 +++++++- tips.json | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8d5064c..c553edb 100644 --- a/README.md +++ b/README.md @@ -984,7 +984,13 @@ git log --all --grep='' ## Get first commit in a branch (from master) ```sh -git log master.. --oneline | tail -1 +git log --oneline master.. | tail -1 +``` + + +__Alternatives:__ +```sh +git log --reverse master.. | head -6 ``` ## Unstaging Staged file diff --git a/tips.json b/tips.json index 66846f8..f2e2188 100644 --- a/tips.json +++ b/tips.json @@ -395,7 +395,8 @@ "tip": "git log --all --grep=''" }, { "title": "Get first commit in a branch (from master)", - "tip": "git log master.. --oneline | tail -1" + "tip": "git log --oneline master.. | tail -1", + "alternatives": ["git log --reverse master.. | head -6"] }, { "title": "Unstaging Staged file", "tip": "git reset HEAD " From 96124215b6797018a127d283103c8124b93500b0 Mon Sep 17 00:00:00 2001 From: "Hemanth.HM" Date: Wed, 25 Jul 2018 11:26:51 +0530 Subject: [PATCH 067/108] Tip: Use SSH instead of HTTPs for remotes. --- README.md | 6 + tips.json | 1002 +++++++++++++++++++++++++++-------------------------- 2 files changed, 508 insertions(+), 500 deletions(-) diff --git a/README.md b/README.md index c553edb..98d158f 100644 --- a/README.md +++ b/README.md @@ -167,6 +167,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Checkout a commit prior to a day ago](#checkout-a-commit-prior-to-a-day-ago) * [Push a new local branch to remote repository and track](#push-a-new-local-branch-to-remote-repository-and-track) * [Change a branch base](#change-a-branch-base) +* [Use SSH instead of HTTPs for remotes](#use-ssh-instead-of-https-for-remotes) @@ -1179,5 +1180,10 @@ git push -u origin git rebase --onto ``` +## Use SSH instead of HTTPs for remotes +```sh +git config --global url.'git@github.com:'.insteadOf 'https://github.com/' +``` + diff --git a/tips.json b/tips.json index f2e2188..43accfe 100644 --- a/tips.json +++ b/tips.json @@ -1,502 +1,504 @@ [{ - "title": "Everyday Git in twenty commands or so", - "tip": "git help everyday" -}, { - "title": "Show helpful guides that come with Git", - "tip": "git help -g" -}, { - "title": "Search change by content", - "tip": "git log -S''" -}, { - "title": "Remove sensitive data from history, after a push", - "tip": "git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch ' --prune-empty --tag-name-filter cat -- --all && git push origin --force --all" -}, { - "title": "Sync with remote, overwrite local changes", - "tip": "git fetch origin && git reset --hard origin/master && git clean -f -d" -}, { - "title": "List of all files till a commit", - "tip": "git ls-tree --name-only -r " -}, { - "title": "Git reset first commit", - "tip": "git update-ref -d HEAD" -}, { - "title": "List all the conflicted files", - "tip": "git diff --name-only --diff-filter=U" -}, { - "title": "List of all files changed in a commit", - "tip": "git diff-tree --no-commit-id --name-only -r " -}, { - "title": "Unstaged changes since last commit", - "tip": "git diff" -}, { - "title": "Changes staged for commit", - "tip": "git diff --cached", - "alternatives": ["git diff --staged"] -}, { - "title": "Show both staged and unstaged changes", - "tip": "git diff HEAD" -}, { - "title": "List all branches that are already merged into master", - "tip": "git branch --merged master" -}, { - "title": "Quickly switch to the previous branch", - "tip": "git checkout -", - "alternatives": ["git checkout @{-1}"] -}, { - "title": "Remove branches that have already been merged with master", - "tip": "git branch --merged master | grep -v '^\\*' | xargs -n 1 git branch -d", - "alternatives": ["git branch --merged master | grep -v '^\\*\\| master' | xargs -n 1 git branch -d # will not delete master if master is not checked out"] -}, { - "title": "List all branches and their upstreams, as well as last commit on branch", - "tip": "git branch -vv" -}, { - "title": "Track upstream branch", - "tip": "git branch -u origin/mybranch" -}, { - "title": "Delete local branch", - "tip": "git branch -d " -}, { - "title": "Delete remote branch", - "tip": "git push origin --delete ", - "alternatives": ["git push origin :"] -}, { - "title": "Delete local tag", - "tip": "git tag -d " -}, { - "title": "Delete remote tag", - "tip": "git push origin :refs/tags/" -}, { - "title": "Undo local changes with the last content in head", - "tip": "git checkout -- " -}, { - "title": "Revert: Undo a commit by creating a new commit", - "tip": "git revert " -}, { - "title": "Reset: Discard commits, advised for private branch", - "tip": "git reset " -}, { - "title": "Reword the previous commit message", - "tip": "git commit -v --amend" -}, { - "title": "See commit history for just the current branch", - "tip": "git cherry -v master" -}, { - "title": "Amend author.", - "tip": "git commit --amend --author='Author Name '" -}, { - "title": "Reset author, after author has been changed in the global config.", - "tip": "git commit --amend --reset-author --no-edit" -}, { - "title": "Changing a remote's URL", - "tip": "git remote set-url origin " -}, { - "title": "Get list of all remote references", - "tip": "git remote", - "alternatives": ["git remote show"] -}, { - "title": "Get list of all local and remote branches", - "tip": "git branch -a" -}, { - "title": "Get only remote branches", - "tip": "git branch -r" -}, { - "title": "Stage parts of a changed file, instead of the entire file", - "tip": "git add -p" -}, { - "title": "Get git bash completion", - "tip": "curl http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc" -}, { - "title": "What changed since two weeks?", - "tip": "git log --no-merges --raw --since='2 weeks ago'", - "alternatives": ["git whatchanged --since='2 weeks ago'"] -}, { - "title": "See all commits made since forking from master", - "tip": "git log --no-merges --stat --reverse master.." -}, { - "title": "Pick commits across branches using cherry-pick", - "tip": "git checkout && git cherry-pick " -}, { - "title": "Find out branches containing commit-hash", - "tip": "git branch -a --contains ", - "alternatives": ["git branch --contains "] -}, { - "title": "Git Aliases", - "tip": "git config --global alias. \ngit config --global alias.st status" -}, { - "title": "Saving current state of tracked files without commiting", - "tip": "git stash", - "alternatives": ["git stash save"] -}, { - "title": "Saving current state of unstaged changes to tracked files", - "tip": "git stash -k", - "alternatives": ["git stash --keep-index", "git stash save --keep-index"] -}, { - "title": "Saving current state including untracked files", - "tip": "git stash -u", - "alternatives": ["git stash save -u", "git stash save --include-untracked"] -}, { - "title": "Saving current state with message", - "tip": "git stash save " -}, { - "title": "Saving current state of all files (ignored, untracked, and tracked)", - "tip": "git stash -a", - "alternatives": ["git stash --all", "git stash save --all"] -}, { - "title": "Show list of all saved stashes", - "tip": "git stash list" -}, { - "title": "Apply any stash without deleting from the stashed list", - "tip": "git stash apply " -}, { - "title": "Apply last stashed state and delete it from stashed list", - "tip": "git stash pop", - "alternatives": ["git stash apply stash@{0} && git stash drop stash@{0}"] -}, { - "title": "Delete all stored stashes", - "tip": "git stash clear", - "alternatives": ["git stash drop "] -}, { - "title": "Grab a single file from a stash", - "tip": "git checkout -- ", - "alternatives": ["git checkout stash@{0} -- "] -}, { - "title": "Show all tracked files", - "tip": "git ls-files -t" -}, { - "title": "Show all untracked files", - "tip": "git ls-files --others" -}, { - "title": "Show all ignored files", - "tip": "git ls-files --others -i --exclude-standard" -}, { - "title": "Create new working tree from a repository (git 2.5)", - "tip": "git worktree add -b " -}, { - "title": "Create new working tree from HEAD state", - "tip": "git worktree add --detach HEAD" -}, { - "title": "Untrack files without deleting", - "tip": "git rm --cached ", - "alternatives": ["git rm --cached -r "] -}, { - "title": "Before deleting untracked files/directory, do a dry run to get the list of these files/directories", - "tip": "git clean -n" -}, { - "title": "Forcefully remove untracked files", - "tip": "git clean -f" -}, { - "title": "Forcefully remove untracked directory", - "tip": "git clean -f -d" -}, { - "title": "Update all the submodules", - "tip": "git submodule foreach git pull", - "alternatives": ["git submodule update --init --recursive", "git submodule update --remote"] -}, { - "title": "Show all commits in the current branch yet to be merged to master", - "tip": "git cherry -v master", - "alternatives": ["git cherry -v master "] -}, { - "title": "Rename a branch", - "tip": "git branch -m ", - "alternatives": ["git branch -m [] "] -}, { - "title": "Rebases 'feature' to 'master' and merges it in to master ", - "tip": "git rebase master feature && git checkout master && git merge -" -}, { - "title": "Archive the `master` branch", - "tip": "git archive master --format=zip --output=master.zip" -}, { - "title": "Modify previous commit without modifying the commit message", - "tip": "git add --all && git commit --amend --no-edit" -}, { - "title": "Prunes references to remote branches that have been deleted in the remote.", - "tip": "git fetch -p", - "alternatives": ["git remote prune origin"] -}, { - "title": "Retrieve the commit hash of the initial revision.", - "tip": " git rev-list --reverse HEAD | head -1", - "alternatives": ["git rev-list --max-parents=0 HEAD", "git log --pretty=oneline | tail -1 | cut -c 1-40", "git log --pretty=oneline --reverse | head -1 | cut -c 1-40"] -}, { - "title": "Visualize the version tree.", - "tip": "git log --pretty=oneline --graph --decorate --all", - "alternatives": ["gitk --all","git log --graph --pretty=format:'%C(auto) %h | %s | %an | %ar%d'"] -}, { - "title": "Deploying git tracked subfolder to gh-pages", - "tip": "git subtree push --prefix subfolder_name origin gh-pages", - "alternatives": "git subtree push --prefix subfolder_name origin branch_name" -}, { - "title": "Adding a project to repo using subtree", - "tip": "git subtree add --prefix=/ --squash git@github.com:/.git master" -}, { - "title": "Get latest changes in your repo for a linked project using subtree", - "tip": "git subtree pull --prefix=/ --squash git@github.com:/.git master" -}, { - "title": "Export a branch with history to a file.", - "tip": "git bundle create " -}, { - "title": "Import from a bundle", - "tip": "git clone repo.bundle -b " -}, { - "title": "Get the name of current branch.", - "tip": "git rev-parse --abbrev-ref HEAD" -}, { - "title": "Ignore one file on commit (e.g. Changelog).", - "tip": "git update-index --assume-unchanged Changelog; git commit -a; git update-index --no-assume-unchanged Changelog" -}, { - "title": "Stash changes before rebasing", - "tip": "git rebase --autostash" -}, { - "title": "Fetch pull request by ID to a local branch", - "tip": "git fetch origin pull//head:", - "alternatives": ["git pull origin pull//head:"] -}, { - "title": "Show the most recent tag on the current branch.", - "tip": "git describe --tags --abbrev=0" -}, { - "title": "Show inline word diff.", - "tip": "git diff --word-diff" -}, { - "title": "Show changes using common diff tools.", - "tip": "git difftool [-t ] " -}, { - "title": "Don’t consider changes for tracked file.", - "tip": "git update-index --assume-unchanged " -}, { - "title": "Undo assume-unchanged.", - "tip": "git update-index --no-assume-unchanged " -}, { - "title": "Clean the files from `.gitignore`.", - "tip": "git clean -X -f" -}, { - "title": "Restore deleted file.", - "tip": "git checkout ^ -- " -}, { - "title": "Restore file to a specific commit-hash", - "tip": "git checkout -- " -}, { - "title": "Always rebase instead of merge on pull.", - "tip": "git config --global pull.rebase true", - "alternatives" : ["#git < 1.7.9\ngit config --global branch.autosetuprebase always"] -}, { - "title": "List all the alias and configs.", - "tip": "git config --list" -}, { - "title": "Make git case sensitive.", - "tip": "git config --global core.ignorecase false" -},{ - "title": "Add custom editors.", - "tip": "git config --global core.editor '$EDITOR'" -}, { - "title": "Auto correct typos.", - "tip": "git config --global help.autocorrect 1" -}, { - "title": "Check if the change was a part of a release.", - "tip": "git name-rev --name-only " -}, { - "title": "Dry run. (any command that supports dry-run flag should do.)", - "tip": "git clean -fd --dry-run" -}, { - "title": "Marks your commit as a fix of a previous commit.", - "tip": "git commit --fixup " -}, { - "title": "Squash fixup commits normal commits.", - "tip": "git rebase -i --autosquash" -}, { - "title": "Skip staging area during commit.", - "tip": "git commit --only " -}, { - "title": "Interactive staging.", - "tip": "git add -i" -}, { - "title": "List ignored files.", - "tip": "git check-ignore *" -}, { - "title": "Status of ignored files.", - "tip": "git status --ignored" -}, { - "title": "Commits in Branch1 that are not in Branch2", - "tip": "git log Branch1 ^Branch2" -}, { - "title": "List n last commits", - "tip": "git log -", - "alternatives": ["git log -n "] -}, { - "title": "Reuse recorded resolution, record and reuse previous conflicts resolutions.", - "tip": "git config --global rerere.enabled 1" -}, { - "title": "Open all conflicted files in an editor.", - "tip": "git diff --name-only | uniq | xargs $EDITOR" -}, { - "title": "Count unpacked number of objects and their disk consumption.", - "tip": "git count-objects --human-readable" -}, { - "title": "Prune all unreachable objects from the object database.", - "tip": "git gc --prune=now --aggressive" -}, { - "title": "Instantly browse your working repository in gitweb.", - "tip": "git instaweb [--local] [--httpd=] [--port=] [--browser=]" -}, { - "title": "View the GPG signatures in the commit log", - "tip": "git log --show-signature" -}, { - "title": "Remove entry in the global config.", - "tip": "git config --global --unset " -}, { - "title": "Checkout a new branch without any history", - "tip": "git checkout --orphan " -}, { - "title": "Extract file from another branch.", - "tip": "git show :" -}, { - "title": "List only the root and merge commits.", - "tip": "git log --first-parent" -}, { - "title": "Change previous two commits with an interactive rebase.", - "tip": "git rebase --interactive HEAD~2" -}, { - "title": "List all branch is WIP", - "tip": "git checkout master && git branch --no-merged" -}, { - "title": "Find guilty with binary search", - "tip": "git bisect start # Search start \ngit bisect bad # Set point to bad commit \ngit bisect good v2.6.13-rc2 # Set point to good commit|tag \ngit bisect bad # Say current state is bad \ngit bisect good # Say current state is good \ngit bisect reset # Finish search \n" -}, { - "title": "Bypass pre-commit and commit-msg githooks", - "tip": "git commit --no-verify" -}, { - "title": "List commits and changes to a specific file (even through renaming)", - "tip": "git log --follow -p -- " -},{ - "title": "Clone a single branch", - "tip": "git clone -b --single-branch https://github.com/user/repo.git" -},{ - "title": "Create and switch new branch", - "tip": "git checkout -b ", - "alternatives": ["git branch && git checkout "] -},{ - "title": "Ignore file mode changes on commits", - "tip": "git config core.fileMode false" -},{ - "title": "Turn off git colored terminal output", - "tip": "git config --global color.ui false" -},{ - "title": "Specific color settings", - "tip": "git config --global " -},{ - "title": "Show all local branches ordered by recent commits", - "tip": "git for-each-ref --sort=-committerdate --format='%(refname:short)' refs/heads/" -},{ - "title": "Find lines matching the pattern (regex or string) in tracked files", - "tip": "git grep --heading --line-number 'foo bar'" -}, { - "title": "Clone a shallow copy of a repository", - "tip": "git clone https://github.com/user/repo.git --depth 1" -}, { - "title": "Search Commit log across all branches for given text", - "tip": "git log --all --grep=''" -}, { - "title": "Get first commit in a branch (from master)", - "tip": "git log --oneline master.. | tail -1", - "alternatives": ["git log --reverse master.. | head -6"] -}, { - "title": "Unstaging Staged file", - "tip": "git reset HEAD " -}, { - "title": "Force push to Remote Repository", - "tip": "git push -f " -}, { - "title": "Adding Remote name", - "tip": "git remote add " -}, { - "title": "Show the author, time and last revision made to each line of a given file", - "tip": "git blame " -}, { - "title": "Group commits by authors and title", - "tip": "git shortlog" -}, { - "title": "Forced push but still ensure you don't overwrite other's work", - "tip": "git push --force-with-lease " -},{ - "title": "Show how many lines does an author contribute", - "tip": "git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | gawk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf \"added lines: %s removed lines: %s total lines: %s\n\", add, subs, loc }' -", - "alternatives": ["git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf \"added lines: %s, removed lines: %s, total lines: %s\n\", add, subs, loc }' - # on Mac OSX"] -},{ - "title": "Revert: Reverting an entire merge", - "tip": "git revert -m 1 " -},{ - "title": "Number of commits in a branch", - "tip": "git rev-list --count " -},{ - "title": "Alias: git undo", - "tip": "git config --global alias.undo '!f() { git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; }; f'" -}, { - "title": "Add object notes", - "tip": "git notes add -m 'Note on the previous commit....'" -}, { - "title": "Show all the git-notes", - "tip": "git log --show-notes='*'" -}, { - "title": "Apply commit from another repository", - "tip": "git --git-dir=/.git format-patch -k -1 --stdout | git am -3 -k" -},{ - "title": "Specific fetch reference", - "tip": "git fetch origin master:refs/remotes/origin/mymaster" -}, { - "title": "Find common ancestor of two branches", - "tip": "diff -u <(git rev-list --first-parent BranchA) <(git rev-list --first-parent BranchB) | sed -ne 's/^ //p' | head -1" -}, { - "title": "List unpushed git commits", - "tip": "git log --branches --not --remotes", - "alternatives": ["git log @{u}..", "git cherry -v"] -}, { - "title": "Add everything, but whitespace changes", - "tip": "git diff --ignore-all-space | git apply --cached" -}, { - "title": "Edit [local/global] git config", - "tip": "git config [--global] --edit" -}, { - "title": "blame on certain range", - "tip": "git blame -L ," -}, { - "title": "Show a Git logical variable.", - "tip":"git var -l | " -}, { - "title": "Preformatted patch file.", - "tip": "git format-patch -M upstream..topic" -}, { - "title": "Get the repo name.", - "tip": "git rev-parse --show-toplevel" -}, { - "title": "logs between date range", - "tip": "git log --since='FEB 1 2017' --until='FEB 14 2017'" -}, { - "title": "Exclude author from logs", - "tip": "git log --perl-regexp --author='^((?!excluded-author-regex).*)$'" -}, { - "title": "Generates a summary of pending changes", - "tip": "git request-pull v1.0 https://git.ko.xz/project master:for-linus" -}, { - "title":"List references in a remote repository", - "tip": "git ls-remote git://git.kernel.org/pub/scm/git/git.git" -}, { - "title": "Backup untracked files.", - "tip": "git ls-files --others -i --exclude-standard | xargs zip untracked.zip" -}, { - "title": "List all git aliases", - "tip": "git config -l | grep alias | sed 's/^alias\\.//g'", - "alternatives": ["git config -l | grep alias | cut -d '.' -f 2"] -},{ - "title": "Show git status short", - "tip": "git status --short --branch" -}, - { - "title": "Checkout a commit prior to a day ago", - "tip": "git checkout master@{yesterday}" - }, { - "title": "Push a new local branch to remote repository and track", - "tip": "git push -u origin " - }, { - "title": "Change a branch base", - "tip": "git rebase --onto " -} - + "title": "Everyday Git in twenty commands or so", + "tip": "git help everyday" + }, { + "title": "Show helpful guides that come with Git", + "tip": "git help -g" + }, { + "title": "Search change by content", + "tip": "git log -S''" + }, { + "title": "Remove sensitive data from history, after a push", + "tip": "git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch ' --prune-empty --tag-name-filter cat -- --all && git push origin --force --all" + }, { + "title": "Sync with remote, overwrite local changes", + "tip": "git fetch origin && git reset --hard origin/master && git clean -f -d" + }, { + "title": "List of all files till a commit", + "tip": "git ls-tree --name-only -r " + }, { + "title": "Git reset first commit", + "tip": "git update-ref -d HEAD" + }, { + "title": "List all the conflicted files", + "tip": "git diff --name-only --diff-filter=U" + }, { + "title": "List of all files changed in a commit", + "tip": "git diff-tree --no-commit-id --name-only -r " + }, { + "title": "Unstaged changes since last commit", + "tip": "git diff" + }, { + "title": "Changes staged for commit", + "tip": "git diff --cached", + "alternatives": ["git diff --staged"] + }, { + "title": "Show both staged and unstaged changes", + "tip": "git diff HEAD" + }, { + "title": "List all branches that are already merged into master", + "tip": "git branch --merged master" + }, { + "title": "Quickly switch to the previous branch", + "tip": "git checkout -", + "alternatives": ["git checkout @{-1}"] + }, { + "title": "Remove branches that have already been merged with master", + "tip": "git branch --merged master | grep -v '^\\*' | xargs -n 1 git branch -d", + "alternatives": ["git branch --merged master | grep -v '^\\*\\| master' | xargs -n 1 git branch -d # will not delete master if master is not checked out"] + }, { + "title": "List all branches and their upstreams, as well as last commit on branch", + "tip": "git branch -vv" + }, { + "title": "Track upstream branch", + "tip": "git branch -u origin/mybranch" + }, { + "title": "Delete local branch", + "tip": "git branch -d " + }, { + "title": "Delete remote branch", + "tip": "git push origin --delete ", + "alternatives": ["git push origin :"] + }, { + "title": "Delete local tag", + "tip": "git tag -d " + }, { + "title": "Delete remote tag", + "tip": "git push origin :refs/tags/" + }, { + "title": "Undo local changes with the last content in head", + "tip": "git checkout -- " + }, { + "title": "Revert: Undo a commit by creating a new commit", + "tip": "git revert " + }, { + "title": "Reset: Discard commits, advised for private branch", + "tip": "git reset " + }, { + "title": "Reword the previous commit message", + "tip": "git commit -v --amend" + }, { + "title": "See commit history for just the current branch", + "tip": "git cherry -v master" + }, { + "title": "Amend author.", + "tip": "git commit --amend --author='Author Name '" + }, { + "title": "Reset author, after author has been changed in the global config.", + "tip": "git commit --amend --reset-author --no-edit" + }, { + "title": "Changing a remote's URL", + "tip": "git remote set-url origin " + }, { + "title": "Get list of all remote references", + "tip": "git remote", + "alternatives": ["git remote show"] + }, { + "title": "Get list of all local and remote branches", + "tip": "git branch -a" + }, { + "title": "Get only remote branches", + "tip": "git branch -r" + }, { + "title": "Stage parts of a changed file, instead of the entire file", + "tip": "git add -p" + }, { + "title": "Get git bash completion", + "tip": "curl http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc" + }, { + "title": "What changed since two weeks?", + "tip": "git log --no-merges --raw --since='2 weeks ago'", + "alternatives": ["git whatchanged --since='2 weeks ago'"] + }, { + "title": "See all commits made since forking from master", + "tip": "git log --no-merges --stat --reverse master.." + }, { + "title": "Pick commits across branches using cherry-pick", + "tip": "git checkout && git cherry-pick " + }, { + "title": "Find out branches containing commit-hash", + "tip": "git branch -a --contains ", + "alternatives": ["git branch --contains "] + }, { + "title": "Git Aliases", + "tip": "git config --global alias. \ngit config --global alias.st status" + }, { + "title": "Saving current state of tracked files without commiting", + "tip": "git stash", + "alternatives": ["git stash save"] + }, { + "title": "Saving current state of unstaged changes to tracked files", + "tip": "git stash -k", + "alternatives": ["git stash --keep-index", "git stash save --keep-index"] + }, { + "title": "Saving current state including untracked files", + "tip": "git stash -u", + "alternatives": ["git stash save -u", "git stash save --include-untracked"] + }, { + "title": "Saving current state with message", + "tip": "git stash save " + }, { + "title": "Saving current state of all files (ignored, untracked, and tracked)", + "tip": "git stash -a", + "alternatives": ["git stash --all", "git stash save --all"] + }, { + "title": "Show list of all saved stashes", + "tip": "git stash list" + }, { + "title": "Apply any stash without deleting from the stashed list", + "tip": "git stash apply " + }, { + "title": "Apply last stashed state and delete it from stashed list", + "tip": "git stash pop", + "alternatives": ["git stash apply stash@{0} && git stash drop stash@{0}"] + }, { + "title": "Delete all stored stashes", + "tip": "git stash clear", + "alternatives": ["git stash drop "] + }, { + "title": "Grab a single file from a stash", + "tip": "git checkout -- ", + "alternatives": ["git checkout stash@{0} -- "] + }, { + "title": "Show all tracked files", + "tip": "git ls-files -t" + }, { + "title": "Show all untracked files", + "tip": "git ls-files --others" + }, { + "title": "Show all ignored files", + "tip": "git ls-files --others -i --exclude-standard" + }, { + "title": "Create new working tree from a repository (git 2.5)", + "tip": "git worktree add -b " + }, { + "title": "Create new working tree from HEAD state", + "tip": "git worktree add --detach HEAD" + }, { + "title": "Untrack files without deleting", + "tip": "git rm --cached ", + "alternatives": ["git rm --cached -r "] + }, { + "title": "Before deleting untracked files/directory, do a dry run to get the list of these files/directories", + "tip": "git clean -n" + }, { + "title": "Forcefully remove untracked files", + "tip": "git clean -f" + }, { + "title": "Forcefully remove untracked directory", + "tip": "git clean -f -d" + }, { + "title": "Update all the submodules", + "tip": "git submodule foreach git pull", + "alternatives": ["git submodule update --init --recursive", "git submodule update --remote"] + }, { + "title": "Show all commits in the current branch yet to be merged to master", + "tip": "git cherry -v master", + "alternatives": ["git cherry -v master "] + }, { + "title": "Rename a branch", + "tip": "git branch -m ", + "alternatives": ["git branch -m [] "] + }, { + "title": "Rebases 'feature' to 'master' and merges it in to master ", + "tip": "git rebase master feature && git checkout master && git merge -" + }, { + "title": "Archive the `master` branch", + "tip": "git archive master --format=zip --output=master.zip" + }, { + "title": "Modify previous commit without modifying the commit message", + "tip": "git add --all && git commit --amend --no-edit" + }, { + "title": "Prunes references to remote branches that have been deleted in the remote.", + "tip": "git fetch -p", + "alternatives": ["git remote prune origin"] + }, { + "title": "Retrieve the commit hash of the initial revision.", + "tip": " git rev-list --reverse HEAD | head -1", + "alternatives": ["git rev-list --max-parents=0 HEAD", "git log --pretty=oneline | tail -1 | cut -c 1-40", "git log --pretty=oneline --reverse | head -1 | cut -c 1-40"] + }, { + "title": "Visualize the version tree.", + "tip": "git log --pretty=oneline --graph --decorate --all", + "alternatives": ["gitk --all", "git log --graph --pretty=format:'%C(auto) %h | %s | %an | %ar%d'"] + }, { + "title": "Deploying git tracked subfolder to gh-pages", + "tip": "git subtree push --prefix subfolder_name origin gh-pages", + "alternatives": "git subtree push --prefix subfolder_name origin branch_name" + }, { + "title": "Adding a project to repo using subtree", + "tip": "git subtree add --prefix=/ --squash git@github.com:/.git master" + }, { + "title": "Get latest changes in your repo for a linked project using subtree", + "tip": "git subtree pull --prefix=/ --squash git@github.com:/.git master" + }, { + "title": "Export a branch with history to a file.", + "tip": "git bundle create " + }, { + "title": "Import from a bundle", + "tip": "git clone repo.bundle -b " + }, { + "title": "Get the name of current branch.", + "tip": "git rev-parse --abbrev-ref HEAD" + }, { + "title": "Ignore one file on commit (e.g. Changelog).", + "tip": "git update-index --assume-unchanged Changelog; git commit -a; git update-index --no-assume-unchanged Changelog" + }, { + "title": "Stash changes before rebasing", + "tip": "git rebase --autostash" + }, { + "title": "Fetch pull request by ID to a local branch", + "tip": "git fetch origin pull//head:", + "alternatives": ["git pull origin pull//head:"] + }, { + "title": "Show the most recent tag on the current branch.", + "tip": "git describe --tags --abbrev=0" + }, { + "title": "Show inline word diff.", + "tip": "git diff --word-diff" + }, { + "title": "Show changes using common diff tools.", + "tip": "git difftool [-t ] " + }, { + "title": "Don’t consider changes for tracked file.", + "tip": "git update-index --assume-unchanged " + }, { + "title": "Undo assume-unchanged.", + "tip": "git update-index --no-assume-unchanged " + }, { + "title": "Clean the files from `.gitignore`.", + "tip": "git clean -X -f" + }, { + "title": "Restore deleted file.", + "tip": "git checkout ^ -- " + }, { + "title": "Restore file to a specific commit-hash", + "tip": "git checkout -- " + }, { + "title": "Always rebase instead of merge on pull.", + "tip": "git config --global pull.rebase true", + "alternatives": ["#git < 1.7.9\ngit config --global branch.autosetuprebase always"] + }, { + "title": "List all the alias and configs.", + "tip": "git config --list" + }, { + "title": "Make git case sensitive.", + "tip": "git config --global core.ignorecase false" + }, { + "title": "Add custom editors.", + "tip": "git config --global core.editor '$EDITOR'" + }, { + "title": "Auto correct typos.", + "tip": "git config --global help.autocorrect 1" + }, { + "title": "Check if the change was a part of a release.", + "tip": "git name-rev --name-only " + }, { + "title": "Dry run. (any command that supports dry-run flag should do.)", + "tip": "git clean -fd --dry-run" + }, { + "title": "Marks your commit as a fix of a previous commit.", + "tip": "git commit --fixup " + }, { + "title": "Squash fixup commits normal commits.", + "tip": "git rebase -i --autosquash" + }, { + "title": "Skip staging area during commit.", + "tip": "git commit --only " + }, { + "title": "Interactive staging.", + "tip": "git add -i" + }, { + "title": "List ignored files.", + "tip": "git check-ignore *" + }, { + "title": "Status of ignored files.", + "tip": "git status --ignored" + }, { + "title": "Commits in Branch1 that are not in Branch2", + "tip": "git log Branch1 ^Branch2" + }, { + "title": "List n last commits", + "tip": "git log -", + "alternatives": ["git log -n "] + }, { + "title": "Reuse recorded resolution, record and reuse previous conflicts resolutions.", + "tip": "git config --global rerere.enabled 1" + }, { + "title": "Open all conflicted files in an editor.", + "tip": "git diff --name-only | uniq | xargs $EDITOR" + }, { + "title": "Count unpacked number of objects and their disk consumption.", + "tip": "git count-objects --human-readable" + }, { + "title": "Prune all unreachable objects from the object database.", + "tip": "git gc --prune=now --aggressive" + }, { + "title": "Instantly browse your working repository in gitweb.", + "tip": "git instaweb [--local] [--httpd=] [--port=] [--browser=]" + }, { + "title": "View the GPG signatures in the commit log", + "tip": "git log --show-signature" + }, { + "title": "Remove entry in the global config.", + "tip": "git config --global --unset " + }, { + "title": "Checkout a new branch without any history", + "tip": "git checkout --orphan " + }, { + "title": "Extract file from another branch.", + "tip": "git show :" + }, { + "title": "List only the root and merge commits.", + "tip": "git log --first-parent" + }, { + "title": "Change previous two commits with an interactive rebase.", + "tip": "git rebase --interactive HEAD~2" + }, { + "title": "List all branch is WIP", + "tip": "git checkout master && git branch --no-merged" + }, { + "title": "Find guilty with binary search", + "tip": "git bisect start # Search start \ngit bisect bad # Set point to bad commit \ngit bisect good v2.6.13-rc2 # Set point to good commit|tag \ngit bisect bad # Say current state is bad \ngit bisect good # Say current state is good \ngit bisect reset # Finish search \n" + }, { + "title": "Bypass pre-commit and commit-msg githooks", + "tip": "git commit --no-verify" + }, { + "title": "List commits and changes to a specific file (even through renaming)", + "tip": "git log --follow -p -- " + }, { + "title": "Clone a single branch", + "tip": "git clone -b --single-branch https://github.com/user/repo.git" + }, { + "title": "Create and switch new branch", + "tip": "git checkout -b ", + "alternatives": ["git branch && git checkout "] + }, { + "title": "Ignore file mode changes on commits", + "tip": "git config core.fileMode false" + }, { + "title": "Turn off git colored terminal output", + "tip": "git config --global color.ui false" + }, { + "title": "Specific color settings", + "tip": "git config --global " + }, { + "title": "Show all local branches ordered by recent commits", + "tip": "git for-each-ref --sort=-committerdate --format='%(refname:short)' refs/heads/" + }, { + "title": "Find lines matching the pattern (regex or string) in tracked files", + "tip": "git grep --heading --line-number 'foo bar'" + }, { + "title": "Clone a shallow copy of a repository", + "tip": "git clone https://github.com/user/repo.git --depth 1" + }, { + "title": "Search Commit log across all branches for given text", + "tip": "git log --all --grep=''" + }, { + "title": "Get first commit in a branch (from master)", + "tip": "git log --oneline master.. | tail -1", + "alternatives": ["git log --reverse master.. | head -6"] + }, { + "title": "Unstaging Staged file", + "tip": "git reset HEAD " + }, { + "title": "Force push to Remote Repository", + "tip": "git push -f " + }, { + "title": "Adding Remote name", + "tip": "git remote add " + }, { + "title": "Show the author, time and last revision made to each line of a given file", + "tip": "git blame " + }, { + "title": "Group commits by authors and title", + "tip": "git shortlog" + }, { + "title": "Forced push but still ensure you don't overwrite other's work", + "tip": "git push --force-with-lease " + }, { + "title": "Show how many lines does an author contribute", + "tip": "git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | gawk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf \"added lines: %s removed lines: %s total lines: %s\n\", add, subs, loc }' -", + "alternatives": ["git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf \"added lines: %s, removed lines: %s, total lines: %s\n\", add, subs, loc }' - # on Mac OSX"] + }, { + "title": "Revert: Reverting an entire merge", + "tip": "git revert -m 1 " + }, { + "title": "Number of commits in a branch", + "tip": "git rev-list --count " + }, { + "title": "Alias: git undo", + "tip": "git config --global alias.undo '!f() { git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; }; f'" + }, { + "title": "Add object notes", + "tip": "git notes add -m 'Note on the previous commit....'" + }, { + "title": "Show all the git-notes", + "tip": "git log --show-notes='*'" + }, { + "title": "Apply commit from another repository", + "tip": "git --git-dir=/.git format-patch -k -1 --stdout | git am -3 -k" + }, { + "title": "Specific fetch reference", + "tip": "git fetch origin master:refs/remotes/origin/mymaster" + }, { + "title": "Find common ancestor of two branches", + "tip": "diff -u <(git rev-list --first-parent BranchA) <(git rev-list --first-parent BranchB) | sed -ne 's/^ //p' | head -1" + }, { + "title": "List unpushed git commits", + "tip": "git log --branches --not --remotes", + "alternatives": ["git log @{u}..", "git cherry -v"] + }, { + "title": "Add everything, but whitespace changes", + "tip": "git diff --ignore-all-space | git apply --cached" + }, { + "title": "Edit [local/global] git config", + "tip": "git config [--global] --edit" + }, { + "title": "blame on certain range", + "tip": "git blame -L ," + }, { + "title": "Show a Git logical variable.", + "tip": "git var -l | " + }, { + "title": "Preformatted patch file.", + "tip": "git format-patch -M upstream..topic" + }, { + "title": "Get the repo name.", + "tip": "git rev-parse --show-toplevel" + }, { + "title": "logs between date range", + "tip": "git log --since='FEB 1 2017' --until='FEB 14 2017'" + }, { + "title": "Exclude author from logs", + "tip": "git log --perl-regexp --author='^((?!excluded-author-regex).*)$'" + }, { + "title": "Generates a summary of pending changes", + "tip": "git request-pull v1.0 https://git.ko.xz/project master:for-linus" + }, { + "title": "List references in a remote repository", + "tip": "git ls-remote git://git.kernel.org/pub/scm/git/git.git" + }, { + "title": "Backup untracked files.", + "tip": "git ls-files --others -i --exclude-standard | xargs zip untracked.zip" + }, { + "title": "List all git aliases", + "tip": "git config -l | grep alias | sed 's/^alias\\.//g'", + "alternatives": ["git config -l | grep alias | cut -d '.' -f 2"] + }, { + "title": "Show git status short", + "tip": "git status --short --branch" + }, + { + "title": "Checkout a commit prior to a day ago", + "tip": "git checkout master@{yesterday}" + }, { + "title": "Push a new local branch to remote repository and track", + "tip": "git push -u origin " + }, { + "title": "Change a branch base", + "tip": "git rebase --onto " + }, { + "title": "Use SSH instead of HTTPs for remotes", + "tip": "git config --global url.'git@github.com:'.insteadOf 'https://github.com/'" + } ] From 94b41fd43768407d11908e708e23b575f389d51a Mon Sep 17 00:00:00 2001 From: lmarvaud <24732919+lmarvaud@users.noreply.github.com> Date: Fri, 5 Oct 2018 15:34:42 +0200 Subject: [PATCH 068/108] Visualize the tree including commits that are only referenced from reflogs --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 98d158f..a06300d 100644 --- a/README.md +++ b/README.md @@ -78,6 +78,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Prunes references to remote branches that have been deleted in the remote.](#prunes-references-to-remote-branches-that-have-been-deleted-in-the-remote) * [Retrieve the commit hash of the initial revision.](#retrieve-the-commit-hash-of-the-initial-revision) * [Visualize the version tree.](#visualize-the-version-tree) +* [Visualize the tree including commits that are only referenced from reflogs](#visualize-the-tree-including-commits-that-are-only-referenced-from-reflogs) * [Deploying git tracked subfolder to gh-pages](#deploying-git-tracked-subfolder-to-gh-pages) * [Adding a project to repo using subtree](#adding-a-project-to-repo-using-subtree) * [Get latest changes in your repo for a linked project using subtree](#get-latest-changes-in-your-repo-for-a-linked-project-using-subtree) @@ -672,6 +673,11 @@ gitk --all git log --graph --pretty=format:'%C(auto) %h | %s | %an | %ar%d' ``` +## Visualize the tree including commits that are only referenced from reflogs +```sh +git log --graph --decorate --oneline $(git rev-list --walk-reflogs --all) +``` + ## Deploying git tracked subfolder to gh-pages ```sh git subtree push --prefix subfolder_name origin gh-pages diff --git a/tips.json b/tips.json index 43accfe..9909931 100644 --- a/tips.json +++ b/tips.json @@ -220,6 +220,9 @@ "title": "Visualize the version tree.", "tip": "git log --pretty=oneline --graph --decorate --all", "alternatives": ["gitk --all", "git log --graph --pretty=format:'%C(auto) %h | %s | %an | %ar%d'"] + }, { + "title": "Visualize the tree including commits that are only referenced from reflogs", + "tip": "git log --graph --decorate --oneline $(git rev-list --walk-reflogs --all)" }, { "title": "Deploying git tracked subfolder to gh-pages", "tip": "git subtree push --prefix subfolder_name origin gh-pages", From 03f10d90fe504eb8cc2a619a48ca5360c0d0b0ef Mon Sep 17 00:00:00 2001 From: Marielle Volz Date: Mon, 5 Nov 2018 12:22:26 +0000 Subject: [PATCH 069/108] Add -L to follow redirects As per the comments in #154, use -L to follow the redirect for curl. The tip as written does not currently work as it downloads the html for the redirect page instead. --- tips.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tips.json b/tips.json index 43accfe..7bef1dd 100644 --- a/tips.json +++ b/tips.json @@ -104,7 +104,7 @@ "tip": "git add -p" }, { "title": "Get git bash completion", - "tip": "curl http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc" + "tip": "curl -L http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc" }, { "title": "What changed since two weeks?", "tip": "git log --no-merges --raw --since='2 weeks ago'", From bc2805558507499f137ff25009d1253d707f0654 Mon Sep 17 00:00:00 2001 From: Marielle Volz Date: Mon, 5 Nov 2018 12:25:32 +0000 Subject: [PATCH 070/108] Fix to follow redirect As per #154, change to -L so that the redirect gets followed. As written this line downloads the html redirect page. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 98d158f..09890d9 100644 --- a/README.md +++ b/README.md @@ -372,7 +372,7 @@ git add -p ## Get git bash completion ```sh -curl http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc +curl -L http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc ``` ## What changed since two weeks? From a536d928568c4053d377952f4bd55ea8818577c9 Mon Sep 17 00:00:00 2001 From: "taisuke.isobe" Date: Wed, 2 Jan 2019 15:02:25 +0900 Subject: [PATCH 071/108] add japanese translation --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d158611..214852e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ## git-tips > Collection of `git-tips`, want to add your tips? Checkout [contributing.md](./contributing.md) -[English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) | [Русский](https://github.com/Imangazaliev/git-tips) | [한국어](https://github.com/mingrammer/git-tips) | [Tiếng Việt](https://github.com/hprobotic/git-tips) +[English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) | [Русский](https://github.com/Imangazaliev/git-tips) | [한국어](https://github.com/mingrammer/git-tips) | [Tiếng Việt](https://github.com/hprobotic/git-tips) | [日本語](https://github.com/isotai/git-tips) ### __Tools:__ From c333d5516f0cc47d2bd130cfcdf5edd4dfaea27c Mon Sep 17 00:00:00 2001 From: Steve Nolte Date: Fri, 18 Jan 2019 10:34:23 -0600 Subject: [PATCH 072/108] Change to the simpler merge-base command Good to showcase this command as it also provides additional features like --fork-point and --all. --- README.md | 2 +- tips.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 214852e..688d835 100644 --- a/README.md +++ b/README.md @@ -1080,7 +1080,7 @@ git fetch origin master:refs/remotes/origin/mymaster ## Find common ancestor of two branches ```sh -diff -u <(git rev-list --first-parent BranchA) <(git rev-list --first-parent BranchB) | sed -ne 's/^ //p' | head -1 +git merge-base ``` ## List unpushed git commits diff --git a/tips.json b/tips.json index ea1ee54..4ecadbe 100644 --- a/tips.json +++ b/tips.json @@ -445,7 +445,7 @@ "tip": "git fetch origin master:refs/remotes/origin/mymaster" }, { "title": "Find common ancestor of two branches", - "tip": "diff -u <(git rev-list --first-parent BranchA) <(git rev-list --first-parent BranchB) | sed -ne 's/^ //p' | head -1" + "tip": "git merge-base " }, { "title": "List unpushed git commits", "tip": "git log --branches --not --remotes", From b3cb087c3462d724dc3e8cf3a7ef7ece6f7d76b9 Mon Sep 17 00:00:00 2001 From: alizduwal Date: Wed, 20 Mar 2019 13:48:45 +0545 Subject: [PATCH 073/108] Add Nepali Localization --- README.md | 2 +- package-lock.json | 301 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 302 insertions(+), 1 deletion(-) create mode 100644 package-lock.json diff --git a/README.md b/README.md index 688d835..fb6717c 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ## git-tips > Collection of `git-tips`, want to add your tips? Checkout [contributing.md](./contributing.md) -[English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) | [Русский](https://github.com/Imangazaliev/git-tips) | [한국어](https://github.com/mingrammer/git-tips) | [Tiếng Việt](https://github.com/hprobotic/git-tips) | [日本語](https://github.com/isotai/git-tips) +[English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) | [Русский](https://github.com/Imangazaliev/git-tips) | [한국어](https://github.com/mingrammer/git-tips) | [Tiếng Việt](https://github.com/hprobotic/git-tips) | [日本語](https://github.com/isotai/git-tips) | [नेपाली](https://github.com/amarduwal/git-tips) ### __Tools:__ diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..2ca1e1c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,301 @@ +{ + "name": "tips", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "101": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/101/-/101-1.6.3.tgz", + "integrity": "sha512-4dmQ45yY0Dx24Qxp+zAsNLlMF6tteCyfVzgbulvSyC7tCyd3V8sW76sS0tHq8NpcbXfWTKasfyfzU1Kd86oKzw==", + "dev": true, + "requires": { + "clone": "^1.0.2", + "deep-eql": "^0.1.3", + "keypather": "^1.10.2" + } + }, + "1-liners": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/1-liners/-/1-liners-0.3.6.tgz", + "integrity": "sha1-SDD+eLdTejaZ+IpdQqjtwa9mB/8=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "array-find": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", + "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", + "dev": true + }, + "base64-js": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.2.tgz", + "integrity": "sha1-Ak8Pcq+iW3X5wO5zzU9V7Bvtl4Q=", + "dev": true + }, + "bops": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/bops/-/bops-0.0.6.tgz", + "integrity": "sha1-CC0dVfoB5g29wuvC26N/ZZVUzzo=", + "dev": true, + "requires": { + "base64-js": "0.0.2", + "to-utf8": "0.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "concat-stream": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.2.1.tgz", + "integrity": "sha1-81EAtsRjeL+6i2uA+fDQzN8T3GA=", + "dev": true, + "requires": { + "bops": "0.0.6" + } + }, + "deep-eql": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", + "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", + "dev": true, + "requires": { + "type-detect": "0.1.1" + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "doxie": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/doxie/-/doxie-0.2.4.tgz", + "integrity": "sha1-KZltv1dg/OdNvLTXnGAjHYoXu4U=", + "dev": true, + "requires": { + "1-liners": "^0.3.2", + "chalk": "^1.0.0", + "doxie-core": "^0.3.1", + "stream-to-json": "^0.0.1", + "tiny-error": "^0.2.1" + } + }, + "doxie-core": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/doxie-core/-/doxie-core-0.3.1.tgz", + "integrity": "sha1-PS+RQ+WF45Cpgwjcnk7zjxPPQss=", + "dev": true, + "requires": { + "1-liners": "^0.3.0", + "chalk": "^1.0.0", + "tiny-error": "^0.2.1" + } + }, + "doxie.append": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/doxie.append/-/doxie.append-0.1.0.tgz", + "integrity": "sha1-yHRoUEL18wlKTQwzNsPklMNpdOE=", + "dev": true, + "requires": { + "object-assign": "^3.0.0" + }, + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true + } + } + }, + "doxie.inject": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/doxie.inject/-/doxie.inject-0.1.1.tgz", + "integrity": "sha1-/QNYT4segOZEtcuUdpr+RH94oEc=", + "dev": true, + "requires": { + "1-liners": "^0.3.2", + "array-find": "^1.0.0", + "chalk": "^1.0.0", + "defined": "^1.0.0", + "object-assign": "^3.0.0", + "tiny-error": "^0.2.1" + }, + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true + } + } + }, + "doxie.output": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/doxie.output/-/doxie.output-0.3.0.tgz", + "integrity": "sha1-4H4Stn2qX8KLPsZn0HAv1ziZitE=", + "dev": true, + "requires": { + "1-liners": "^0.3.0", + "object-assign": "^3.0.0" + }, + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true + } + } + }, + "doxie.render": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/doxie.render/-/doxie.render-0.3.2.tgz", + "integrity": "sha1-Mva37g88NSSokT08grn6uqoKGPA=", + "dev": true, + "requires": { + "1-liners": "^0.3.1", + "chalk": "^1.0.0", + "object-assign": "^3.0.0", + "tiny-error": "^0.2.1" + }, + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true + } + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "husky": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/husky/-/husky-0.8.1.tgz", + "integrity": "sha1-7MeXuMTGiToz9IcDvJeppeUNhg8=", + "dev": true + }, + "keypather": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/keypather/-/keypather-1.10.2.tgz", + "integrity": "sha1-4ESWMtSz5RbyHMAUznxWRP3c5hQ=", + "dev": true, + "requires": { + "101": "^1.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "stream-to-json": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/stream-to-json/-/stream-to-json-0.0.1.tgz", + "integrity": "sha1-8DDyt47TjkkpPbiFZTarzCZ3FHM=", + "dev": true, + "requires": { + "concat-stream": "~1.2.0", + "once": "~1.3.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "tiny-error": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tiny-error/-/tiny-error-0.2.3.tgz", + "integrity": "sha1-KHas/leFGwcUMTwVNd/HBgp8Cbs=", + "dev": true, + "requires": { + "101": "^1.0.0", + "object-assign": "^4.0.1" + } + }, + "to-utf8": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/to-utf8/-/to-utf8-0.0.1.tgz", + "integrity": "sha1-0Xrqcv8vujm55DYBvns/9y4ImFI=", + "dev": true + }, + "type-detect": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", + "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} From 679bf0a1d7dcba4d7c92738488fb1795e9f6738d Mon Sep 17 00:00:00 2001 From: alizduwal Date: Fri, 22 Mar 2019 18:37:15 +0545 Subject: [PATCH 074/108] Tips for log, reset and list currently configuyre remotes --- tips.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tips.json b/tips.json index 4ecadbe..8e7f434 100644 --- a/tips.json +++ b/tips.json @@ -7,6 +7,9 @@ }, { "title": "Search change by content", "tip": "git log -S''" + }, { + "title": "Show changes over time for specific file", + "tip": "git log -p " }, { "title": "Remove sensitive data from history, after a push", "tip": "git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch ' --prune-empty --tag-name-filter cat -- --all && git push origin --force --all" @@ -19,6 +22,9 @@ }, { "title": "Git reset first commit", "tip": "git update-ref -d HEAD" + }, { + "title": "Reset: preserve uncommitted local changes", + "tip": "git reset --keep " }, { "title": "List all the conflicted files", "tip": "git diff --name-only --diff-filter=U" @@ -58,7 +64,7 @@ }, { "title": "Delete remote branch", "tip": "git push origin --delete ", - "alternatives": ["git push origin :"] + "alternatives": ["git push origin :", "git branch -dr "] }, { "title": "Delete local tag", "tip": "git tag -d " @@ -409,6 +415,9 @@ }, { "title": "Adding Remote name", "tip": "git remote add " + }, { + "title": "List all currently configured remotes", + "tip": "git remote -v" }, { "title": "Show the author, time and last revision made to each line of a given file", "tip": "git blame " From ebde7ca24bc847aaaf5560eb5e75a45df14d5398 Mon Sep 17 00:00:00 2001 From: max Date: Thu, 18 Apr 2019 11:43:06 +0300 Subject: [PATCH 075/108] tips.json: submodule to latest commit --- README.md | 33 +++++++++++++++++++++++++++++++++ tips.json | 5 ++++- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index fb6717c..4f18925 100644 --- a/README.md +++ b/README.md @@ -14,10 +14,12 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Everyday Git in twenty commands or so](#everyday-git-in-twenty-commands-or-so) * [Show helpful guides that come with Git](#show-helpful-guides-that-come-with-git) * [Search change by content](#search-change-by-content) +* [Show changes over time for specific file](#show-changes-over-time-for-specific-file) * [Remove sensitive data from history, after a push](#remove-sensitive-data-from-history-after-a-push) * [Sync with remote, overwrite local changes](#sync-with-remote-overwrite-local-changes) * [List of all files till a commit](#list-of-all-files-till-a-commit) * [Git reset first commit](#git-reset-first-commit) +* [Reset: preserve uncommitted local changes](#reset-preserve-uncommitted-local-changes) * [List all the conflicted files](#list-all-the-conflicted-files) * [List of all files changed in a commit](#list-of-all-files-changed-in-a-commit) * [Unstaged changes since last commit](#unstaged-changes-since-last-commit) @@ -139,6 +141,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Unstaging Staged file](#unstaging-staged-file) * [Force push to Remote Repository](#force-push-to-remote-repository) * [Adding Remote name](#adding-remote-name) +* [List all currently configured remotes](#list-all-currently-configured-remotes) * [Show the author, time and last revision made to each line of a given file](#show-the-author-time-and-last-revision-made-to-each-line-of-a-given-file) * [Group commits by authors and title](#group-commits-by-authors-and-title) * [Forced push but still ensure you don't overwrite other's work](#forced-push-but-still-ensure-you-dont-overwrite-others-work) @@ -169,6 +172,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Push a new local branch to remote repository and track](#push-a-new-local-branch-to-remote-repository-and-track) * [Change a branch base](#change-a-branch-base) * [Use SSH instead of HTTPs for remotes](#use-ssh-instead-of-https-for-remotes) +* [Update a submodule to the latest commit](#update-a-submodule-to-the-latest-commit) @@ -191,6 +195,11 @@ git help -g git log -S'' ``` +## Show changes over time for specific file +```sh +git log -p +``` + ## Remove sensitive data from history, after a push ```sh git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch ' --prune-empty --tag-name-filter cat -- --all && git push origin --force --all @@ -211,6 +220,11 @@ git ls-tree --name-only -r git update-ref -d HEAD ``` +## Reset: preserve uncommitted local changes +```sh +git reset --keep +``` + ## List all the conflicted files ```sh git diff --name-only --diff-filter=U @@ -295,6 +309,11 @@ __Alternatives:__ git push origin : ``` + +```sh +git branch -dr +``` + ## Delete local tag ```sh git tag -d @@ -1015,6 +1034,11 @@ git push -f git remote add ``` +## List all currently configured remotes +```sh +git remote -v +``` + ## Show the author, time and last revision made to each line of a given file ```sh git blame @@ -1191,5 +1215,14 @@ git rebase --onto git config --global url.'git@github.com:'.insteadOf 'https://github.com/' ``` +## Update a submodule to the latest commit +```sh +cd +git pull origin +cd +git add +git commit -m "submodule updated" +``` + diff --git a/tips.json b/tips.json index 8e7f434..6a1a001 100644 --- a/tips.json +++ b/tips.json @@ -512,5 +512,8 @@ }, { "title": "Use SSH instead of HTTPs for remotes", "tip": "git config --global url.'git@github.com:'.insteadOf 'https://github.com/'" - } + }, { + "title": "Update a submodule to the latest commit", + "tip": "cd \ngit pull origin \ncd \ngit add \ngit commit -m \"submodule updated\"" + } ] From a9d29fb4bc18aee51047cf01c28efc39a056c220 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 31 Jul 2019 23:09:35 +0900 Subject: [PATCH 076/108] Add Prevent auto replacing LF with CRLF --- README.md | 6 ++++++ tips.json | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4f18925..0e69629 100644 --- a/README.md +++ b/README.md @@ -173,6 +173,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Change a branch base](#change-a-branch-base) * [Use SSH instead of HTTPs for remotes](#use-ssh-instead-of-https-for-remotes) * [Update a submodule to the latest commit](#update-a-submodule-to-the-latest-commit) +* [Prevent auto replacing LF with CRLF](#prevent-auto-replacing-lf-with-crlf) @@ -1224,5 +1225,10 @@ git add git commit -m "submodule updated" ``` +## Prevent auto replacing LF with CRLF +```sh +git config --global core.autocrlf false +``` + diff --git a/tips.json b/tips.json index 6a1a001..3400539 100644 --- a/tips.json +++ b/tips.json @@ -515,5 +515,8 @@ }, { "title": "Update a submodule to the latest commit", "tip": "cd \ngit pull origin \ncd \ngit add \ngit commit -m \"submodule updated\"" - } + }, { + "title": "Prevent auto replacing LF with CRLF", + "tip": "git config --global core.autocrlf false" + } ] From 512ec7764c194d61e06e4f411a2e04ecfd06c92a Mon Sep 17 00:00:00 2001 From: Michal Date: Sat, 4 Apr 2020 16:32:08 +0200 Subject: [PATCH 077/108] [WIP] Polish version (#180) * update README.md first changes * update README.md few changes * update readme changed until git-stash * update readme updated until 987L * update readme updated internal links * update readme updated internal links * update readme small fix * update readme updated with internal links * update readme small fixes * update readme small fix * update readme small fixes --- README.md | 698 +++++++++++++++++++++++++++--------------------------- 1 file changed, 349 insertions(+), 349 deletions(-) diff --git a/README.md b/README.md index 0e69629..7ff3c8b 100644 --- a/README.md +++ b/README.md @@ -1,179 +1,179 @@ ## git-tips -> Collection of `git-tips`, want to add your tips? Checkout [contributing.md](./contributing.md) +> Kolekcja`git-tips`, chcesz dodać swoje wskazówki? Sprawdź [contributing.md](./contributing.md) -[English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) | [Русский](https://github.com/Imangazaliev/git-tips) | [한국어](https://github.com/mingrammer/git-tips) | [Tiếng Việt](https://github.com/hprobotic/git-tips) | [日本語](https://github.com/isotai/git-tips) | [नेपाली](https://github.com/amarduwal/git-tips) +[English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) | [Русский](https://github.com/Imangazaliev/git-tips) | [한국어](https://github.com/mingrammer/git-tips) | [Tiếng Việt](https://github.com/hprobotic/git-tips) | [日本語](https://github.com/isotai/git-tips) | [नेपाली](https://github.com/amarduwal/git-tips) | [Polski](https://github.com/mbiesiad/tips) -### __Tools:__ +### __Narzędzia:__ -* [git-tip](https://www.npmjs.com/package/git-tip) - A handy CLI to make optimum use of these tips. ([Here in Docker container](https://github.com/djoudi5/docker-git-tip)) +* [git-tip](https://www.npmjs.com/package/git-tip) - Poręczny interfejs CLI umożliwiający optymalne wykorzystanie tych wskazówek. ([Tutaj jest kontener Docker](https://github.com/djoudi5/docker-git-tip)) -P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. +P.S: Wszystkie te polecenia są testowane na `git version 2.7.4 (Apple Git-66)`. -* [Everyday Git in twenty commands or so](#everyday-git-in-twenty-commands-or-so) -* [Show helpful guides that come with Git](#show-helpful-guides-that-come-with-git) -* [Search change by content](#search-change-by-content) -* [Show changes over time for specific file](#show-changes-over-time-for-specific-file) -* [Remove sensitive data from history, after a push](#remove-sensitive-data-from-history-after-a-push) -* [Sync with remote, overwrite local changes](#sync-with-remote-overwrite-local-changes) -* [List of all files till a commit](#list-of-all-files-till-a-commit) -* [Git reset first commit](#git-reset-first-commit) -* [Reset: preserve uncommitted local changes](#reset-preserve-uncommitted-local-changes) -* [List all the conflicted files](#list-all-the-conflicted-files) -* [List of all files changed in a commit](#list-of-all-files-changed-in-a-commit) -* [Unstaged changes since last commit](#unstaged-changes-since-last-commit) -* [Changes staged for commit](#changes-staged-for-commit) -* [Show both staged and unstaged changes](#show-both-staged-and-unstaged-changes) -* [List all branches that are already merged into master](#list-all-branches-that-are-already-merged-into-master) -* [Quickly switch to the previous branch](#quickly-switch-to-the-previous-branch) -* [Remove branches that have already been merged with master](#remove-branches-that-have-already-been-merged-with-master) -* [List all branches and their upstreams, as well as last commit on branch](#list-all-branches-and-their-upstreams-as-well-as-last-commit-on-branch) -* [Track upstream branch](#track-upstream-branch) -* [Delete local branch](#delete-local-branch) -* [Delete remote branch](#delete-remote-branch) -* [Delete local tag](#delete-local-tag) -* [Delete remote tag](#delete-remote-tag) -* [Undo local changes with the last content in head](#undo-local-changes-with-the-last-content-in-head) -* [Revert: Undo a commit by creating a new commit](#revert-undo-a-commit-by-creating-a-new-commit) -* [Reset: Discard commits, advised for private branch](#reset-discard-commits-advised-for-private-branch) -* [Reword the previous commit message](#reword-the-previous-commit-message) -* [See commit history for just the current branch](#see-commit-history-for-just-the-current-branch) -* [Amend author.](#amend-author) -* [Reset author, after author has been changed in the global config.](#reset-author-after-author-has-been-changed-in-the-global-config) -* [Changing a remote's URL](#changing-a-remotes-url) -* [Get list of all remote references](#get-list-of-all-remote-references) -* [Get list of all local and remote branches](#get-list-of-all-local-and-remote-branches) -* [Get only remote branches](#get-only-remote-branches) -* [Stage parts of a changed file, instead of the entire file](#stage-parts-of-a-changed-file-instead-of-the-entire-file) -* [Get git bash completion](#get-git-bash-completion) -* [What changed since two weeks?](#what-changed-since-two-weeks) -* [See all commits made since forking from master](#see-all-commits-made-since-forking-from-master) -* [Pick commits across branches using cherry-pick](#pick-commits-across-branches-using-cherry-pick) -* [Find out branches containing commit-hash](#find-out-branches-containing-commit-hash) -* [Git Aliases](#git-aliases) -* [Saving current state of tracked files without commiting](#saving-current-state-of-tracked-files-without-commiting) -* [Saving current state of unstaged changes to tracked files](#saving-current-state-of-unstaged-changes-to-tracked-files) -* [Saving current state including untracked files](#saving-current-state-including-untracked-files) -* [Saving current state with message](#saving-current-state-with-message) -* [Saving current state of all files (ignored, untracked, and tracked)](#saving-current-state-of-all-files-ignored-untracked-and-tracked) -* [Show list of all saved stashes](#show-list-of-all-saved-stashes) -* [Apply any stash without deleting from the stashed list](#apply-any-stash-without-deleting-from-the-stashed-list) -* [Apply last stashed state and delete it from stashed list](#apply-last-stashed-state-and-delete-it-from-stashed-list) -* [Delete all stored stashes](#delete-all-stored-stashes) -* [Grab a single file from a stash](#grab-a-single-file-from-a-stash) -* [Show all tracked files](#show-all-tracked-files) -* [Show all untracked files](#show-all-untracked-files) -* [Show all ignored files](#show-all-ignored-files) -* [Create new working tree from a repository (git 2.5)](#create-new-working-tree-from-a-repository-git-25) -* [Create new working tree from HEAD state](#create-new-working-tree-from-head-state) -* [Untrack files without deleting](#untrack-files-without-deleting) -* [Before deleting untracked files/directory, do a dry run to get the list of these files/directories](#before-deleting-untracked-filesdirectory-do-a-dry-run-to-get-the-list-of-these-filesdirectories) -* [Forcefully remove untracked files](#forcefully-remove-untracked-files) -* [Forcefully remove untracked directory](#forcefully-remove-untracked-directory) -* [Update all the submodules](#update-all-the-submodules) -* [Show all commits in the current branch yet to be merged to master](#show-all-commits-in-the-current-branch-yet-to-be-merged-to-master) -* [Rename a branch](#rename-a-branch) -* [Rebases 'feature' to 'master' and merges it in to master ](#rebases-feature-to-master-and-merges-it-in-to-master) -* [Archive the `master` branch](#archive-the-master-branch) -* [Modify previous commit without modifying the commit message](#modify-previous-commit-without-modifying-the-commit-message) -* [Prunes references to remote branches that have been deleted in the remote.](#prunes-references-to-remote-branches-that-have-been-deleted-in-the-remote) -* [Retrieve the commit hash of the initial revision.](#retrieve-the-commit-hash-of-the-initial-revision) -* [Visualize the version tree.](#visualize-the-version-tree) -* [Visualize the tree including commits that are only referenced from reflogs](#visualize-the-tree-including-commits-that-are-only-referenced-from-reflogs) -* [Deploying git tracked subfolder to gh-pages](#deploying-git-tracked-subfolder-to-gh-pages) -* [Adding a project to repo using subtree](#adding-a-project-to-repo-using-subtree) -* [Get latest changes in your repo for a linked project using subtree](#get-latest-changes-in-your-repo-for-a-linked-project-using-subtree) -* [Export a branch with history to a file.](#export-a-branch-with-history-to-a-file) -* [Import from a bundle](#import-from-a-bundle) -* [Get the name of current branch.](#get-the-name-of-current-branch) -* [Ignore one file on commit (e.g. Changelog).](#ignore-one-file-on-commit-eg-changelog) -* [Stash changes before rebasing](#stash-changes-before-rebasing) -* [Fetch pull request by ID to a local branch](#fetch-pull-request-by-id-to-a-local-branch) -* [Show the most recent tag on the current branch.](#show-the-most-recent-tag-on-the-current-branch) -* [Show inline word diff.](#show-inline-word-diff) -* [Show changes using common diff tools.](#show-changes-using-common-diff-tools) -* [Don’t consider changes for tracked file.](#dont-consider-changes-for-tracked-file) -* [Undo assume-unchanged.](#undo-assume-unchanged) -* [Clean the files from `.gitignore`.](#clean-the-files-from-gitignore) -* [Restore deleted file.](#restore-deleted-file) -* [Restore file to a specific commit-hash](#restore-file-to-a-specific-commit-hash) -* [Always rebase instead of merge on pull.](#always-rebase-instead-of-merge-on-pull) -* [List all the alias and configs.](#list-all-the-alias-and-configs) -* [Make git case sensitive.](#make-git-case-sensitive) -* [Add custom editors.](#add-custom-editors) -* [Auto correct typos.](#auto-correct-typos) -* [Check if the change was a part of a release.](#check-if-the-change-was-a-part-of-a-release) -* [Dry run. (any command that supports dry-run flag should do.)](#dry-run-any-command-that-supports-dry-run-flag-should-do) -* [Marks your commit as a fix of a previous commit.](#marks-your-commit-as-a-fix-of-a-previous-commit) +* [Codziennie Git w około dwudziestu poleceniach](#codziennie-git-w-około-dwudziestu-poleceniach) +* [Pokaż przydatne przewodniki dla Git](#pokaż-przydatne-przewodniki-dla-git) +* [Wyszukaj zmianę według zawartości](#wyszukaj-zmianę-według-zawartości) +* [Pokaż zmiany w czasie dla określonego pliku](#pokaż-zmiany-w-czasie-dla-określonego-pliku) +* [Usuń wrażliwe dane z historii po push](#usuń-wrażliwe-dane-z-historii-po-push) +* [Synchronizuj ze zdalnym, zastępuj lokalne zmiany](#synchronizuj-ze-zdalnym-zastępuj-lokalne-zmiany) +* [Lista wszystkich plików do commita](#lista-wszystkich-plików-do-commita) +* [Git zresetuj pierwszy commit](#git-zresetuj-pierwszy-commit) +* [Reset: zachowaj niezatwierdzone zmiany lokalne](#reset-zachowaj-niezatwierdzone-zmiany-lokalne) +* [Wyświetl wszystkie skonfliktowane pliki](#wyświetl-wszystkie-skonfliktowane-pliki) +* [Lista wszystkich plików zmienionych w commitcie](#lista-wszystkich-plików-zmienionych-w-commitcie) +* [Zmienione ale niezaktualizowane zmiany od ostatniego zatwierdzenia](#zmienione-ale-niezaktualizowane-zmiany-od-ostatniego-zatwierdzenia) +* [Porównanie zmian z poczekalni z ostatnią zmianą](#porównanie-zmian-z-poczekalni-z-ostatnią-zmianą) +* [Pokaż wszystkie zmiany w śledzonych plikach.](#pokaż-wszystkie-zmiany-w-śledzonych-plikach) +* [Lista wszystkich gałęzi, które są już zmergowane do mastera](#lista-wszystkich-gałęzi-które-są-już-zmergowane-do-mastera) +* [Szybko przełącz na poprzednią gałąź](#szybko-przełącz-na-poprzednią-gałąź) +* [Usuń gałęzie które zostały już połączone z master](#usuń-gałęzie-które-zostały-już-połączone-z-master) +* [Wymień wszystkie gałęzie i ich wyższe poziomy, a także ostatnie zatwierdzenie na gałęzi](#wymień-wszystkie-gałęzie-i-ich-wyższe-poziomy-a-także-ostatnie-zatwierdzenie-na-gałęzi) +* [Śledź odgałęzienie](#śledź-odgałęzienie) +* [Usuń lokalną gałąź](#usuń-lokalną-gałąź) +* [Usuń zdalną gałąź](#usuń-zdalną-gałąź) +* [Usuń lokalny tag](#usuń-lokalny-tag) +* [Usuń zdalny tag](#usuń-zdalny-tag) +* [Cofnij zmiany lokalne z ostatnią zawartością w head](#cofnij-zmiany-lokalne-z-ostatnią-zawartością-w-head) +* [Cofnij: Cofnij commita, tworząc nowego commita](#cofnij-cofnij-commita-tworząc-nowego-commita) +* [Reset: Odrzuć commity, zalecane dla prywatnej gałęzi](#reset-odrzuć-commity-zalecane-dla-prywatnej-gałęzi) +* [Zmień kolejność poprzedniej wiadomości commita](#zmień-kolejność-poprzedniej-wiadomości-commita) +* [Zobacz historię zatwierdzeń tylko dla bieżącej gałęzi](#zobacz-historię-zatwierdzeń-tylko-dla-bieżącej-gałęzi) +* [Zmień autora.](#zmień-autora) +* [Resetuj autora po zmianie autora w global config.](#resetuj-autora-po-zmianie-autora-w-global-config) +* [Zmiana zdalnego adresu URL](#zmiana-zdalnego-adresu-URL) +* [Uzyskaj listę wszystkich zdalnych referencji](#uzyskaj-listę-wszystkich-zdalnych-referencji) +* [Uzyskaj listę wszystkich lokalnych i zdalnych gałęzi](#uzyskaj-listę-wszystkich-lokalnych-i-zdalnych-gałęzi) +* [Uzyskaj tylko zdalne gałęzie](#uzyskaj-tylko-zdalne-gałęzie) +* [Śledź części zmienionego pliku zamiast całego pliku](#śledź-części-zmienionego-pliku-zamiast-całego-pliku) +* [Uzyskaj ukończenie git bash](#uzyskaj-ukończenie-git-bash) +* [Co zmieniło się od dwóch tygodni?](#co-zmieniło-się-od-dwóch-tygodni) +* [Zobacz wszystkie zatwierdzenia dokonane od czasu forkowania z mastera](#zobacz-wszystkie-zatwierdzenia-dokonane-od-czasu-forkowania-z-mastera) +* [Wybierz zatwierdzenia między gałęziami za pomocą cherry-pick](#wybierz-zatwierdzenia-między-gałęziami-za-pomocą-cherry-pick) +* [Znajdź gałęzie zawierające commit-hash](#znajdź-gałęzie-zawierające-commit-hash) +* [Aliasy Gita](#aliasy-gita) +* [Zapisywanie bieżącego stanu śledzonych plików bez zatwierdzania](#zapisywanie-bieżącego-stanu-śledzonych-plików-bez-zatwierdzania) +* [Zapisywanie aktualnego stanu zmian unstaged do śledzonych plików](#zapisywanie-aktualnego-stanu-zmian-unstaged-do-śledzonych-plików) +* [Zapisywanie bieżącego stanu, w tym nieśledzonych plików](#zapisywanie-bieżącego-stanu-w-tym-nieśledzonych-plików) +* [Zapisywanie aktualnego stanu z komunikatem](#zapisywanie-aktualnego-stanu-z-komunikatem) +* [Zapisywanie bieżącego stanu wszystkich plików (ignorowanych, nieśledzonych i śledzonych)](#zapisywanie-bieżącego-stanu-wszystkich-plików-ignorowanych-nieśledzonych-i-śledzonych) +* [Pokaż listę wszystkich zapisanych stashes](#pokaż-listę-wszystkich-zapisanych-stashes) +* [Zastosuj dowolony stash bez usuwania z listy stashed](#zastosuj-dowolony-stash-bez-usuwania-z-listy-stashed) +* [Zastosuj ostatni stan stashed i usuń go z listy stashed](#zastosuj-ostatni-stan-stashed-i-usuń-go-z-listy-stashed) +* [Usuń wszystkie przechowywane stashes](#usuń-wszystkie-przechowywane-stashes) +* [Weź pojedynczy plik z pliku stash](#weź-pojedynczy-plik-z-pliku-stash) +* [Pokaż wszystkie śledzone pliki](#pokaż-wszystkie-śledzone-pliki) +* [Pokaż wszystkie nieśledzone pliki](#pokaż-wszystkie-nieśledzone-pliki) +* [Pokaż wszystkie zignorowane pliki](#pokaż-wszystkie-zignorowane-pliki) +* [Utwórz nowe drzewo robocze z repozytorium (git 2.5)](#utwórz-nowe-drzewo-robocze-z-repozytorium-git-2-5) +* [Utwórz nowe drzewo robocze ze stanu HEAD](#utwórz-nowe-drzewo-robocze-ze-stanu-head) +* [Przestań śledzić pliki bez usuwania](#przestań-śledzić-pliki-bez-usuwania) +* [Przed usunięciem nieśledzonych plików / katalogu, wykonaj próbę, aby uzyskać listę tych plików / katalogów](#przed-usunięciem-nieśledzonych-plików-katalogu-wykonaj-próbę-aby-uzyskać-listę-tych-plików-katalogów) +* [Wymuś usunięcie nieśledzonych plików](#wymuś-usunięcie-nieśledzonych-plików) +* [Wymuś usunięcie nieśledzonego katalogu](#wymuś-usunięcie-nieśledzonego-katalogu) +* [Zaktualizuj wszystkie submoduły](#zaktualizuj-wszystkie-submoduły) +* [Pokaż wszystkie zatwierdzenia w bieżącym branchu, które mają zostać zmergowane do mastera](#pokaż-wszystkie-zatwierdzenia-w-bieżącym-branchu-które-mają-zostać-zmergowane-do-mastera) +* [Zmień nazwę brancha](#zmień-nazwę-brancha) +* [Rebase 'feature' do 'master' i merguj to do master ](#rebase-feature-do-master-i-merguj-to-do-master) +* [Zarchiwizuj branch `master`](#zarchiwizuj-branch-master) +* [Zmodyfikuj poprzednie zatwierdzenie bez modyfikowania komunikatu zatwierdzenia](#zmodyfikuj-poprzednie-zatwierdzenie-bez-modyfikowania-komunikatu-zatwierdzenia) +* [Czyści odniesienia do zdalnych gałęzi, które zostały usunięte na zdalnym.](#czyści-odniesienia-do-zdalnych-gałęzi-które-zostały-usunięte-na-zdalnym) +* [Pobierz skrót zatwierdzenia z początkowej wersji.](#pobierz-skrót-zatwierdzenia-z-początkowej-wersji) +* [Wizualizuj drzewo wersji.](#wizualizuj-drzewo-wersji) +* [Wizualizuj drzewo, w tym zatwierdzenia, do których odwołuje się tylko dziennik rejestrów](#wizualizuj-drzewo-w-tym-zatwierdzenia-do-których-odwołuje-się-tylko-dziennik-rejestrów) +* [Wdrażanie podfolderu śledzonego przez git do gh-pages](#wdrażanie-podfolderu-śledzonego-przez-git-do-gh-pages) +* [Dodanie projektu do repozytorium za pomocą poddrzewa](#dodanie-projektu-do-repozytorium-za-pomocą-poddrzewa) +* [Pobierz najnowsze zmiany w repozytorium dla połączonego projektu za pomocą poddrzewa](#pobierz-najnowsze-zmiany-w-repozytorium-dla-połączonego-projektu-za-pomocą-poddrzewa) +* [Wyeksportuj gałąź z historią do pliku.](#wyeksportuj-gałąź-z-historią-do-pliku) +* [Importuj z pakietu](#importuj-z-pakietu) +* [Uzyskaj nazwę bieżącego brancha.](#uzyskaj-nazwę-bieżącego-brancha) +* [Zignoruj jeden plik przy zatwierdzaniu (np. Changelog).](#zignoruj-jeden-plik-przy-zatwierdzaniu-np-changelog) +* [Stashuj zmiany przed rebasing'iem](#stashuj-zmiany-przed-rebasingiem) +* [Pobierz pull request według identyfikatora do lokalnego brancha](#pobierz-pull-request-według-identyfikatora-do-lokalnego-brancha) +* [Pokaż najnowszy tag w bieżącym branchu.](#pokaż-najnowszy-tag-w-bieżącym-branchu) +* [Pokaż inline word diff.](#pokaż-inline-word-diff) +* [Pokaż zmiany używając narzędzi common diff.](#pokaż-zmiany-używając-narzędzi-common-diff) +* [Nie rozważaj zmian w śledzonym pliku.](#nie-rozważaj-zmian-w-śledzonym-pliku) +* [Cofnij assume-unchanged.](#cofnij-assume-unchanged) +* [Wyczyść pliki z `.gitignore`.](#wyczyść-pliki-z-gitignore) +* [Przywróć usunięty plik.](#przywróć-usunięty-plik) +* [Przywróć plik do określonego commit-hash](#przywróć-plik-do-określonego-commit-hash) +* [Zawsze rebase zamiast merge na pull.](#zawsze-rebase-zamiast-merge-na-pull) +* [Wyświetl wszystkie aliasy i konfiguracje.](#wyświetl-wszystkie-aliasy-i-konfiguracje) +* [Uwzględnij wielkość liter w git.](#uwzględnij-wielkość-liter-w-git) +* [Dodaj niestandardowe edytory.](#dodaj-niestandardowe-edytory) +* [Automatyczne poprawianie literówek.](#automatyczne-poprawianie-literówek) +* [Sprawdź, czy zmiana była częścią wydania.](#sprawdź-czy-zmiana-była-częścią-wydania) +* [Dry run. (dowolne polecenie obsługujące flagę dry-run powinno zrobić.)](#dry-run-dowolne-polecenie-obsługujące-flagę-dry-run-powinno-zrobić) +* [Oznacza twoje zatwierdzenie jako poprawkę poprzedniego zatwierdzenia.](#oznacza-twoje-zatwierdzenie-jako-poprawkę-poprzedniego-zatwierdzenia) * [Squash fixup commits normal commits.](#squash-fixup-commits-normal-commits) -* [Skip staging area during commit.](#skip-staging-area-during-commit) -* [Interactive staging.](#interactive-staging) -* [List ignored files.](#list-ignored-files) -* [Status of ignored files.](#status-of-ignored-files) -* [Commits in Branch1 that are not in Branch2](#commits-in-branch1-that-are-not-in-branch2) -* [List n last commits](#list-n-last-commits) -* [Reuse recorded resolution, record and reuse previous conflicts resolutions.](#reuse-recorded-resolution-record-and-reuse-previous-conflicts-resolutions) -* [Open all conflicted files in an editor.](#open-all-conflicted-files-in-an-editor) -* [Count unpacked number of objects and their disk consumption.](#count-unpacked-number-of-objects-and-their-disk-consumption) -* [Prune all unreachable objects from the object database.](#prune-all-unreachable-objects-from-the-object-database) -* [Instantly browse your working repository in gitweb.](#instantly-browse-your-working-repository-in-gitweb) -* [View the GPG signatures in the commit log](#view-the-gpg-signatures-in-the-commit-log) -* [Remove entry in the global config.](#remove-entry-in-the-global-config) -* [Checkout a new branch without any history](#checkout-a-new-branch-without-any-history) -* [Extract file from another branch.](#extract-file-from-another-branch) -* [List only the root and merge commits.](#list-only-the-root-and-merge-commits) -* [Change previous two commits with an interactive rebase.](#change-previous-two-commits-with-an-interactive-rebase) -* [List all branch is WIP](#list-all-branch-is-wip) -* [Find guilty with binary search](#find-guilty-with-binary-search) +* [Pomiń staging area podczas commitowania.](#pomiń-staging-area-podczas-commitowania) +* [Interaktywny staging.](#interaktywny-staging) +* [Lista ignorowanych plików.](#lista-ignorowanych-plików) +* [Status zignorowanych plików.](#status-zignorowanych-plików) +* [Commity w Branch1 które nie są w Branch2](#commity-w-Branch1-które-nie-są-w-Branch2) +* [Wyświetl listę n ostatnich commitów](#wyświetl-listę-n-ostatnich-commitów) +* [Ponownie użyj recorded resolution, record and reuse previous conflicts resolutions.](#ponownie-użyj-recorded-resolution-record-and-reuse-previous-conflicts-resolutions) +* [Otwórz wszystkie skonfliktowane pliki w edytorze.](#otwórz-wszystkie-skonfliktowane-pliki-w-edytorze) +* [Policz wypakowaną liczbę obiektów i ich zużycie dysku.](#policz-wypakowaną-liczbę-obiektów-i-ich-zużycie-dysku) +* [Wyczyść wszystkie nieosiągalne obiekty z bazy danych obiektów.](#wyczyść-wszystkie-nieosiągalne-obiekty-z-bazy-danych-obiektów) +* [Natychmiast przeglądaj działające repozytorium w gitweb.](#natychmiast-przeglądaj-działające-repozytorium-w-gitweb) +* [Wyświetl podpisy GPG w dzienniku zatwierdzeń](#wyświetl-podpisy-gpg-w-dzienniku-zatwierdzeń) +* [Usuń wpis w globalnej konfiguracji.](#usuń-wpis-w-globalnej-konfiguracji) +* [Checkout nowego brancha bez historii](#checkout-nowego-brancha-bez-historii) +* [Wyodrębnij plik z innej gałęzi.](#wyodrębnij-plik-z-innej-gałęzi) +* [Wymień tylko root i merge commits.](#wymień-tylko-root-i-merge-commits) +* [Zmień poprzednie dwa zatwierdzenia za pomocą interaktywnego rebase.](#zmień-poprzednie-dwa-zatwierdzenia-za-pomocą-interaktywnego-rebase) +* [Wymień wszystkie gałęzie, których praca jest w toku (WIP)](#wymień-wszystkie-gałęzie-których-praca-jest-w-toku-wip) +* [Znajdź nieczyste korzystając z wyszukiwania binarnego](#znajdź-nieczyste-korzystając-z-wyszukiwania-binarnego) * [Bypass pre-commit and commit-msg githooks](#bypass-pre-commit-and-commit-msg-githooks) -* [List commits and changes to a specific file (even through renaming)](#list-commits-and-changes-to-a-specific-file-even-through-renaming) -* [Clone a single branch](#clone-a-single-branch) -* [Create and switch new branch](#create-and-switch-new-branch) -* [Ignore file mode changes on commits](#ignore-file-mode-changes-on-commits) -* [Turn off git colored terminal output](#turn-off-git-colored-terminal-output) -* [Specific color settings](#specific-color-settings) -* [Show all local branches ordered by recent commits](#show-all-local-branches-ordered-by-recent-commits) -* [Find lines matching the pattern (regex or string) in tracked files](#find-lines-matching-the-pattern-regex-or-string-in-tracked-files) -* [Clone a shallow copy of a repository](#clone-a-shallow-copy-of-a-repository) -* [Search Commit log across all branches for given text](#search-commit-log-across-all-branches-for-given-text) -* [Get first commit in a branch (from master)](#get-first-commit-in-a-branch-from-master) +* [Lista zatwierdzeń i zmian w określonym pliku (nawet poprzez zmianę nazwy)](#lista-zatwierdzeń-i-zmian-w-określonym-pliku-nawet-poprzez-zmianę-nazwy) +* [Klonuj pojedynczy branch](#klonuj-pojedynczy-branch) +* [Utwórz i zmień nowy branch](#utwórz-i-zmień-nowy-branch) +* [Ignoruj tryb zmiany plików na commitach](#ignoruj-tryb-zmiany-plików-na-commitach) +* [Wyłącz git colored terminal output](#wyłącz-git-colored-terminal-output) +* [Określone ustawienia kolorów](#określone-ustawienia-kolorów) +* [Pokaż wszystkie lokalne branche uporządkowane według ostatnich commitów](#pokaż-wszystkie-lokalne-branche-uporządkowane-według-ostatnich-commitów) +* [Znajdź wiersze pasujące do wzorca (wyrażenia regularnego lub ciągu) w śledzonych plikach](#znajdź-wiersze-pasujące-do-wzorca-wyrażenia-regularnego-lub-ciągu-w-śledzonych-plikach) +* [Sklonuj płytką kopię repozytorium](#sklonuj-płytką-kopię-repozytorium) +* [Wyszukaj Commit log we wszystkich branchach dla podanego tekstu](#wyszukaj-commit-log-we-wszystkich-branchach-dla-podanego-tekstu) +* [Uzyskaj pierwszy commit w branchu (z master)](#uzyskaj-pierwszy-commit-w-branchu-z-master) * [Unstaging Staged file](#unstaging-staged-file) -* [Force push to Remote Repository](#force-push-to-remote-repository) -* [Adding Remote name](#adding-remote-name) -* [List all currently configured remotes](#list-all-currently-configured-remotes) -* [Show the author, time and last revision made to each line of a given file](#show-the-author-time-and-last-revision-made-to-each-line-of-a-given-file) -* [Group commits by authors and title](#group-commits-by-authors-and-title) -* [Forced push but still ensure you don't overwrite other's work](#forced-push-but-still-ensure-you-dont-overwrite-others-work) -* [Show how many lines does an author contribute](#show-how-many-lines-does-an-author-contribute) -* [Revert: Reverting an entire merge](#revert-reverting-an-entire-merge) -* [Number of commits in a branch](#number-of-commits-in-a-branch) -* [Alias: git undo](#alias-git-undo) -* [Add object notes](#add-object-notes) -* [Show all the git-notes](#show-all-the-git-notes) -* [Apply commit from another repository](#apply-commit-from-another-repository) +* [Wymuś wypchnięcie do zdalnego repozytorium](#wymuś-wypchnięcie-do-zdalnego-repozytorium) +* [Dodawanie nazwy zdalnej](#dodawanie-nazwy-zdalnej) +* [Wyświetl listę wszystkich aktualnie skonfigurowanych zdalnych](#wyświetl-listę-wszystkich-aktualnie-skonfigurowanych-zdalnych) +* [Pokaż autora, czas i ostatnią wersję dokonaną w każdej linii danego pliku](#pokaż-autora-czas-i-ostatnią-wersję-dokonaną-w-każdej-linii-danego-pliku) +* [Grupuj commity według autorów i tytułów](#grupuj-commity-według-autorów-i-tytułów) +* [Wymuś pusha, ale nadal upewnij się, że nie nadpisujesz pracy innych](#wymuś-pusha-ale-nadal-upewnij-się-że-nie-nadpisujesz-pracy-innych) +* [Pokaż, ile wierszy ma współautor](#pokaż-ile-wierszy-ma-współautor) +* [Cofnij: Cofnięcie całego merge](#cofnij-cofnięcie-całego-merge) +* [Liczba commitów w branchu](#liczba-commitów-w-branchu) +* [Alias: git undo - cofnij](#alias-git-undo-cofnij) +* [Dodaj notatkę obiektu](#dodaj-notatkę-obiektu) +* [Pokaż wszystkie git-notes](#pokaż-wszystkie-git-notes) +* [Zastosuj commit z innego repozytorium](#zastosuj-commit-z-innego-repozytorium) * [Specific fetch reference](#specific-fetch-reference) -* [Find common ancestor of two branches](#find-common-ancestor-of-two-branches) -* [List unpushed git commits](#list-unpushed-git-commits) -* [Add everything, but whitespace changes](#add-everything-but-whitespace-changes) -* [Edit [local/global] git config](#edit-localglobal-git-config) -* [blame on certain range](#blame-on-certain-range) -* [Show a Git logical variable.](#show-a-git-logical-variable) +* [Znajdź wspólnego przodka dwóch gałęzi](#znajdź-wspólnego-przodka-dwóch-gałęzi) +* [Wyświetl unpushed git commits](#wyświetl-unpushed-git-commits) +* [Dodaj wszystko, ale bez zmiany białych znaków](#dodaj-wszystko-ale-bez-zmiany-białych-znaków) +* [Edytuj [local/global] git config](#edytuj-local-global-git-config) +* [Blame on certain range](#blame-on-certain-range) +* [Pokaż zmienną logiczną Git.](#pokaż-zmienną-logiczną-git) * [Preformatted patch file.](#preformatted-patch-file) -* [Get the repo name.](#get-the-repo-name) -* [logs between date range](#logs-between-date-range) -* [Exclude author from logs](#exclude-author-from-logs) -* [Generates a summary of pending changes](#generates-a-summary-of-pending-changes) -* [List references in a remote repository](#list-references-in-a-remote-repository) -* [Backup untracked files.](#backup-untracked-files) -* [List all git aliases](#list-all-git-aliases) -* [Show git status short](#show-git-status-short) -* [Checkout a commit prior to a day ago](#checkout-a-commit-prior-to-a-day-ago) -* [Push a new local branch to remote repository and track](#push-a-new-local-branch-to-remote-repository-and-track) -* [Change a branch base](#change-a-branch-base) -* [Use SSH instead of HTTPs for remotes](#use-ssh-instead-of-https-for-remotes) -* [Update a submodule to the latest commit](#update-a-submodule-to-the-latest-commit) -* [Prevent auto replacing LF with CRLF](#prevent-auto-replacing-lf-with-crlf) +* [Uzyskaj nazwę repozytorium.](#uzyskaj-nazwę-repozytorium) +* [Logi między zakresem dat](#logi-między-zakresem-dat) +* [Wyklucz autora z logów](#wyklucz-autora-z-logów) +* [Generuj podsumowanie oczekujących zmian](#generuj-podsumowanie-oczekujących-zmian) +* [Lista referencji w zdalnym repozytorium](#lista-referencji-w-zdalnym-repozytorium) +* [Utwórz kopię zapasową nieśledzonych plików.](#utwórz-kopię-zapasową-nieśledzonych-plików) +* [Wyświetl wszystkie aliasy git](#wyświetl-wszystkie-aliasy-git) +* [Pokaż git status short](#pokaż-git-status-short) +* [Sprawdź commit sprzed dnia](#sprawdź-commit-sprzed-dnia) +* [Popchnij nowy branch lokalny do zdalnego repozytorium i śledź](#popchnij-nowy-branch-lokalny-do-zdalnego-repozytorium-i-śledź) +* [Zmień branch base](#zmień-branch-base) +* [Użyj SSH zamiast HTTPs dla remotes](#użyj-ssh-zamiast-https-dla-remotes) +* [Zaktualizuj submoduł do najnowszego commita](#zaktualizuj-submoduł-do-najnowszego-commita) +* [Zapobiegaj automatycznemu zastępowaniu LF przez CRLF](#zapobiegaj-automatycznemu-zastępowaniu-lf-przez-crlf) @@ -181,131 +181,131 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. -## Everyday Git in twenty commands or so +## Codziennie Git w około dwudziestu poleceniach ```sh git help everyday ``` -## Show helpful guides that come with Git +## Pokaż przydatne przewodniki dla Git ```sh git help -g ``` -## Search change by content +## Wyszukaj zmianę według zawartości ```sh git log -S'' ``` -## Show changes over time for specific file +## Pokaż zmiany w czasie dla określonego pliku ```sh git log -p ``` -## Remove sensitive data from history, after a push +## Usuń wrażliwe dane z historii po push ```sh git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch ' --prune-empty --tag-name-filter cat -- --all && git push origin --force --all ``` -## Sync with remote, overwrite local changes +## Synchronizuj ze zdalnym, zastępuj lokalne zmiany ```sh git fetch origin && git reset --hard origin/master && git clean -f -d ``` -## List of all files till a commit +## Lista wszystkich plików do commita ```sh git ls-tree --name-only -r ``` -## Git reset first commit +## Git zresetuj pierwszy commit ```sh git update-ref -d HEAD ``` -## Reset: preserve uncommitted local changes +## Reset: zachowaj niezatwierdzone zmiany lokalne ```sh git reset --keep ``` -## List all the conflicted files +## Wyświetl wszystkie skonfliktowane pliki ```sh git diff --name-only --diff-filter=U ``` -## List of all files changed in a commit +## Lista wszystkich plików zmienionych w commitcie ```sh git diff-tree --no-commit-id --name-only -r ``` -## Unstaged changes since last commit +## Zmienione ale niezaktualizowane zmiany od ostatniego zatwierdzenia ```sh git diff ``` -## Changes staged for commit +## Porównanie zmian z poczekalni z ostatnią zmianą ```sh git diff --cached ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git diff --staged ``` -## Show both staged and unstaged changes +## Pokaż wszystkie zmiany w śledzonych plikach. ```sh git diff HEAD ``` -## List all branches that are already merged into master +## Lista wszystkich gałęzi, które są już zmergowane do mastera ```sh git branch --merged master ``` -## Quickly switch to the previous branch +## Szybko przełącz na poprzednią gałąź ```sh git checkout - ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git checkout @{-1} ``` -## Remove branches that have already been merged with master +## Usuń gałęzie które zostały już połączone z master ```sh git branch --merged master | grep -v '^\*' | xargs -n 1 git branch -d ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git branch --merged master | grep -v '^\*\| master' | xargs -n 1 git branch -d # will not delete master if master is not checked out ``` -## List all branches and their upstreams, as well as last commit on branch +## Wymień wszystkie gałęzie i ich wyższe poziomy, a także ostatnie zatwierdzenie na gałęzi ```sh git branch -vv ``` -## Track upstream branch +## Śledź odgałęzienie ```sh git branch -u origin/mybranch ``` -## Delete local branch +## Usuń lokalną gałąź ```sh git branch -d ``` -## Delete remote branch +## Usuń zdalną gałąź ```sh git push origin --delete ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git push origin : ``` @@ -315,143 +315,143 @@ git push origin : git branch -dr ``` -## Delete local tag +## Usuń lokalny tag ```sh git tag -d ``` -## Delete remote tag +## Usuń zdalny tag ```sh git push origin :refs/tags/ ``` -## Undo local changes with the last content in head +## Cofnij zmiany lokalne z ostatnią zawartością w head ```sh git checkout -- ``` -## Revert: Undo a commit by creating a new commit +## Cofnij: Cofnij commita, tworząc nowego commita ```sh git revert ``` -## Reset: Discard commits, advised for private branch +## Reset: Odrzuć commity, zalecane dla prywatnej gałęzi ```sh git reset ``` -## Reword the previous commit message +## Zmień kolejność poprzedniej wiadomości commita ```sh git commit -v --amend ``` -## See commit history for just the current branch +## Zobacz historię zatwierdzeń tylko dla bieżącej gałęzi ```sh git cherry -v master ``` -## Amend author. +## Zmień autora. ```sh git commit --amend --author='Author Name ' ``` -## Reset author, after author has been changed in the global config. +## Resetuj autora po zmianie autora w global config. ```sh git commit --amend --reset-author --no-edit ``` -## Changing a remote's URL +## Zmiana zdalnego adresu URL ```sh git remote set-url origin ``` -## Get list of all remote references +## Uzyskaj listę wszystkich zdalnych referencji ```sh git remote ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git remote show ``` -## Get list of all local and remote branches +## Uzyskaj listę wszystkich lokalnych i zdalnych gałęzi ```sh git branch -a ``` -## Get only remote branches +## Uzyskaj tylko zdalne gałęzie ```sh git branch -r ``` -## Stage parts of a changed file, instead of the entire file +## Śledź części zmienionego pliku zamiast całego pliku ```sh git add -p ``` -## Get git bash completion +## Uzyskaj ukończenie git bash ```sh curl -L http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc ``` -## What changed since two weeks? +## Co zmieniło się od dwóch tygodni? ```sh git log --no-merges --raw --since='2 weeks ago' ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git whatchanged --since='2 weeks ago' ``` -## See all commits made since forking from master +## Zobacz wszystkie zatwierdzenia dokonane od czasu forkowania z mastera ```sh git log --no-merges --stat --reverse master.. ``` -## Pick commits across branches using cherry-pick +## Wybierz zatwierdzenia między gałęziami za pomocą cherry-pick ```sh git checkout && git cherry-pick ``` -## Find out branches containing commit-hash +## Znajdź gałęzie zawierające commit-hash ```sh git branch -a --contains ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git branch --contains ``` -## Git Aliases +## Aliasy Gita ```sh git config --global alias. git config --global alias.st status ``` -## Saving current state of tracked files without commiting +## Zapisywanie bieżącego stanu śledzonych plików bez zatwierdzania ```sh git stash ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git stash save ``` -## Saving current state of unstaged changes to tracked files +## Zapisywanie aktualnego stanu zmian unstaged do śledzonych plików ```sh git stash -k ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git stash --keep-index ``` @@ -461,13 +461,13 @@ git stash --keep-index git stash save --keep-index ``` -## Saving current state including untracked files +## Zapisywanie bieżącego stanu, w tym nieśledzonych plików ```sh git stash -u ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git stash save -u ``` @@ -477,18 +477,18 @@ git stash save -u git stash save --include-untracked ``` -## Saving current state with message +## Zapisywanie aktualnego stanu z komunikatem ```sh git stash save ``` -## Saving current state of all files (ignored, untracked, and tracked) +## Zapisywanie bieżącego stanu wszystkich plików (ignorowanych, nieśledzonych i śledzonych) ```sh git stash -a ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git stash --all ``` @@ -498,107 +498,107 @@ git stash --all git stash save --all ``` -## Show list of all saved stashes +## Pokaż listę wszystkich zapisanych stashes ```sh git stash list ``` -## Apply any stash without deleting from the stashed list +## Zastosuj dowolony stash bez usuwania z listy stashed ```sh git stash apply ``` -## Apply last stashed state and delete it from stashed list +## Zastosuj ostatni stan stashed i usuń go z listy stashed ```sh git stash pop ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git stash apply stash@{0} && git stash drop stash@{0} ``` -## Delete all stored stashes +## Usuń wszystkie przechowywane stashes ```sh git stash clear ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git stash drop ``` -## Grab a single file from a stash +## Weź pojedynczy plik z pliku stash ```sh git checkout -- ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git checkout stash@{0} -- ``` -## Show all tracked files +## Pokaż wszystkie śledzone pliki ```sh git ls-files -t ``` -## Show all untracked files +## Pokaż wszystkie nieśledzone pliki ```sh git ls-files --others ``` -## Show all ignored files +## Pokaż wszystkie zignorowane pliki ```sh git ls-files --others -i --exclude-standard ``` -## Create new working tree from a repository (git 2.5) +## Utwórz nowe drzewo robocze z repozytorium (git 2.5) ```sh git worktree add -b ``` -## Create new working tree from HEAD state +## Utwórz nowe drzewo robocze ze stanu HEAD ```sh git worktree add --detach HEAD ``` -## Untrack files without deleting +## Przestań śledzić pliki bez usuwania ```sh git rm --cached ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git rm --cached -r ``` -## Before deleting untracked files/directory, do a dry run to get the list of these files/directories +## Przed usunięciem nieśledzonych plików / katalogu, wykonaj próbę, aby uzyskać listę tych plików / katalogów ```sh git clean -n ``` -## Forcefully remove untracked files +## Wymuś usunięcie nieśledzonych plików ```sh git clean -f ``` -## Forcefully remove untracked directory +## Wymuś usunięcie nieśledzonego katalogu ```sh git clean -f -d ``` -## Update all the submodules +## Zaktualizuj wszystkie submoduły ```sh git submodule foreach git pull ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git submodule update --init --recursive ``` @@ -608,61 +608,61 @@ git submodule update --init --recursive git submodule update --remote ``` -## Show all commits in the current branch yet to be merged to master +## Pokaż wszystkie zatwierdzenia w bieżącym branchu, które mają zostać zmergowane do mastera ```sh git cherry -v master ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git cherry -v master ``` -## Rename a branch +## Zmień nazwę brancha ```sh git branch -m ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git branch -m [] ``` -## Rebases 'feature' to 'master' and merges it in to master +## Rebase 'feature' do 'master' i merguj to do master ```sh git rebase master feature && git checkout master && git merge - ``` -## Archive the `master` branch +## Zarchiwizuj branch `master` ```sh git archive master --format=zip --output=master.zip ``` -## Modify previous commit without modifying the commit message +## Zmodyfikuj poprzednie zatwierdzenie bez modyfikowania komunikatu zatwierdzenia ```sh git add --all && git commit --amend --no-edit ``` -## Prunes references to remote branches that have been deleted in the remote. +## Czyści odniesienia do zdalnych gałęzi, które zostały usunięte na zdalnym. ```sh git fetch -p ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git remote prune origin ``` -## Retrieve the commit hash of the initial revision. +## Pobierz skrót zatwierdzenia z początkowej wersji. ```sh git rev-list --reverse HEAD | head -1 ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git rev-list --max-parents=0 HEAD ``` @@ -677,13 +677,13 @@ git log --pretty=oneline | tail -1 | cut -c 1-40 git log --pretty=oneline --reverse | head -1 | cut -c 1-40 ``` -## Visualize the version tree. +## Wizualizuj drzewo wersji. ```sh git log --pretty=oneline --graph --decorate --all ``` -__Alternatives:__ +__Alternatywnie:__ ```sh gitk --all ``` @@ -693,145 +693,145 @@ gitk --all git log --graph --pretty=format:'%C(auto) %h | %s | %an | %ar%d' ``` -## Visualize the tree including commits that are only referenced from reflogs +## Wizualizuj drzewo, w tym zatwierdzenia, do których odwołuje się tylko dziennik rejestrów ```sh git log --graph --decorate --oneline $(git rev-list --walk-reflogs --all) ``` -## Deploying git tracked subfolder to gh-pages +## Wdrażanie podfolderu śledzonego przez git do gh-pages ```sh git subtree push --prefix subfolder_name origin gh-pages ``` -## Adding a project to repo using subtree +## Dodanie projektu do repozytorium za pomocą poddrzewa ```sh git subtree add --prefix=/ --squash git@github.com:/.git master ``` -## Get latest changes in your repo for a linked project using subtree +## Pobierz najnowsze zmiany w repozytorium dla połączonego projektu za pomocą poddrzewa ```sh git subtree pull --prefix=/ --squash git@github.com:/.git master ``` -## Export a branch with history to a file. +## Wyeksportuj gałąź z historią do pliku. ```sh git bundle create ``` -## Import from a bundle +## Importuj z pakietu ```sh git clone repo.bundle -b ``` -## Get the name of current branch. +## Uzyskaj nazwę bieżącego brancha. ```sh git rev-parse --abbrev-ref HEAD ``` -## Ignore one file on commit (e.g. Changelog). +## Zignoruj jeden plik przy zatwierdzaniu (np. Changelog). ```sh git update-index --assume-unchanged Changelog; git commit -a; git update-index --no-assume-unchanged Changelog ``` -## Stash changes before rebasing +## Stashuj zmiany przed rebasing'iem ```sh git rebase --autostash ``` -## Fetch pull request by ID to a local branch +## Pobierz pull request według identyfikatora do lokalnego brancha ```sh git fetch origin pull//head: ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git pull origin pull//head: ``` -## Show the most recent tag on the current branch. +## Pokaż najnowszy tag w bieżącym branchu. ```sh git describe --tags --abbrev=0 ``` -## Show inline word diff. +## Pokaż inline word diff. ```sh git diff --word-diff ``` -## Show changes using common diff tools. +## Pokaż zmiany używając narzędzi common diff. ```sh git difftool [-t ] ``` -## Don’t consider changes for tracked file. +## Nie rozważaj zmian w śledzonym pliku. ```sh git update-index --assume-unchanged ``` -## Undo assume-unchanged. +## Cofnij assume-unchanged. ```sh git update-index --no-assume-unchanged ``` -## Clean the files from `.gitignore`. +## Wyczyść pliki z `.gitignore`. ```sh git clean -X -f ``` -## Restore deleted file. +## Przywróć usunięty plik. ```sh git checkout ^ -- ``` -## Restore file to a specific commit-hash +## Przywróć plik do określonego commit-hash ```sh git checkout -- ``` -## Always rebase instead of merge on pull. +## Zawsze rebase zamiast merge na pull. ```sh git config --global pull.rebase true ``` -__Alternatives:__ +__Alternatywnie:__ ```sh #git < 1.7.9 git config --global branch.autosetuprebase always ``` -## List all the alias and configs. +## Wyświetl wszystkie aliasy i konfiguracje. ```sh git config --list ``` -## Make git case sensitive. +## Uwzględnij wielkość liter w git. ```sh git config --global core.ignorecase false ``` -## Add custom editors. +## Dodaj niestandardowe edytory. ```sh git config --global core.editor '$EDITOR' ``` -## Auto correct typos. +## Automatyczne poprawianie literówek. ```sh git config --global help.autocorrect 1 ``` -## Check if the change was a part of a release. +## Sprawdź, czy zmiana była częścią wydania. ```sh git name-rev --name-only ``` -## Dry run. (any command that supports dry-run flag should do.) +## Dry run. (dowolne polecenie obsługujące flagę dry-run powinno zrobić.) ```sh git clean -fd --dry-run ``` -## Marks your commit as a fix of a previous commit. +## Oznacza twoje zatwierdzenie jako poprawkę poprzedniego zatwierdzenia. ```sh git commit --fixup ``` @@ -841,103 +841,103 @@ git commit --fixup git rebase -i --autosquash ``` -## Skip staging area during commit. +## Pomiń staging area podczas commitowania. ```sh git commit --only ``` -## Interactive staging. +## Interaktywny staging. ```sh git add -i ``` -## List ignored files. +## Lista ignorowanych plików. ```sh git check-ignore * ``` -## Status of ignored files. +## Status zignorowanych plików. ```sh git status --ignored ``` -## Commits in Branch1 that are not in Branch2 +## Commity w Branch1 które nie są w Branch2 ```sh git log Branch1 ^Branch2 ``` -## List n last commits +## Wyświetl listę n ostatnich commitów ```sh git log - ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git log -n ``` -## Reuse recorded resolution, record and reuse previous conflicts resolutions. +## Ponownie użyj recorded resolution, record and reuse previous conflicts resolutions. ```sh git config --global rerere.enabled 1 ``` -## Open all conflicted files in an editor. +## Otwórz wszystkie skonfliktowane pliki w edytorze. ```sh git diff --name-only | uniq | xargs $EDITOR ``` -## Count unpacked number of objects and their disk consumption. +## Policz wypakowaną liczbę obiektów i ich zużycie dysku. ```sh git count-objects --human-readable ``` -## Prune all unreachable objects from the object database. +## Wyczyść wszystkie nieosiągalne obiekty z bazy danych obiektów. ```sh git gc --prune=now --aggressive ``` -## Instantly browse your working repository in gitweb. +## Natychmiast przeglądaj działające repozytorium w gitweb. ```sh git instaweb [--local] [--httpd=] [--port=] [--browser=] ``` -## View the GPG signatures in the commit log +## Wyświetl podpisy GPG w dzienniku zatwierdzeń ```sh git log --show-signature ``` -## Remove entry in the global config. +## Usuń wpis w globalnej konfiguracji. ```sh git config --global --unset ``` -## Checkout a new branch without any history +## Checkout nowego brancha bez historii ```sh git checkout --orphan ``` -## Extract file from another branch. +## Wyodrębnij plik z innej gałęzi. ```sh git show : ``` -## List only the root and merge commits. +## Wymień tylko root i merge commits. ```sh git log --first-parent ``` -## Change previous two commits with an interactive rebase. +## Zmień poprzednie dwa zatwierdzenia za pomocą interaktywnego rebase. ```sh git rebase --interactive HEAD~2 ``` -## List all branch is WIP +## Wymień wszystkie gałęzie, których praca jest w toku (WIP) ```sh git checkout master && git branch --no-merged ``` -## Find guilty with binary search +## Znajdź nieczyste korzystając z wyszukiwania binarnego ```sh git bisect start # Search start git bisect bad # Set point to bad commit @@ -953,69 +953,69 @@ git bisect reset # Finish search git commit --no-verify ``` -## List commits and changes to a specific file (even through renaming) +## Lista zatwierdzeń i zmian w określonym pliku (nawet poprzez zmianę nazwy) ```sh git log --follow -p -- ``` -## Clone a single branch +## Klonuj pojedynczy branch ```sh git clone -b --single-branch https://github.com/user/repo.git ``` -## Create and switch new branch +## Utwórz i zmień nowy branch ```sh git checkout -b ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git branch && git checkout ``` -## Ignore file mode changes on commits +## Ignoruj tryb zmiany plików na commitach ```sh git config core.fileMode false ``` -## Turn off git colored terminal output +## Wyłącz git colored terminal output ```sh git config --global color.ui false ``` -## Specific color settings +## Określone ustawienia kolorów ```sh git config --global ``` -## Show all local branches ordered by recent commits +## Pokaż wszystkie lokalne branche uporządkowane według ostatnich commitów ```sh git for-each-ref --sort=-committerdate --format='%(refname:short)' refs/heads/ ``` -## Find lines matching the pattern (regex or string) in tracked files +## Znajdź wiersze pasujące do wzorca (wyrażenia regularnego lub ciągu) w śledzonych plikach ```sh git grep --heading --line-number 'foo bar' ``` -## Clone a shallow copy of a repository +## Sklonuj płytką kopię repozytorium ```sh git clone https://github.com/user/repo.git --depth 1 ``` -## Search Commit log across all branches for given text +## Wyszukaj Commit log we wszystkich branchach dla podanego tekstu ```sh git log --all --grep='' ``` -## Get first commit in a branch (from master) +## Uzyskaj pierwszy commit w branchu (z master) ```sh git log --oneline master.. | tail -1 ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git log --reverse master.. | head -6 ``` @@ -1025,75 +1025,75 @@ git log --reverse master.. | head -6 git reset HEAD ``` -## Force push to Remote Repository +## Wymuś wypchnięcie do zdalnego repozytorium ```sh git push -f ``` -## Adding Remote name +## Dodawanie nazwy zdalnej ```sh git remote add ``` -## List all currently configured remotes +## Wyświetl listę wszystkich aktualnie skonfigurowanych zdalnych ```sh git remote -v ``` -## Show the author, time and last revision made to each line of a given file +## Pokaż autora, czas i ostatnią wersję dokonaną w każdej linii danego pliku ```sh git blame ``` -## Group commits by authors and title +## Grupuj commity według autorów i tytułów ```sh git shortlog ``` -## Forced push but still ensure you don't overwrite other's work +## Wymuś pusha, ale nadal upewnij się, że nie nadpisujesz pracy innych ```sh git push --force-with-lease ``` -## Show how many lines does an author contribute +## Pokaż, ile wierszy ma współautor ```sh git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | gawk '{ add += ; subs += ; loc += - } END { printf "added lines: %s removed lines: %s total lines: %s ", add, subs, loc }' - ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | awk '{ add += ; subs += ; loc += - } END { printf "added lines: %s, removed lines: %s, total lines: %s ", add, subs, loc }' - # on Mac OSX ``` -## Revert: Reverting an entire merge +## Cofnij: Cofnięcie całego merge ```sh git revert -m 1 ``` -## Number of commits in a branch +## Liczba commitów w branchu ```sh git rev-list --count ``` -## Alias: git undo +## Alias: git undo - cofnij ```sh git config --global alias.undo '!f() { git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; }; f' ``` -## Add object notes +## Dodaj notatkę obiektu ```sh git notes add -m 'Note on the previous commit....' ``` -## Show all the git-notes +## Pokaż wszystkie git-notes ```sh git log --show-notes='*' ``` -## Apply commit from another repository +## Zastosuj commit z innego repozytorium ```sh git --git-dir=/.git format-patch -k -1 --stdout | git am -3 -k ``` @@ -1103,18 +1103,18 @@ git --git-dir=/.git format-patch -k -1 --stdout | git am -3 - git fetch origin master:refs/remotes/origin/mymaster ``` -## Find common ancestor of two branches +## Znajdź wspólnego przodka dwóch gałęzi ```sh git merge-base ``` -## List unpushed git commits +## Wyświetl unpushed git commits ```sh git log --branches --not --remotes ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git log @{u}.. ``` @@ -1124,12 +1124,12 @@ git log @{u}.. git cherry -v ``` -## Add everything, but whitespace changes +## Dodaj wszystko, ale bez zmiany białych znaków ```sh git diff --ignore-all-space | git apply --cached ``` -## Edit [local/global] git config +## Edytuj [local/global] git config ```sh git config [--global] --edit ``` @@ -1139,7 +1139,7 @@ git config [--global] --edit git blame -L , ``` -## Show a Git logical variable. +## Pokaż zmienną logiczną Git. ```sh git var -l | ``` @@ -1149,74 +1149,74 @@ git var -l | git format-patch -M upstream..topic ``` -## Get the repo name. +## Uzyskaj nazwę repozytorium. ```sh git rev-parse --show-toplevel ``` -## logs between date range +## logi między zakresem dat ```sh git log --since='FEB 1 2017' --until='FEB 14 2017' ``` -## Exclude author from logs +## Wyklucz autora z logów ```sh git log --perl-regexp --author='^((?!excluded-author-regex).*) ``` -## Generates a summary of pending changes +## Generuj podsumowanie oczekujących zmian ```sh git request-pull v1.0 https://git.ko.xz/project master:for-linus ``` -## List references in a remote repository +## Lista referencji w zdalnym repozytorium ```sh git ls-remote git://git.kernel.org/pub/scm/git/git.git ``` -## Backup untracked files. +## Utwórz kopię zapasową nieśledzonych plików. ```sh git ls-files --others -i --exclude-standard | xargs zip untracked.zip ``` -## List all git aliases +## Wyświetl wszystkie aliasy git ```sh git config -l | grep alias | sed 's/^alias\.//g' ``` -__Alternatives:__ +__Alternatywnie:__ ```sh git config -l | grep alias | cut -d '.' -f 2 ``` -## Show git status short +## Pokaż git status short ```sh git status --short --branch ``` -## Checkout a commit prior to a day ago +## Sprawdź commit sprzed dnia ```sh git checkout master@{yesterday} ``` -## Push a new local branch to remote repository and track +## Popchnij nowy branch lokalny do zdalnego repozytorium i śledź ```sh git push -u origin ``` -## Change a branch base +## Zmień branch base ```sh git rebase --onto ``` -## Use SSH instead of HTTPs for remotes +## Użyj SSH zamiast HTTPs dla remotes ```sh git config --global url.'git@github.com:'.insteadOf 'https://github.com/' ``` -## Update a submodule to the latest commit +## Zaktualizuj submoduł do najnowszego commita ```sh cd git pull origin @@ -1225,7 +1225,7 @@ git add git commit -m "submodule updated" ``` -## Prevent auto replacing LF with CRLF +## Zapobiegaj automatycznemu zastępowaniu LF przez CRLF ```sh git config --global core.autocrlf false ``` From daf32cf5add029f653cbebf1ea7754434c859d17 Mon Sep 17 00:00:00 2001 From: "hemanth.hm" Date: Tue, 28 Apr 2020 12:48:35 -0700 Subject: [PATCH 078/108] Revert "[WIP] Polish version (#180)" This reverts commit 512ec7764c194d61e06e4f411a2e04ecfd06c92a. --- README.md | 698 +++++++++++++++++++++++++++--------------------------- 1 file changed, 349 insertions(+), 349 deletions(-) diff --git a/README.md b/README.md index 7ff3c8b..0e69629 100644 --- a/README.md +++ b/README.md @@ -1,179 +1,179 @@ ## git-tips -> Kolekcja`git-tips`, chcesz dodać swoje wskazówki? Sprawdź [contributing.md](./contributing.md) +> Collection of `git-tips`, want to add your tips? Checkout [contributing.md](./contributing.md) -[English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) | [Русский](https://github.com/Imangazaliev/git-tips) | [한국어](https://github.com/mingrammer/git-tips) | [Tiếng Việt](https://github.com/hprobotic/git-tips) | [日本語](https://github.com/isotai/git-tips) | [नेपाली](https://github.com/amarduwal/git-tips) | [Polski](https://github.com/mbiesiad/tips) +[English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) | [Русский](https://github.com/Imangazaliev/git-tips) | [한국어](https://github.com/mingrammer/git-tips) | [Tiếng Việt](https://github.com/hprobotic/git-tips) | [日本語](https://github.com/isotai/git-tips) | [नेपाली](https://github.com/amarduwal/git-tips) -### __Narzędzia:__ +### __Tools:__ -* [git-tip](https://www.npmjs.com/package/git-tip) - Poręczny interfejs CLI umożliwiający optymalne wykorzystanie tych wskazówek. ([Tutaj jest kontener Docker](https://github.com/djoudi5/docker-git-tip)) +* [git-tip](https://www.npmjs.com/package/git-tip) - A handy CLI to make optimum use of these tips. ([Here in Docker container](https://github.com/djoudi5/docker-git-tip)) -P.S: Wszystkie te polecenia są testowane na `git version 2.7.4 (Apple Git-66)`. +P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. -* [Codziennie Git w około dwudziestu poleceniach](#codziennie-git-w-około-dwudziestu-poleceniach) -* [Pokaż przydatne przewodniki dla Git](#pokaż-przydatne-przewodniki-dla-git) -* [Wyszukaj zmianę według zawartości](#wyszukaj-zmianę-według-zawartości) -* [Pokaż zmiany w czasie dla określonego pliku](#pokaż-zmiany-w-czasie-dla-określonego-pliku) -* [Usuń wrażliwe dane z historii po push](#usuń-wrażliwe-dane-z-historii-po-push) -* [Synchronizuj ze zdalnym, zastępuj lokalne zmiany](#synchronizuj-ze-zdalnym-zastępuj-lokalne-zmiany) -* [Lista wszystkich plików do commita](#lista-wszystkich-plików-do-commita) -* [Git zresetuj pierwszy commit](#git-zresetuj-pierwszy-commit) -* [Reset: zachowaj niezatwierdzone zmiany lokalne](#reset-zachowaj-niezatwierdzone-zmiany-lokalne) -* [Wyświetl wszystkie skonfliktowane pliki](#wyświetl-wszystkie-skonfliktowane-pliki) -* [Lista wszystkich plików zmienionych w commitcie](#lista-wszystkich-plików-zmienionych-w-commitcie) -* [Zmienione ale niezaktualizowane zmiany od ostatniego zatwierdzenia](#zmienione-ale-niezaktualizowane-zmiany-od-ostatniego-zatwierdzenia) -* [Porównanie zmian z poczekalni z ostatnią zmianą](#porównanie-zmian-z-poczekalni-z-ostatnią-zmianą) -* [Pokaż wszystkie zmiany w śledzonych plikach.](#pokaż-wszystkie-zmiany-w-śledzonych-plikach) -* [Lista wszystkich gałęzi, które są już zmergowane do mastera](#lista-wszystkich-gałęzi-które-są-już-zmergowane-do-mastera) -* [Szybko przełącz na poprzednią gałąź](#szybko-przełącz-na-poprzednią-gałąź) -* [Usuń gałęzie które zostały już połączone z master](#usuń-gałęzie-które-zostały-już-połączone-z-master) -* [Wymień wszystkie gałęzie i ich wyższe poziomy, a także ostatnie zatwierdzenie na gałęzi](#wymień-wszystkie-gałęzie-i-ich-wyższe-poziomy-a-także-ostatnie-zatwierdzenie-na-gałęzi) -* [Śledź odgałęzienie](#śledź-odgałęzienie) -* [Usuń lokalną gałąź](#usuń-lokalną-gałąź) -* [Usuń zdalną gałąź](#usuń-zdalną-gałąź) -* [Usuń lokalny tag](#usuń-lokalny-tag) -* [Usuń zdalny tag](#usuń-zdalny-tag) -* [Cofnij zmiany lokalne z ostatnią zawartością w head](#cofnij-zmiany-lokalne-z-ostatnią-zawartością-w-head) -* [Cofnij: Cofnij commita, tworząc nowego commita](#cofnij-cofnij-commita-tworząc-nowego-commita) -* [Reset: Odrzuć commity, zalecane dla prywatnej gałęzi](#reset-odrzuć-commity-zalecane-dla-prywatnej-gałęzi) -* [Zmień kolejność poprzedniej wiadomości commita](#zmień-kolejność-poprzedniej-wiadomości-commita) -* [Zobacz historię zatwierdzeń tylko dla bieżącej gałęzi](#zobacz-historię-zatwierdzeń-tylko-dla-bieżącej-gałęzi) -* [Zmień autora.](#zmień-autora) -* [Resetuj autora po zmianie autora w global config.](#resetuj-autora-po-zmianie-autora-w-global-config) -* [Zmiana zdalnego adresu URL](#zmiana-zdalnego-adresu-URL) -* [Uzyskaj listę wszystkich zdalnych referencji](#uzyskaj-listę-wszystkich-zdalnych-referencji) -* [Uzyskaj listę wszystkich lokalnych i zdalnych gałęzi](#uzyskaj-listę-wszystkich-lokalnych-i-zdalnych-gałęzi) -* [Uzyskaj tylko zdalne gałęzie](#uzyskaj-tylko-zdalne-gałęzie) -* [Śledź części zmienionego pliku zamiast całego pliku](#śledź-części-zmienionego-pliku-zamiast-całego-pliku) -* [Uzyskaj ukończenie git bash](#uzyskaj-ukończenie-git-bash) -* [Co zmieniło się od dwóch tygodni?](#co-zmieniło-się-od-dwóch-tygodni) -* [Zobacz wszystkie zatwierdzenia dokonane od czasu forkowania z mastera](#zobacz-wszystkie-zatwierdzenia-dokonane-od-czasu-forkowania-z-mastera) -* [Wybierz zatwierdzenia między gałęziami za pomocą cherry-pick](#wybierz-zatwierdzenia-między-gałęziami-za-pomocą-cherry-pick) -* [Znajdź gałęzie zawierające commit-hash](#znajdź-gałęzie-zawierające-commit-hash) -* [Aliasy Gita](#aliasy-gita) -* [Zapisywanie bieżącego stanu śledzonych plików bez zatwierdzania](#zapisywanie-bieżącego-stanu-śledzonych-plików-bez-zatwierdzania) -* [Zapisywanie aktualnego stanu zmian unstaged do śledzonych plików](#zapisywanie-aktualnego-stanu-zmian-unstaged-do-śledzonych-plików) -* [Zapisywanie bieżącego stanu, w tym nieśledzonych plików](#zapisywanie-bieżącego-stanu-w-tym-nieśledzonych-plików) -* [Zapisywanie aktualnego stanu z komunikatem](#zapisywanie-aktualnego-stanu-z-komunikatem) -* [Zapisywanie bieżącego stanu wszystkich plików (ignorowanych, nieśledzonych i śledzonych)](#zapisywanie-bieżącego-stanu-wszystkich-plików-ignorowanych-nieśledzonych-i-śledzonych) -* [Pokaż listę wszystkich zapisanych stashes](#pokaż-listę-wszystkich-zapisanych-stashes) -* [Zastosuj dowolony stash bez usuwania z listy stashed](#zastosuj-dowolony-stash-bez-usuwania-z-listy-stashed) -* [Zastosuj ostatni stan stashed i usuń go z listy stashed](#zastosuj-ostatni-stan-stashed-i-usuń-go-z-listy-stashed) -* [Usuń wszystkie przechowywane stashes](#usuń-wszystkie-przechowywane-stashes) -* [Weź pojedynczy plik z pliku stash](#weź-pojedynczy-plik-z-pliku-stash) -* [Pokaż wszystkie śledzone pliki](#pokaż-wszystkie-śledzone-pliki) -* [Pokaż wszystkie nieśledzone pliki](#pokaż-wszystkie-nieśledzone-pliki) -* [Pokaż wszystkie zignorowane pliki](#pokaż-wszystkie-zignorowane-pliki) -* [Utwórz nowe drzewo robocze z repozytorium (git 2.5)](#utwórz-nowe-drzewo-robocze-z-repozytorium-git-2-5) -* [Utwórz nowe drzewo robocze ze stanu HEAD](#utwórz-nowe-drzewo-robocze-ze-stanu-head) -* [Przestań śledzić pliki bez usuwania](#przestań-śledzić-pliki-bez-usuwania) -* [Przed usunięciem nieśledzonych plików / katalogu, wykonaj próbę, aby uzyskać listę tych plików / katalogów](#przed-usunięciem-nieśledzonych-plików-katalogu-wykonaj-próbę-aby-uzyskać-listę-tych-plików-katalogów) -* [Wymuś usunięcie nieśledzonych plików](#wymuś-usunięcie-nieśledzonych-plików) -* [Wymuś usunięcie nieśledzonego katalogu](#wymuś-usunięcie-nieśledzonego-katalogu) -* [Zaktualizuj wszystkie submoduły](#zaktualizuj-wszystkie-submoduły) -* [Pokaż wszystkie zatwierdzenia w bieżącym branchu, które mają zostać zmergowane do mastera](#pokaż-wszystkie-zatwierdzenia-w-bieżącym-branchu-które-mają-zostać-zmergowane-do-mastera) -* [Zmień nazwę brancha](#zmień-nazwę-brancha) -* [Rebase 'feature' do 'master' i merguj to do master ](#rebase-feature-do-master-i-merguj-to-do-master) -* [Zarchiwizuj branch `master`](#zarchiwizuj-branch-master) -* [Zmodyfikuj poprzednie zatwierdzenie bez modyfikowania komunikatu zatwierdzenia](#zmodyfikuj-poprzednie-zatwierdzenie-bez-modyfikowania-komunikatu-zatwierdzenia) -* [Czyści odniesienia do zdalnych gałęzi, które zostały usunięte na zdalnym.](#czyści-odniesienia-do-zdalnych-gałęzi-które-zostały-usunięte-na-zdalnym) -* [Pobierz skrót zatwierdzenia z początkowej wersji.](#pobierz-skrót-zatwierdzenia-z-początkowej-wersji) -* [Wizualizuj drzewo wersji.](#wizualizuj-drzewo-wersji) -* [Wizualizuj drzewo, w tym zatwierdzenia, do których odwołuje się tylko dziennik rejestrów](#wizualizuj-drzewo-w-tym-zatwierdzenia-do-których-odwołuje-się-tylko-dziennik-rejestrów) -* [Wdrażanie podfolderu śledzonego przez git do gh-pages](#wdrażanie-podfolderu-śledzonego-przez-git-do-gh-pages) -* [Dodanie projektu do repozytorium za pomocą poddrzewa](#dodanie-projektu-do-repozytorium-za-pomocą-poddrzewa) -* [Pobierz najnowsze zmiany w repozytorium dla połączonego projektu za pomocą poddrzewa](#pobierz-najnowsze-zmiany-w-repozytorium-dla-połączonego-projektu-za-pomocą-poddrzewa) -* [Wyeksportuj gałąź z historią do pliku.](#wyeksportuj-gałąź-z-historią-do-pliku) -* [Importuj z pakietu](#importuj-z-pakietu) -* [Uzyskaj nazwę bieżącego brancha.](#uzyskaj-nazwę-bieżącego-brancha) -* [Zignoruj jeden plik przy zatwierdzaniu (np. Changelog).](#zignoruj-jeden-plik-przy-zatwierdzaniu-np-changelog) -* [Stashuj zmiany przed rebasing'iem](#stashuj-zmiany-przed-rebasingiem) -* [Pobierz pull request według identyfikatora do lokalnego brancha](#pobierz-pull-request-według-identyfikatora-do-lokalnego-brancha) -* [Pokaż najnowszy tag w bieżącym branchu.](#pokaż-najnowszy-tag-w-bieżącym-branchu) -* [Pokaż inline word diff.](#pokaż-inline-word-diff) -* [Pokaż zmiany używając narzędzi common diff.](#pokaż-zmiany-używając-narzędzi-common-diff) -* [Nie rozważaj zmian w śledzonym pliku.](#nie-rozważaj-zmian-w-śledzonym-pliku) -* [Cofnij assume-unchanged.](#cofnij-assume-unchanged) -* [Wyczyść pliki z `.gitignore`.](#wyczyść-pliki-z-gitignore) -* [Przywróć usunięty plik.](#przywróć-usunięty-plik) -* [Przywróć plik do określonego commit-hash](#przywróć-plik-do-określonego-commit-hash) -* [Zawsze rebase zamiast merge na pull.](#zawsze-rebase-zamiast-merge-na-pull) -* [Wyświetl wszystkie aliasy i konfiguracje.](#wyświetl-wszystkie-aliasy-i-konfiguracje) -* [Uwzględnij wielkość liter w git.](#uwzględnij-wielkość-liter-w-git) -* [Dodaj niestandardowe edytory.](#dodaj-niestandardowe-edytory) -* [Automatyczne poprawianie literówek.](#automatyczne-poprawianie-literówek) -* [Sprawdź, czy zmiana była częścią wydania.](#sprawdź-czy-zmiana-była-częścią-wydania) -* [Dry run. (dowolne polecenie obsługujące flagę dry-run powinno zrobić.)](#dry-run-dowolne-polecenie-obsługujące-flagę-dry-run-powinno-zrobić) -* [Oznacza twoje zatwierdzenie jako poprawkę poprzedniego zatwierdzenia.](#oznacza-twoje-zatwierdzenie-jako-poprawkę-poprzedniego-zatwierdzenia) +* [Everyday Git in twenty commands or so](#everyday-git-in-twenty-commands-or-so) +* [Show helpful guides that come with Git](#show-helpful-guides-that-come-with-git) +* [Search change by content](#search-change-by-content) +* [Show changes over time for specific file](#show-changes-over-time-for-specific-file) +* [Remove sensitive data from history, after a push](#remove-sensitive-data-from-history-after-a-push) +* [Sync with remote, overwrite local changes](#sync-with-remote-overwrite-local-changes) +* [List of all files till a commit](#list-of-all-files-till-a-commit) +* [Git reset first commit](#git-reset-first-commit) +* [Reset: preserve uncommitted local changes](#reset-preserve-uncommitted-local-changes) +* [List all the conflicted files](#list-all-the-conflicted-files) +* [List of all files changed in a commit](#list-of-all-files-changed-in-a-commit) +* [Unstaged changes since last commit](#unstaged-changes-since-last-commit) +* [Changes staged for commit](#changes-staged-for-commit) +* [Show both staged and unstaged changes](#show-both-staged-and-unstaged-changes) +* [List all branches that are already merged into master](#list-all-branches-that-are-already-merged-into-master) +* [Quickly switch to the previous branch](#quickly-switch-to-the-previous-branch) +* [Remove branches that have already been merged with master](#remove-branches-that-have-already-been-merged-with-master) +* [List all branches and their upstreams, as well as last commit on branch](#list-all-branches-and-their-upstreams-as-well-as-last-commit-on-branch) +* [Track upstream branch](#track-upstream-branch) +* [Delete local branch](#delete-local-branch) +* [Delete remote branch](#delete-remote-branch) +* [Delete local tag](#delete-local-tag) +* [Delete remote tag](#delete-remote-tag) +* [Undo local changes with the last content in head](#undo-local-changes-with-the-last-content-in-head) +* [Revert: Undo a commit by creating a new commit](#revert-undo-a-commit-by-creating-a-new-commit) +* [Reset: Discard commits, advised for private branch](#reset-discard-commits-advised-for-private-branch) +* [Reword the previous commit message](#reword-the-previous-commit-message) +* [See commit history for just the current branch](#see-commit-history-for-just-the-current-branch) +* [Amend author.](#amend-author) +* [Reset author, after author has been changed in the global config.](#reset-author-after-author-has-been-changed-in-the-global-config) +* [Changing a remote's URL](#changing-a-remotes-url) +* [Get list of all remote references](#get-list-of-all-remote-references) +* [Get list of all local and remote branches](#get-list-of-all-local-and-remote-branches) +* [Get only remote branches](#get-only-remote-branches) +* [Stage parts of a changed file, instead of the entire file](#stage-parts-of-a-changed-file-instead-of-the-entire-file) +* [Get git bash completion](#get-git-bash-completion) +* [What changed since two weeks?](#what-changed-since-two-weeks) +* [See all commits made since forking from master](#see-all-commits-made-since-forking-from-master) +* [Pick commits across branches using cherry-pick](#pick-commits-across-branches-using-cherry-pick) +* [Find out branches containing commit-hash](#find-out-branches-containing-commit-hash) +* [Git Aliases](#git-aliases) +* [Saving current state of tracked files without commiting](#saving-current-state-of-tracked-files-without-commiting) +* [Saving current state of unstaged changes to tracked files](#saving-current-state-of-unstaged-changes-to-tracked-files) +* [Saving current state including untracked files](#saving-current-state-including-untracked-files) +* [Saving current state with message](#saving-current-state-with-message) +* [Saving current state of all files (ignored, untracked, and tracked)](#saving-current-state-of-all-files-ignored-untracked-and-tracked) +* [Show list of all saved stashes](#show-list-of-all-saved-stashes) +* [Apply any stash without deleting from the stashed list](#apply-any-stash-without-deleting-from-the-stashed-list) +* [Apply last stashed state and delete it from stashed list](#apply-last-stashed-state-and-delete-it-from-stashed-list) +* [Delete all stored stashes](#delete-all-stored-stashes) +* [Grab a single file from a stash](#grab-a-single-file-from-a-stash) +* [Show all tracked files](#show-all-tracked-files) +* [Show all untracked files](#show-all-untracked-files) +* [Show all ignored files](#show-all-ignored-files) +* [Create new working tree from a repository (git 2.5)](#create-new-working-tree-from-a-repository-git-25) +* [Create new working tree from HEAD state](#create-new-working-tree-from-head-state) +* [Untrack files without deleting](#untrack-files-without-deleting) +* [Before deleting untracked files/directory, do a dry run to get the list of these files/directories](#before-deleting-untracked-filesdirectory-do-a-dry-run-to-get-the-list-of-these-filesdirectories) +* [Forcefully remove untracked files](#forcefully-remove-untracked-files) +* [Forcefully remove untracked directory](#forcefully-remove-untracked-directory) +* [Update all the submodules](#update-all-the-submodules) +* [Show all commits in the current branch yet to be merged to master](#show-all-commits-in-the-current-branch-yet-to-be-merged-to-master) +* [Rename a branch](#rename-a-branch) +* [Rebases 'feature' to 'master' and merges it in to master ](#rebases-feature-to-master-and-merges-it-in-to-master) +* [Archive the `master` branch](#archive-the-master-branch) +* [Modify previous commit without modifying the commit message](#modify-previous-commit-without-modifying-the-commit-message) +* [Prunes references to remote branches that have been deleted in the remote.](#prunes-references-to-remote-branches-that-have-been-deleted-in-the-remote) +* [Retrieve the commit hash of the initial revision.](#retrieve-the-commit-hash-of-the-initial-revision) +* [Visualize the version tree.](#visualize-the-version-tree) +* [Visualize the tree including commits that are only referenced from reflogs](#visualize-the-tree-including-commits-that-are-only-referenced-from-reflogs) +* [Deploying git tracked subfolder to gh-pages](#deploying-git-tracked-subfolder-to-gh-pages) +* [Adding a project to repo using subtree](#adding-a-project-to-repo-using-subtree) +* [Get latest changes in your repo for a linked project using subtree](#get-latest-changes-in-your-repo-for-a-linked-project-using-subtree) +* [Export a branch with history to a file.](#export-a-branch-with-history-to-a-file) +* [Import from a bundle](#import-from-a-bundle) +* [Get the name of current branch.](#get-the-name-of-current-branch) +* [Ignore one file on commit (e.g. Changelog).](#ignore-one-file-on-commit-eg-changelog) +* [Stash changes before rebasing](#stash-changes-before-rebasing) +* [Fetch pull request by ID to a local branch](#fetch-pull-request-by-id-to-a-local-branch) +* [Show the most recent tag on the current branch.](#show-the-most-recent-tag-on-the-current-branch) +* [Show inline word diff.](#show-inline-word-diff) +* [Show changes using common diff tools.](#show-changes-using-common-diff-tools) +* [Don’t consider changes for tracked file.](#dont-consider-changes-for-tracked-file) +* [Undo assume-unchanged.](#undo-assume-unchanged) +* [Clean the files from `.gitignore`.](#clean-the-files-from-gitignore) +* [Restore deleted file.](#restore-deleted-file) +* [Restore file to a specific commit-hash](#restore-file-to-a-specific-commit-hash) +* [Always rebase instead of merge on pull.](#always-rebase-instead-of-merge-on-pull) +* [List all the alias and configs.](#list-all-the-alias-and-configs) +* [Make git case sensitive.](#make-git-case-sensitive) +* [Add custom editors.](#add-custom-editors) +* [Auto correct typos.](#auto-correct-typos) +* [Check if the change was a part of a release.](#check-if-the-change-was-a-part-of-a-release) +* [Dry run. (any command that supports dry-run flag should do.)](#dry-run-any-command-that-supports-dry-run-flag-should-do) +* [Marks your commit as a fix of a previous commit.](#marks-your-commit-as-a-fix-of-a-previous-commit) * [Squash fixup commits normal commits.](#squash-fixup-commits-normal-commits) -* [Pomiń staging area podczas commitowania.](#pomiń-staging-area-podczas-commitowania) -* [Interaktywny staging.](#interaktywny-staging) -* [Lista ignorowanych plików.](#lista-ignorowanych-plików) -* [Status zignorowanych plików.](#status-zignorowanych-plików) -* [Commity w Branch1 które nie są w Branch2](#commity-w-Branch1-które-nie-są-w-Branch2) -* [Wyświetl listę n ostatnich commitów](#wyświetl-listę-n-ostatnich-commitów) -* [Ponownie użyj recorded resolution, record and reuse previous conflicts resolutions.](#ponownie-użyj-recorded-resolution-record-and-reuse-previous-conflicts-resolutions) -* [Otwórz wszystkie skonfliktowane pliki w edytorze.](#otwórz-wszystkie-skonfliktowane-pliki-w-edytorze) -* [Policz wypakowaną liczbę obiektów i ich zużycie dysku.](#policz-wypakowaną-liczbę-obiektów-i-ich-zużycie-dysku) -* [Wyczyść wszystkie nieosiągalne obiekty z bazy danych obiektów.](#wyczyść-wszystkie-nieosiągalne-obiekty-z-bazy-danych-obiektów) -* [Natychmiast przeglądaj działające repozytorium w gitweb.](#natychmiast-przeglądaj-działające-repozytorium-w-gitweb) -* [Wyświetl podpisy GPG w dzienniku zatwierdzeń](#wyświetl-podpisy-gpg-w-dzienniku-zatwierdzeń) -* [Usuń wpis w globalnej konfiguracji.](#usuń-wpis-w-globalnej-konfiguracji) -* [Checkout nowego brancha bez historii](#checkout-nowego-brancha-bez-historii) -* [Wyodrębnij plik z innej gałęzi.](#wyodrębnij-plik-z-innej-gałęzi) -* [Wymień tylko root i merge commits.](#wymień-tylko-root-i-merge-commits) -* [Zmień poprzednie dwa zatwierdzenia za pomocą interaktywnego rebase.](#zmień-poprzednie-dwa-zatwierdzenia-za-pomocą-interaktywnego-rebase) -* [Wymień wszystkie gałęzie, których praca jest w toku (WIP)](#wymień-wszystkie-gałęzie-których-praca-jest-w-toku-wip) -* [Znajdź nieczyste korzystając z wyszukiwania binarnego](#znajdź-nieczyste-korzystając-z-wyszukiwania-binarnego) +* [Skip staging area during commit.](#skip-staging-area-during-commit) +* [Interactive staging.](#interactive-staging) +* [List ignored files.](#list-ignored-files) +* [Status of ignored files.](#status-of-ignored-files) +* [Commits in Branch1 that are not in Branch2](#commits-in-branch1-that-are-not-in-branch2) +* [List n last commits](#list-n-last-commits) +* [Reuse recorded resolution, record and reuse previous conflicts resolutions.](#reuse-recorded-resolution-record-and-reuse-previous-conflicts-resolutions) +* [Open all conflicted files in an editor.](#open-all-conflicted-files-in-an-editor) +* [Count unpacked number of objects and their disk consumption.](#count-unpacked-number-of-objects-and-their-disk-consumption) +* [Prune all unreachable objects from the object database.](#prune-all-unreachable-objects-from-the-object-database) +* [Instantly browse your working repository in gitweb.](#instantly-browse-your-working-repository-in-gitweb) +* [View the GPG signatures in the commit log](#view-the-gpg-signatures-in-the-commit-log) +* [Remove entry in the global config.](#remove-entry-in-the-global-config) +* [Checkout a new branch without any history](#checkout-a-new-branch-without-any-history) +* [Extract file from another branch.](#extract-file-from-another-branch) +* [List only the root and merge commits.](#list-only-the-root-and-merge-commits) +* [Change previous two commits with an interactive rebase.](#change-previous-two-commits-with-an-interactive-rebase) +* [List all branch is WIP](#list-all-branch-is-wip) +* [Find guilty with binary search](#find-guilty-with-binary-search) * [Bypass pre-commit and commit-msg githooks](#bypass-pre-commit-and-commit-msg-githooks) -* [Lista zatwierdzeń i zmian w określonym pliku (nawet poprzez zmianę nazwy)](#lista-zatwierdzeń-i-zmian-w-określonym-pliku-nawet-poprzez-zmianę-nazwy) -* [Klonuj pojedynczy branch](#klonuj-pojedynczy-branch) -* [Utwórz i zmień nowy branch](#utwórz-i-zmień-nowy-branch) -* [Ignoruj tryb zmiany plików na commitach](#ignoruj-tryb-zmiany-plików-na-commitach) -* [Wyłącz git colored terminal output](#wyłącz-git-colored-terminal-output) -* [Określone ustawienia kolorów](#określone-ustawienia-kolorów) -* [Pokaż wszystkie lokalne branche uporządkowane według ostatnich commitów](#pokaż-wszystkie-lokalne-branche-uporządkowane-według-ostatnich-commitów) -* [Znajdź wiersze pasujące do wzorca (wyrażenia regularnego lub ciągu) w śledzonych plikach](#znajdź-wiersze-pasujące-do-wzorca-wyrażenia-regularnego-lub-ciągu-w-śledzonych-plikach) -* [Sklonuj płytką kopię repozytorium](#sklonuj-płytką-kopię-repozytorium) -* [Wyszukaj Commit log we wszystkich branchach dla podanego tekstu](#wyszukaj-commit-log-we-wszystkich-branchach-dla-podanego-tekstu) -* [Uzyskaj pierwszy commit w branchu (z master)](#uzyskaj-pierwszy-commit-w-branchu-z-master) +* [List commits and changes to a specific file (even through renaming)](#list-commits-and-changes-to-a-specific-file-even-through-renaming) +* [Clone a single branch](#clone-a-single-branch) +* [Create and switch new branch](#create-and-switch-new-branch) +* [Ignore file mode changes on commits](#ignore-file-mode-changes-on-commits) +* [Turn off git colored terminal output](#turn-off-git-colored-terminal-output) +* [Specific color settings](#specific-color-settings) +* [Show all local branches ordered by recent commits](#show-all-local-branches-ordered-by-recent-commits) +* [Find lines matching the pattern (regex or string) in tracked files](#find-lines-matching-the-pattern-regex-or-string-in-tracked-files) +* [Clone a shallow copy of a repository](#clone-a-shallow-copy-of-a-repository) +* [Search Commit log across all branches for given text](#search-commit-log-across-all-branches-for-given-text) +* [Get first commit in a branch (from master)](#get-first-commit-in-a-branch-from-master) * [Unstaging Staged file](#unstaging-staged-file) -* [Wymuś wypchnięcie do zdalnego repozytorium](#wymuś-wypchnięcie-do-zdalnego-repozytorium) -* [Dodawanie nazwy zdalnej](#dodawanie-nazwy-zdalnej) -* [Wyświetl listę wszystkich aktualnie skonfigurowanych zdalnych](#wyświetl-listę-wszystkich-aktualnie-skonfigurowanych-zdalnych) -* [Pokaż autora, czas i ostatnią wersję dokonaną w każdej linii danego pliku](#pokaż-autora-czas-i-ostatnią-wersję-dokonaną-w-każdej-linii-danego-pliku) -* [Grupuj commity według autorów i tytułów](#grupuj-commity-według-autorów-i-tytułów) -* [Wymuś pusha, ale nadal upewnij się, że nie nadpisujesz pracy innych](#wymuś-pusha-ale-nadal-upewnij-się-że-nie-nadpisujesz-pracy-innych) -* [Pokaż, ile wierszy ma współautor](#pokaż-ile-wierszy-ma-współautor) -* [Cofnij: Cofnięcie całego merge](#cofnij-cofnięcie-całego-merge) -* [Liczba commitów w branchu](#liczba-commitów-w-branchu) -* [Alias: git undo - cofnij](#alias-git-undo-cofnij) -* [Dodaj notatkę obiektu](#dodaj-notatkę-obiektu) -* [Pokaż wszystkie git-notes](#pokaż-wszystkie-git-notes) -* [Zastosuj commit z innego repozytorium](#zastosuj-commit-z-innego-repozytorium) +* [Force push to Remote Repository](#force-push-to-remote-repository) +* [Adding Remote name](#adding-remote-name) +* [List all currently configured remotes](#list-all-currently-configured-remotes) +* [Show the author, time and last revision made to each line of a given file](#show-the-author-time-and-last-revision-made-to-each-line-of-a-given-file) +* [Group commits by authors and title](#group-commits-by-authors-and-title) +* [Forced push but still ensure you don't overwrite other's work](#forced-push-but-still-ensure-you-dont-overwrite-others-work) +* [Show how many lines does an author contribute](#show-how-many-lines-does-an-author-contribute) +* [Revert: Reverting an entire merge](#revert-reverting-an-entire-merge) +* [Number of commits in a branch](#number-of-commits-in-a-branch) +* [Alias: git undo](#alias-git-undo) +* [Add object notes](#add-object-notes) +* [Show all the git-notes](#show-all-the-git-notes) +* [Apply commit from another repository](#apply-commit-from-another-repository) * [Specific fetch reference](#specific-fetch-reference) -* [Znajdź wspólnego przodka dwóch gałęzi](#znajdź-wspólnego-przodka-dwóch-gałęzi) -* [Wyświetl unpushed git commits](#wyświetl-unpushed-git-commits) -* [Dodaj wszystko, ale bez zmiany białych znaków](#dodaj-wszystko-ale-bez-zmiany-białych-znaków) -* [Edytuj [local/global] git config](#edytuj-local-global-git-config) -* [Blame on certain range](#blame-on-certain-range) -* [Pokaż zmienną logiczną Git.](#pokaż-zmienną-logiczną-git) +* [Find common ancestor of two branches](#find-common-ancestor-of-two-branches) +* [List unpushed git commits](#list-unpushed-git-commits) +* [Add everything, but whitespace changes](#add-everything-but-whitespace-changes) +* [Edit [local/global] git config](#edit-localglobal-git-config) +* [blame on certain range](#blame-on-certain-range) +* [Show a Git logical variable.](#show-a-git-logical-variable) * [Preformatted patch file.](#preformatted-patch-file) -* [Uzyskaj nazwę repozytorium.](#uzyskaj-nazwę-repozytorium) -* [Logi między zakresem dat](#logi-między-zakresem-dat) -* [Wyklucz autora z logów](#wyklucz-autora-z-logów) -* [Generuj podsumowanie oczekujących zmian](#generuj-podsumowanie-oczekujących-zmian) -* [Lista referencji w zdalnym repozytorium](#lista-referencji-w-zdalnym-repozytorium) -* [Utwórz kopię zapasową nieśledzonych plików.](#utwórz-kopię-zapasową-nieśledzonych-plików) -* [Wyświetl wszystkie aliasy git](#wyświetl-wszystkie-aliasy-git) -* [Pokaż git status short](#pokaż-git-status-short) -* [Sprawdź commit sprzed dnia](#sprawdź-commit-sprzed-dnia) -* [Popchnij nowy branch lokalny do zdalnego repozytorium i śledź](#popchnij-nowy-branch-lokalny-do-zdalnego-repozytorium-i-śledź) -* [Zmień branch base](#zmień-branch-base) -* [Użyj SSH zamiast HTTPs dla remotes](#użyj-ssh-zamiast-https-dla-remotes) -* [Zaktualizuj submoduł do najnowszego commita](#zaktualizuj-submoduł-do-najnowszego-commita) -* [Zapobiegaj automatycznemu zastępowaniu LF przez CRLF](#zapobiegaj-automatycznemu-zastępowaniu-lf-przez-crlf) +* [Get the repo name.](#get-the-repo-name) +* [logs between date range](#logs-between-date-range) +* [Exclude author from logs](#exclude-author-from-logs) +* [Generates a summary of pending changes](#generates-a-summary-of-pending-changes) +* [List references in a remote repository](#list-references-in-a-remote-repository) +* [Backup untracked files.](#backup-untracked-files) +* [List all git aliases](#list-all-git-aliases) +* [Show git status short](#show-git-status-short) +* [Checkout a commit prior to a day ago](#checkout-a-commit-prior-to-a-day-ago) +* [Push a new local branch to remote repository and track](#push-a-new-local-branch-to-remote-repository-and-track) +* [Change a branch base](#change-a-branch-base) +* [Use SSH instead of HTTPs for remotes](#use-ssh-instead-of-https-for-remotes) +* [Update a submodule to the latest commit](#update-a-submodule-to-the-latest-commit) +* [Prevent auto replacing LF with CRLF](#prevent-auto-replacing-lf-with-crlf) @@ -181,131 +181,131 @@ P.S: Wszystkie te polecenia są testowane na `git version 2.7.4 (Apple Git-66)`. -## Codziennie Git w około dwudziestu poleceniach +## Everyday Git in twenty commands or so ```sh git help everyday ``` -## Pokaż przydatne przewodniki dla Git +## Show helpful guides that come with Git ```sh git help -g ``` -## Wyszukaj zmianę według zawartości +## Search change by content ```sh git log -S'' ``` -## Pokaż zmiany w czasie dla określonego pliku +## Show changes over time for specific file ```sh git log -p ``` -## Usuń wrażliwe dane z historii po push +## Remove sensitive data from history, after a push ```sh git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch ' --prune-empty --tag-name-filter cat -- --all && git push origin --force --all ``` -## Synchronizuj ze zdalnym, zastępuj lokalne zmiany +## Sync with remote, overwrite local changes ```sh git fetch origin && git reset --hard origin/master && git clean -f -d ``` -## Lista wszystkich plików do commita +## List of all files till a commit ```sh git ls-tree --name-only -r ``` -## Git zresetuj pierwszy commit +## Git reset first commit ```sh git update-ref -d HEAD ``` -## Reset: zachowaj niezatwierdzone zmiany lokalne +## Reset: preserve uncommitted local changes ```sh git reset --keep ``` -## Wyświetl wszystkie skonfliktowane pliki +## List all the conflicted files ```sh git diff --name-only --diff-filter=U ``` -## Lista wszystkich plików zmienionych w commitcie +## List of all files changed in a commit ```sh git diff-tree --no-commit-id --name-only -r ``` -## Zmienione ale niezaktualizowane zmiany od ostatniego zatwierdzenia +## Unstaged changes since last commit ```sh git diff ``` -## Porównanie zmian z poczekalni z ostatnią zmianą +## Changes staged for commit ```sh git diff --cached ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git diff --staged ``` -## Pokaż wszystkie zmiany w śledzonych plikach. +## Show both staged and unstaged changes ```sh git diff HEAD ``` -## Lista wszystkich gałęzi, które są już zmergowane do mastera +## List all branches that are already merged into master ```sh git branch --merged master ``` -## Szybko przełącz na poprzednią gałąź +## Quickly switch to the previous branch ```sh git checkout - ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git checkout @{-1} ``` -## Usuń gałęzie które zostały już połączone z master +## Remove branches that have already been merged with master ```sh git branch --merged master | grep -v '^\*' | xargs -n 1 git branch -d ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git branch --merged master | grep -v '^\*\| master' | xargs -n 1 git branch -d # will not delete master if master is not checked out ``` -## Wymień wszystkie gałęzie i ich wyższe poziomy, a także ostatnie zatwierdzenie na gałęzi +## List all branches and their upstreams, as well as last commit on branch ```sh git branch -vv ``` -## Śledź odgałęzienie +## Track upstream branch ```sh git branch -u origin/mybranch ``` -## Usuń lokalną gałąź +## Delete local branch ```sh git branch -d ``` -## Usuń zdalną gałąź +## Delete remote branch ```sh git push origin --delete ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git push origin : ``` @@ -315,143 +315,143 @@ git push origin : git branch -dr ``` -## Usuń lokalny tag +## Delete local tag ```sh git tag -d ``` -## Usuń zdalny tag +## Delete remote tag ```sh git push origin :refs/tags/ ``` -## Cofnij zmiany lokalne z ostatnią zawartością w head +## Undo local changes with the last content in head ```sh git checkout -- ``` -## Cofnij: Cofnij commita, tworząc nowego commita +## Revert: Undo a commit by creating a new commit ```sh git revert ``` -## Reset: Odrzuć commity, zalecane dla prywatnej gałęzi +## Reset: Discard commits, advised for private branch ```sh git reset ``` -## Zmień kolejność poprzedniej wiadomości commita +## Reword the previous commit message ```sh git commit -v --amend ``` -## Zobacz historię zatwierdzeń tylko dla bieżącej gałęzi +## See commit history for just the current branch ```sh git cherry -v master ``` -## Zmień autora. +## Amend author. ```sh git commit --amend --author='Author Name ' ``` -## Resetuj autora po zmianie autora w global config. +## Reset author, after author has been changed in the global config. ```sh git commit --amend --reset-author --no-edit ``` -## Zmiana zdalnego adresu URL +## Changing a remote's URL ```sh git remote set-url origin ``` -## Uzyskaj listę wszystkich zdalnych referencji +## Get list of all remote references ```sh git remote ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git remote show ``` -## Uzyskaj listę wszystkich lokalnych i zdalnych gałęzi +## Get list of all local and remote branches ```sh git branch -a ``` -## Uzyskaj tylko zdalne gałęzie +## Get only remote branches ```sh git branch -r ``` -## Śledź części zmienionego pliku zamiast całego pliku +## Stage parts of a changed file, instead of the entire file ```sh git add -p ``` -## Uzyskaj ukończenie git bash +## Get git bash completion ```sh curl -L http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc ``` -## Co zmieniło się od dwóch tygodni? +## What changed since two weeks? ```sh git log --no-merges --raw --since='2 weeks ago' ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git whatchanged --since='2 weeks ago' ``` -## Zobacz wszystkie zatwierdzenia dokonane od czasu forkowania z mastera +## See all commits made since forking from master ```sh git log --no-merges --stat --reverse master.. ``` -## Wybierz zatwierdzenia między gałęziami za pomocą cherry-pick +## Pick commits across branches using cherry-pick ```sh git checkout && git cherry-pick ``` -## Znajdź gałęzie zawierające commit-hash +## Find out branches containing commit-hash ```sh git branch -a --contains ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git branch --contains ``` -## Aliasy Gita +## Git Aliases ```sh git config --global alias. git config --global alias.st status ``` -## Zapisywanie bieżącego stanu śledzonych plików bez zatwierdzania +## Saving current state of tracked files without commiting ```sh git stash ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git stash save ``` -## Zapisywanie aktualnego stanu zmian unstaged do śledzonych plików +## Saving current state of unstaged changes to tracked files ```sh git stash -k ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git stash --keep-index ``` @@ -461,13 +461,13 @@ git stash --keep-index git stash save --keep-index ``` -## Zapisywanie bieżącego stanu, w tym nieśledzonych plików +## Saving current state including untracked files ```sh git stash -u ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git stash save -u ``` @@ -477,18 +477,18 @@ git stash save -u git stash save --include-untracked ``` -## Zapisywanie aktualnego stanu z komunikatem +## Saving current state with message ```sh git stash save ``` -## Zapisywanie bieżącego stanu wszystkich plików (ignorowanych, nieśledzonych i śledzonych) +## Saving current state of all files (ignored, untracked, and tracked) ```sh git stash -a ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git stash --all ``` @@ -498,107 +498,107 @@ git stash --all git stash save --all ``` -## Pokaż listę wszystkich zapisanych stashes +## Show list of all saved stashes ```sh git stash list ``` -## Zastosuj dowolony stash bez usuwania z listy stashed +## Apply any stash without deleting from the stashed list ```sh git stash apply ``` -## Zastosuj ostatni stan stashed i usuń go z listy stashed +## Apply last stashed state and delete it from stashed list ```sh git stash pop ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git stash apply stash@{0} && git stash drop stash@{0} ``` -## Usuń wszystkie przechowywane stashes +## Delete all stored stashes ```sh git stash clear ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git stash drop ``` -## Weź pojedynczy plik z pliku stash +## Grab a single file from a stash ```sh git checkout -- ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git checkout stash@{0} -- ``` -## Pokaż wszystkie śledzone pliki +## Show all tracked files ```sh git ls-files -t ``` -## Pokaż wszystkie nieśledzone pliki +## Show all untracked files ```sh git ls-files --others ``` -## Pokaż wszystkie zignorowane pliki +## Show all ignored files ```sh git ls-files --others -i --exclude-standard ``` -## Utwórz nowe drzewo robocze z repozytorium (git 2.5) +## Create new working tree from a repository (git 2.5) ```sh git worktree add -b ``` -## Utwórz nowe drzewo robocze ze stanu HEAD +## Create new working tree from HEAD state ```sh git worktree add --detach HEAD ``` -## Przestań śledzić pliki bez usuwania +## Untrack files without deleting ```sh git rm --cached ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git rm --cached -r ``` -## Przed usunięciem nieśledzonych plików / katalogu, wykonaj próbę, aby uzyskać listę tych plików / katalogów +## Before deleting untracked files/directory, do a dry run to get the list of these files/directories ```sh git clean -n ``` -## Wymuś usunięcie nieśledzonych plików +## Forcefully remove untracked files ```sh git clean -f ``` -## Wymuś usunięcie nieśledzonego katalogu +## Forcefully remove untracked directory ```sh git clean -f -d ``` -## Zaktualizuj wszystkie submoduły +## Update all the submodules ```sh git submodule foreach git pull ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git submodule update --init --recursive ``` @@ -608,61 +608,61 @@ git submodule update --init --recursive git submodule update --remote ``` -## Pokaż wszystkie zatwierdzenia w bieżącym branchu, które mają zostać zmergowane do mastera +## Show all commits in the current branch yet to be merged to master ```sh git cherry -v master ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git cherry -v master ``` -## Zmień nazwę brancha +## Rename a branch ```sh git branch -m ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git branch -m [] ``` -## Rebase 'feature' do 'master' i merguj to do master +## Rebases 'feature' to 'master' and merges it in to master ```sh git rebase master feature && git checkout master && git merge - ``` -## Zarchiwizuj branch `master` +## Archive the `master` branch ```sh git archive master --format=zip --output=master.zip ``` -## Zmodyfikuj poprzednie zatwierdzenie bez modyfikowania komunikatu zatwierdzenia +## Modify previous commit without modifying the commit message ```sh git add --all && git commit --amend --no-edit ``` -## Czyści odniesienia do zdalnych gałęzi, które zostały usunięte na zdalnym. +## Prunes references to remote branches that have been deleted in the remote. ```sh git fetch -p ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git remote prune origin ``` -## Pobierz skrót zatwierdzenia z początkowej wersji. +## Retrieve the commit hash of the initial revision. ```sh git rev-list --reverse HEAD | head -1 ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git rev-list --max-parents=0 HEAD ``` @@ -677,13 +677,13 @@ git log --pretty=oneline | tail -1 | cut -c 1-40 git log --pretty=oneline --reverse | head -1 | cut -c 1-40 ``` -## Wizualizuj drzewo wersji. +## Visualize the version tree. ```sh git log --pretty=oneline --graph --decorate --all ``` -__Alternatywnie:__ +__Alternatives:__ ```sh gitk --all ``` @@ -693,145 +693,145 @@ gitk --all git log --graph --pretty=format:'%C(auto) %h | %s | %an | %ar%d' ``` -## Wizualizuj drzewo, w tym zatwierdzenia, do których odwołuje się tylko dziennik rejestrów +## Visualize the tree including commits that are only referenced from reflogs ```sh git log --graph --decorate --oneline $(git rev-list --walk-reflogs --all) ``` -## Wdrażanie podfolderu śledzonego przez git do gh-pages +## Deploying git tracked subfolder to gh-pages ```sh git subtree push --prefix subfolder_name origin gh-pages ``` -## Dodanie projektu do repozytorium za pomocą poddrzewa +## Adding a project to repo using subtree ```sh git subtree add --prefix=/ --squash git@github.com:/.git master ``` -## Pobierz najnowsze zmiany w repozytorium dla połączonego projektu za pomocą poddrzewa +## Get latest changes in your repo for a linked project using subtree ```sh git subtree pull --prefix=/ --squash git@github.com:/.git master ``` -## Wyeksportuj gałąź z historią do pliku. +## Export a branch with history to a file. ```sh git bundle create ``` -## Importuj z pakietu +## Import from a bundle ```sh git clone repo.bundle -b ``` -## Uzyskaj nazwę bieżącego brancha. +## Get the name of current branch. ```sh git rev-parse --abbrev-ref HEAD ``` -## Zignoruj jeden plik przy zatwierdzaniu (np. Changelog). +## Ignore one file on commit (e.g. Changelog). ```sh git update-index --assume-unchanged Changelog; git commit -a; git update-index --no-assume-unchanged Changelog ``` -## Stashuj zmiany przed rebasing'iem +## Stash changes before rebasing ```sh git rebase --autostash ``` -## Pobierz pull request według identyfikatora do lokalnego brancha +## Fetch pull request by ID to a local branch ```sh git fetch origin pull//head: ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git pull origin pull//head: ``` -## Pokaż najnowszy tag w bieżącym branchu. +## Show the most recent tag on the current branch. ```sh git describe --tags --abbrev=0 ``` -## Pokaż inline word diff. +## Show inline word diff. ```sh git diff --word-diff ``` -## Pokaż zmiany używając narzędzi common diff. +## Show changes using common diff tools. ```sh git difftool [-t ] ``` -## Nie rozważaj zmian w śledzonym pliku. +## Don’t consider changes for tracked file. ```sh git update-index --assume-unchanged ``` -## Cofnij assume-unchanged. +## Undo assume-unchanged. ```sh git update-index --no-assume-unchanged ``` -## Wyczyść pliki z `.gitignore`. +## Clean the files from `.gitignore`. ```sh git clean -X -f ``` -## Przywróć usunięty plik. +## Restore deleted file. ```sh git checkout ^ -- ``` -## Przywróć plik do określonego commit-hash +## Restore file to a specific commit-hash ```sh git checkout -- ``` -## Zawsze rebase zamiast merge na pull. +## Always rebase instead of merge on pull. ```sh git config --global pull.rebase true ``` -__Alternatywnie:__ +__Alternatives:__ ```sh #git < 1.7.9 git config --global branch.autosetuprebase always ``` -## Wyświetl wszystkie aliasy i konfiguracje. +## List all the alias and configs. ```sh git config --list ``` -## Uwzględnij wielkość liter w git. +## Make git case sensitive. ```sh git config --global core.ignorecase false ``` -## Dodaj niestandardowe edytory. +## Add custom editors. ```sh git config --global core.editor '$EDITOR' ``` -## Automatyczne poprawianie literówek. +## Auto correct typos. ```sh git config --global help.autocorrect 1 ``` -## Sprawdź, czy zmiana była częścią wydania. +## Check if the change was a part of a release. ```sh git name-rev --name-only ``` -## Dry run. (dowolne polecenie obsługujące flagę dry-run powinno zrobić.) +## Dry run. (any command that supports dry-run flag should do.) ```sh git clean -fd --dry-run ``` -## Oznacza twoje zatwierdzenie jako poprawkę poprzedniego zatwierdzenia. +## Marks your commit as a fix of a previous commit. ```sh git commit --fixup ``` @@ -841,103 +841,103 @@ git commit --fixup git rebase -i --autosquash ``` -## Pomiń staging area podczas commitowania. +## Skip staging area during commit. ```sh git commit --only ``` -## Interaktywny staging. +## Interactive staging. ```sh git add -i ``` -## Lista ignorowanych plików. +## List ignored files. ```sh git check-ignore * ``` -## Status zignorowanych plików. +## Status of ignored files. ```sh git status --ignored ``` -## Commity w Branch1 które nie są w Branch2 +## Commits in Branch1 that are not in Branch2 ```sh git log Branch1 ^Branch2 ``` -## Wyświetl listę n ostatnich commitów +## List n last commits ```sh git log - ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git log -n ``` -## Ponownie użyj recorded resolution, record and reuse previous conflicts resolutions. +## Reuse recorded resolution, record and reuse previous conflicts resolutions. ```sh git config --global rerere.enabled 1 ``` -## Otwórz wszystkie skonfliktowane pliki w edytorze. +## Open all conflicted files in an editor. ```sh git diff --name-only | uniq | xargs $EDITOR ``` -## Policz wypakowaną liczbę obiektów i ich zużycie dysku. +## Count unpacked number of objects and their disk consumption. ```sh git count-objects --human-readable ``` -## Wyczyść wszystkie nieosiągalne obiekty z bazy danych obiektów. +## Prune all unreachable objects from the object database. ```sh git gc --prune=now --aggressive ``` -## Natychmiast przeglądaj działające repozytorium w gitweb. +## Instantly browse your working repository in gitweb. ```sh git instaweb [--local] [--httpd=] [--port=] [--browser=] ``` -## Wyświetl podpisy GPG w dzienniku zatwierdzeń +## View the GPG signatures in the commit log ```sh git log --show-signature ``` -## Usuń wpis w globalnej konfiguracji. +## Remove entry in the global config. ```sh git config --global --unset ``` -## Checkout nowego brancha bez historii +## Checkout a new branch without any history ```sh git checkout --orphan ``` -## Wyodrębnij plik z innej gałęzi. +## Extract file from another branch. ```sh git show : ``` -## Wymień tylko root i merge commits. +## List only the root and merge commits. ```sh git log --first-parent ``` -## Zmień poprzednie dwa zatwierdzenia za pomocą interaktywnego rebase. +## Change previous two commits with an interactive rebase. ```sh git rebase --interactive HEAD~2 ``` -## Wymień wszystkie gałęzie, których praca jest w toku (WIP) +## List all branch is WIP ```sh git checkout master && git branch --no-merged ``` -## Znajdź nieczyste korzystając z wyszukiwania binarnego +## Find guilty with binary search ```sh git bisect start # Search start git bisect bad # Set point to bad commit @@ -953,69 +953,69 @@ git bisect reset # Finish search git commit --no-verify ``` -## Lista zatwierdzeń i zmian w określonym pliku (nawet poprzez zmianę nazwy) +## List commits and changes to a specific file (even through renaming) ```sh git log --follow -p -- ``` -## Klonuj pojedynczy branch +## Clone a single branch ```sh git clone -b --single-branch https://github.com/user/repo.git ``` -## Utwórz i zmień nowy branch +## Create and switch new branch ```sh git checkout -b ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git branch && git checkout ``` -## Ignoruj tryb zmiany plików na commitach +## Ignore file mode changes on commits ```sh git config core.fileMode false ``` -## Wyłącz git colored terminal output +## Turn off git colored terminal output ```sh git config --global color.ui false ``` -## Określone ustawienia kolorów +## Specific color settings ```sh git config --global ``` -## Pokaż wszystkie lokalne branche uporządkowane według ostatnich commitów +## Show all local branches ordered by recent commits ```sh git for-each-ref --sort=-committerdate --format='%(refname:short)' refs/heads/ ``` -## Znajdź wiersze pasujące do wzorca (wyrażenia regularnego lub ciągu) w śledzonych plikach +## Find lines matching the pattern (regex or string) in tracked files ```sh git grep --heading --line-number 'foo bar' ``` -## Sklonuj płytką kopię repozytorium +## Clone a shallow copy of a repository ```sh git clone https://github.com/user/repo.git --depth 1 ``` -## Wyszukaj Commit log we wszystkich branchach dla podanego tekstu +## Search Commit log across all branches for given text ```sh git log --all --grep='' ``` -## Uzyskaj pierwszy commit w branchu (z master) +## Get first commit in a branch (from master) ```sh git log --oneline master.. | tail -1 ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git log --reverse master.. | head -6 ``` @@ -1025,75 +1025,75 @@ git log --reverse master.. | head -6 git reset HEAD ``` -## Wymuś wypchnięcie do zdalnego repozytorium +## Force push to Remote Repository ```sh git push -f ``` -## Dodawanie nazwy zdalnej +## Adding Remote name ```sh git remote add ``` -## Wyświetl listę wszystkich aktualnie skonfigurowanych zdalnych +## List all currently configured remotes ```sh git remote -v ``` -## Pokaż autora, czas i ostatnią wersję dokonaną w każdej linii danego pliku +## Show the author, time and last revision made to each line of a given file ```sh git blame ``` -## Grupuj commity według autorów i tytułów +## Group commits by authors and title ```sh git shortlog ``` -## Wymuś pusha, ale nadal upewnij się, że nie nadpisujesz pracy innych +## Forced push but still ensure you don't overwrite other's work ```sh git push --force-with-lease ``` -## Pokaż, ile wierszy ma współautor +## Show how many lines does an author contribute ```sh git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | gawk '{ add += ; subs += ; loc += - } END { printf "added lines: %s removed lines: %s total lines: %s ", add, subs, loc }' - ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | awk '{ add += ; subs += ; loc += - } END { printf "added lines: %s, removed lines: %s, total lines: %s ", add, subs, loc }' - # on Mac OSX ``` -## Cofnij: Cofnięcie całego merge +## Revert: Reverting an entire merge ```sh git revert -m 1 ``` -## Liczba commitów w branchu +## Number of commits in a branch ```sh git rev-list --count ``` -## Alias: git undo - cofnij +## Alias: git undo ```sh git config --global alias.undo '!f() { git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; }; f' ``` -## Dodaj notatkę obiektu +## Add object notes ```sh git notes add -m 'Note on the previous commit....' ``` -## Pokaż wszystkie git-notes +## Show all the git-notes ```sh git log --show-notes='*' ``` -## Zastosuj commit z innego repozytorium +## Apply commit from another repository ```sh git --git-dir=/.git format-patch -k -1 --stdout | git am -3 -k ``` @@ -1103,18 +1103,18 @@ git --git-dir=/.git format-patch -k -1 --stdout | git am -3 - git fetch origin master:refs/remotes/origin/mymaster ``` -## Znajdź wspólnego przodka dwóch gałęzi +## Find common ancestor of two branches ```sh git merge-base ``` -## Wyświetl unpushed git commits +## List unpushed git commits ```sh git log --branches --not --remotes ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git log @{u}.. ``` @@ -1124,12 +1124,12 @@ git log @{u}.. git cherry -v ``` -## Dodaj wszystko, ale bez zmiany białych znaków +## Add everything, but whitespace changes ```sh git diff --ignore-all-space | git apply --cached ``` -## Edytuj [local/global] git config +## Edit [local/global] git config ```sh git config [--global] --edit ``` @@ -1139,7 +1139,7 @@ git config [--global] --edit git blame -L , ``` -## Pokaż zmienną logiczną Git. +## Show a Git logical variable. ```sh git var -l | ``` @@ -1149,74 +1149,74 @@ git var -l | git format-patch -M upstream..topic ``` -## Uzyskaj nazwę repozytorium. +## Get the repo name. ```sh git rev-parse --show-toplevel ``` -## logi między zakresem dat +## logs between date range ```sh git log --since='FEB 1 2017' --until='FEB 14 2017' ``` -## Wyklucz autora z logów +## Exclude author from logs ```sh git log --perl-regexp --author='^((?!excluded-author-regex).*) ``` -## Generuj podsumowanie oczekujących zmian +## Generates a summary of pending changes ```sh git request-pull v1.0 https://git.ko.xz/project master:for-linus ``` -## Lista referencji w zdalnym repozytorium +## List references in a remote repository ```sh git ls-remote git://git.kernel.org/pub/scm/git/git.git ``` -## Utwórz kopię zapasową nieśledzonych plików. +## Backup untracked files. ```sh git ls-files --others -i --exclude-standard | xargs zip untracked.zip ``` -## Wyświetl wszystkie aliasy git +## List all git aliases ```sh git config -l | grep alias | sed 's/^alias\.//g' ``` -__Alternatywnie:__ +__Alternatives:__ ```sh git config -l | grep alias | cut -d '.' -f 2 ``` -## Pokaż git status short +## Show git status short ```sh git status --short --branch ``` -## Sprawdź commit sprzed dnia +## Checkout a commit prior to a day ago ```sh git checkout master@{yesterday} ``` -## Popchnij nowy branch lokalny do zdalnego repozytorium i śledź +## Push a new local branch to remote repository and track ```sh git push -u origin ``` -## Zmień branch base +## Change a branch base ```sh git rebase --onto ``` -## Użyj SSH zamiast HTTPs dla remotes +## Use SSH instead of HTTPs for remotes ```sh git config --global url.'git@github.com:'.insteadOf 'https://github.com/' ``` -## Zaktualizuj submoduł do najnowszego commita +## Update a submodule to the latest commit ```sh cd git pull origin @@ -1225,7 +1225,7 @@ git add git commit -m "submodule updated" ``` -## Zapobiegaj automatycznemu zastępowaniu LF przez CRLF +## Prevent auto replacing LF with CRLF ```sh git config --global core.autocrlf false ``` From e89eb24e670c6baf8d2c9944319323e5dc59bdd7 Mon Sep 17 00:00:00 2001 From: rednik96 Date: Sun, 3 May 2020 13:56:09 +0200 Subject: [PATCH 079/108] replacing `git stash save` by `git stash push` `git stash save` -> This option is deprecated in favour of git stash push. [git docs](https://git-scm.com/docs/git-stash#Documentation/git-stash.txt-save-p--patch-k--no-keep-index-u--include-untracked-a--all-q--quietltmessagegt) --- README.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 0e69629..471ca71 100644 --- a/README.md +++ b/README.md @@ -442,7 +442,7 @@ git stash __Alternatives:__ ```sh -git stash save +git stash push ``` ## Saving current state of unstaged changes to tracked files @@ -458,7 +458,7 @@ git stash --keep-index ```sh -git stash save --keep-index +git stash push --keep-index ``` ## Saving current state including untracked files @@ -469,17 +469,23 @@ git stash -u __Alternatives:__ ```sh -git stash save -u +git stash push -u ``` ```sh -git stash save --include-untracked +git stash push --include-untracked ``` ## Saving current state with message ```sh -git stash save +git stash push -m +``` + + +__Alternatives:__ +```sh +git stash push --message ``` ## Saving current state of all files (ignored, untracked, and tracked) @@ -495,7 +501,7 @@ git stash --all ```sh -git stash save --all +git stash push --all ``` ## Show list of all saved stashes From 36c15874fd5196517b55a38c627f3dc5ffc84e43 Mon Sep 17 00:00:00 2001 From: biesiadamich <60202305+biesiadamich@users.noreply.github.com> Date: Thu, 7 May 2020 23:18:04 +0200 Subject: [PATCH 080/108] update readme (#185) added Polish link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0e69629..fd5b47f 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ## git-tips > Collection of `git-tips`, want to add your tips? Checkout [contributing.md](./contributing.md) -[English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) | [Русский](https://github.com/Imangazaliev/git-tips) | [한국어](https://github.com/mingrammer/git-tips) | [Tiếng Việt](https://github.com/hprobotic/git-tips) | [日本語](https://github.com/isotai/git-tips) | [नेपाली](https://github.com/amarduwal/git-tips) +[English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) | [Русский](https://github.com/Imangazaliev/git-tips) | [한국어](https://github.com/mingrammer/git-tips) | [Tiếng Việt](https://github.com/hprobotic/git-tips) | [日本語](https://github.com/isotai/git-tips) | [नेपाली](https://github.com/amarduwal/git-tips) | [Polski](https://github.com/mbiesiad/tips) ### __Tools:__ From 8305c4a4c6534cd298588900a525740bafb971e9 Mon Sep 17 00:00:00 2001 From: Adrian Skar Date: Thu, 16 Jul 2020 17:41:10 +0200 Subject: [PATCH 081/108] alternatives: create and switch new branch Add alternative to `996 ## Create and switch new branch` using git switch ref: https://git-scm.com/docs/git-switch --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index fd5b47f..40015ee 100644 --- a/README.md +++ b/README.md @@ -974,6 +974,10 @@ __Alternatives:__ git branch && git checkout ``` +```sh +git switch -c +``` + ## Ignore file mode changes on commits ```sh git config core.fileMode false From 442d880d4cb869f05bdf8e81706e71e66e63edc4 Mon Sep 17 00:00:00 2001 From: Edy Cu Date: Thu, 30 Jul 2020 19:40:51 +0700 Subject: [PATCH 082/108] Fix typo extra caret in git command Restore delete file. --- README.md | 2 +- tips.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fd5b47f..050cc53 100644 --- a/README.md +++ b/README.md @@ -781,7 +781,7 @@ git clean -X -f ## Restore deleted file. ```sh -git checkout ^ -- +git checkout -- ``` ## Restore file to a specific commit-hash diff --git a/tips.json b/tips.json index 3400539..21c65a4 100644 --- a/tips.json +++ b/tips.json @@ -278,7 +278,7 @@ "tip": "git clean -X -f" }, { "title": "Restore deleted file.", - "tip": "git checkout ^ -- " + "tip": "git checkout -- " }, { "title": "Restore file to a specific commit-hash", "tip": "git checkout -- " From 767360112f4c6bc58e68eae96b93cd6bb886dade Mon Sep 17 00:00:00 2001 From: "Gaushik M.R" Date: Fri, 31 Jul 2020 10:14:03 -0400 Subject: [PATCH 083/108] Create CODE_OF_CONDUCT.md --- CODE_OF_CONDUCT.md | 76 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 CODE_OF_CONDUCT.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..e96f702 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at hemanth.hm@gmail.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq From d1835c92dfda88663fd444380a18b7f7b40ee875 Mon Sep 17 00:00:00 2001 From: Edy Cu Date: Tue, 25 Aug 2020 23:15:27 +0700 Subject: [PATCH 084/108] Split git variable to avoid confusion symbol vertical line for pipeline and OR --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fd5b47f..2533c89 100644 --- a/README.md +++ b/README.md @@ -1139,9 +1139,14 @@ git config [--global] --edit git blame -L , ``` -## Show a Git logical variable. +## List all Git variable. ```sh -git var -l | +git var -l +``` + +## Show a Git specific variable. +```sh +git var ``` ## Preformatted patch file. From 97047c7560a70e79b9a21ef691752ec22b9c8047 Mon Sep 17 00:00:00 2001 From: Adrian Skar Date: Sat, 19 Dec 2020 12:00:49 +0100 Subject: [PATCH 085/108] add[alternative]: create and switch branch From #186. --- tips.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tips.json b/tips.json index 21c65a4..b3fa5c6 100644 --- a/tips.json +++ b/tips.json @@ -380,7 +380,7 @@ }, { "title": "Create and switch new branch", "tip": "git checkout -b ", - "alternatives": ["git branch && git checkout "] + "alternatives": ["git branch && git checkout ", "git switch -c "] }, { "title": "Ignore file mode changes on commits", "tip": "git config core.fileMode false" From 6b2007ab79b29cf21f7b52c34089f374a4c796b2 Mon Sep 17 00:00:00 2001 From: rednik96 Date: Sun, 10 Jan 2021 11:41:46 +0100 Subject: [PATCH 086/108] Revert "replacing `git stash save` by `git stash push`" This reverts commit e89eb24e670c6baf8d2c9944319323e5dc59bdd7. --- README.md | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 471ca71..0e69629 100644 --- a/README.md +++ b/README.md @@ -442,7 +442,7 @@ git stash __Alternatives:__ ```sh -git stash push +git stash save ``` ## Saving current state of unstaged changes to tracked files @@ -458,7 +458,7 @@ git stash --keep-index ```sh -git stash push --keep-index +git stash save --keep-index ``` ## Saving current state including untracked files @@ -469,23 +469,17 @@ git stash -u __Alternatives:__ ```sh -git stash push -u +git stash save -u ``` ```sh -git stash push --include-untracked +git stash save --include-untracked ``` ## Saving current state with message ```sh -git stash push -m -``` - - -__Alternatives:__ -```sh -git stash push --message +git stash save ``` ## Saving current state of all files (ignored, untracked, and tracked) @@ -501,7 +495,7 @@ git stash --all ```sh -git stash push --all +git stash save --all ``` ## Show list of all saved stashes From 0eb60008aad02c301fe8bf8bb9d268dd3cb18e0e Mon Sep 17 00:00:00 2001 From: rednik96 Date: Sun, 10 Jan 2021 11:46:57 +0100 Subject: [PATCH 087/108] replacing `git stash save` by `git stash push` --- tips.json | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tips.json b/tips.json index 3400539..9ad6945 100644 --- a/tips.json +++ b/tips.json @@ -131,22 +131,23 @@ }, { "title": "Saving current state of tracked files without commiting", "tip": "git stash", - "alternatives": ["git stash save"] + "alternatives": ["git stash push"] }, { "title": "Saving current state of unstaged changes to tracked files", "tip": "git stash -k", - "alternatives": ["git stash --keep-index", "git stash save --keep-index"] + "alternatives": ["git stash --keep-index", "git stash push --keep-index"] }, { "title": "Saving current state including untracked files", "tip": "git stash -u", - "alternatives": ["git stash save -u", "git stash save --include-untracked"] + "alternatives": ["git stash push -u", "git stash push --include-untracked"] }, { "title": "Saving current state with message", - "tip": "git stash save " + "tip": "git stash push -m ", + "alternatives": ["git stash push --message "] }, { "title": "Saving current state of all files (ignored, untracked, and tracked)", "tip": "git stash -a", - "alternatives": ["git stash --all", "git stash save --all"] + "alternatives": ["git stash --all", "git stash push --all"] }, { "title": "Show list of all saved stashes", "tip": "git stash list" From 4f15d65b68c149ba244dc6a83fd2155f3d91b148 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ni=20Marvaud?= <24732919+lmarvaud@users.noreply.github.com> Date: Thu, 18 Mar 2021 15:54:42 +0100 Subject: [PATCH 088/108] Add tips to delete local branches that has been squash and merged in the remote --- README.md | 37 +++-- package-lock.json | 359 +++++++++++++++++++++++++++++++++++++++++++++- tips.json | 5 +- 3 files changed, 384 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 4b9b20b..26dac9b 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,8 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Rebases 'feature' to 'master' and merges it in to master ](#rebases-feature-to-master-and-merges-it-in-to-master) * [Archive the `master` branch](#archive-the-master-branch) * [Modify previous commit without modifying the commit message](#modify-previous-commit-without-modifying-the-commit-message) -* [Prunes references to remote branches that have been deleted in the remote.](#prunes-references-to-remote-branches-that-have-been-deleted-in-the-remote) +* [Prunes references to remove branches that have been deleted in the remote.](#prunes-references-to-remove-branches-that-have-been-deleted-in-the-remote) +* [Delete local branches that has been squash and merged in the remote.](#delete-local-branches-that-has-been-squash-and-merged-in-the-remote) * [Retrieve the commit hash of the initial revision.](#retrieve-the-commit-hash-of-the-initial-revision) * [Visualize the version tree.](#visualize-the-version-tree) * [Visualize the tree including commits that are only referenced from reflogs](#visualize-the-tree-including-commits-that-are-only-referenced-from-reflogs) @@ -442,7 +443,7 @@ git stash __Alternatives:__ ```sh -git stash save +git stash push ``` ## Saving current state of unstaged changes to tracked files @@ -458,7 +459,7 @@ git stash --keep-index ```sh -git stash save --keep-index +git stash push --keep-index ``` ## Saving current state including untracked files @@ -469,17 +470,23 @@ git stash -u __Alternatives:__ ```sh -git stash save -u +git stash push -u ``` ```sh -git stash save --include-untracked +git stash push --include-untracked ``` ## Saving current state with message ```sh -git stash save +git stash push -m +``` + + +__Alternatives:__ +```sh +git stash push --message ``` ## Saving current state of all files (ignored, untracked, and tracked) @@ -495,7 +502,7 @@ git stash --all ```sh -git stash save --all +git stash push --all ``` ## Show list of all saved stashes @@ -645,7 +652,7 @@ git archive master --format=zip --output=master.zip git add --all && git commit --amend --no-edit ``` -## Prunes references to remote branches that have been deleted in the remote. +## Prunes references to remove branches that have been deleted in the remote. ```sh git fetch -p ``` @@ -656,6 +663,11 @@ __Alternatives:__ git remote prune origin ``` +## Delete local branches that has been squash and merged in the remote. +```sh +git branch -vv | grep ': gone]' | awk '{print }' | xargs git branch -D +``` + ## Retrieve the commit hash of the initial revision. ```sh git rev-list --reverse HEAD | head -1 @@ -1139,14 +1151,9 @@ git config [--global] --edit git blame -L , ``` -## List all Git variable. -```sh -git var -l -``` - -## Show a Git specific variable. +## Show a Git logical variable. ```sh -git var +git var -l | ``` ## Preformatted patch file. diff --git a/package-lock.json b/package-lock.json index 2ca1e1c..92e247e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,365 @@ { "name": "tips", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "version": "1.0.0", + "license": "MIT", + "devDependencies": { + "doxie": "^0.2.2", + "doxie.append": "^0.1.0", + "doxie.inject": "^0.1.1", + "doxie.output": "^0.3.0", + "doxie.render": "^0.3.0", + "husky": "^0.8.1" + } + }, + "node_modules/1-liners": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/1-liners/-/1-liners-0.3.6.tgz", + "integrity": "sha1-SDD+eLdTejaZ+IpdQqjtwa9mB/8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/101": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/101/-/101-1.6.3.tgz", + "integrity": "sha512-4dmQ45yY0Dx24Qxp+zAsNLlMF6tteCyfVzgbulvSyC7tCyd3V8sW76sS0tHq8NpcbXfWTKasfyfzU1Kd86oKzw==", + "dev": true, + "dependencies": { + "clone": "^1.0.2", + "deep-eql": "^0.1.3", + "keypather": "^1.10.2" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-find": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", + "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", + "dev": true + }, + "node_modules/base64-js": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.2.tgz", + "integrity": "sha1-Ak8Pcq+iW3X5wO5zzU9V7Bvtl4Q=", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/bops": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/bops/-/bops-0.0.6.tgz", + "integrity": "sha1-CC0dVfoB5g29wuvC26N/ZZVUzzo=", + "dev": true, + "dependencies": { + "base64-js": "0.0.2", + "to-utf8": "0.0.1" + } + }, + "node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/concat-stream": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.2.1.tgz", + "integrity": "sha1-81EAtsRjeL+6i2uA+fDQzN8T3GA=", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "dependencies": { + "bops": "0.0.6" + } + }, + "node_modules/deep-eql": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", + "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", + "dev": true, + "dependencies": { + "type-detect": "0.1.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "node_modules/doxie": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/doxie/-/doxie-0.2.4.tgz", + "integrity": "sha1-KZltv1dg/OdNvLTXnGAjHYoXu4U=", + "dev": true, + "dependencies": { + "1-liners": "^0.3.2", + "chalk": "^1.0.0", + "doxie-core": "^0.3.1", + "stream-to-json": "^0.0.1", + "tiny-error": "^0.2.1" + }, + "bin": { + "doxie": "bin/doxie.js" + } + }, + "node_modules/doxie-core": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/doxie-core/-/doxie-core-0.3.1.tgz", + "integrity": "sha1-PS+RQ+WF45Cpgwjcnk7zjxPPQss=", + "dev": true, + "dependencies": { + "1-liners": "^0.3.0", + "chalk": "^1.0.0", + "tiny-error": "^0.2.1" + } + }, + "node_modules/doxie.append": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/doxie.append/-/doxie.append-0.1.0.tgz", + "integrity": "sha1-yHRoUEL18wlKTQwzNsPklMNpdOE=", + "dev": true, + "dependencies": { + "object-assign": "^3.0.0" + } + }, + "node_modules/doxie.append/node_modules/object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/doxie.inject": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/doxie.inject/-/doxie.inject-0.1.1.tgz", + "integrity": "sha1-/QNYT4segOZEtcuUdpr+RH94oEc=", + "dev": true, + "dependencies": { + "1-liners": "^0.3.2", + "array-find": "^1.0.0", + "chalk": "^1.0.0", + "defined": "^1.0.0", + "object-assign": "^3.0.0", + "tiny-error": "^0.2.1" + } + }, + "node_modules/doxie.inject/node_modules/object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/doxie.output": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/doxie.output/-/doxie.output-0.3.0.tgz", + "integrity": "sha1-4H4Stn2qX8KLPsZn0HAv1ziZitE=", + "dev": true, + "dependencies": { + "1-liners": "^0.3.0", + "object-assign": "^3.0.0" + } + }, + "node_modules/doxie.output/node_modules/object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/doxie.render": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/doxie.render/-/doxie.render-0.3.2.tgz", + "integrity": "sha1-Mva37g88NSSokT08grn6uqoKGPA=", + "dev": true, + "dependencies": { + "1-liners": "^0.3.1", + "chalk": "^1.0.0", + "object-assign": "^3.0.0", + "tiny-error": "^0.2.1" + } + }, + "node_modules/doxie.render/node_modules/object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/husky": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/husky/-/husky-0.8.1.tgz", + "integrity": "sha1-7MeXuMTGiToz9IcDvJeppeUNhg8=", + "dev": true, + "hasInstallScript": true + }, + "node_modules/keypather": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/keypather/-/keypather-1.10.2.tgz", + "integrity": "sha1-4ESWMtSz5RbyHMAUznxWRP3c5hQ=", + "dev": true, + "dependencies": { + "101": "^1.0.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/stream-to-json": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/stream-to-json/-/stream-to-json-0.0.1.tgz", + "integrity": "sha1-8DDyt47TjkkpPbiFZTarzCZ3FHM=", + "dev": true, + "dependencies": { + "concat-stream": "~1.2.0", + "once": "~1.3.0" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/tiny-error": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tiny-error/-/tiny-error-0.2.3.tgz", + "integrity": "sha1-KHas/leFGwcUMTwVNd/HBgp8Cbs=", + "dev": true, + "dependencies": { + "101": "^1.0.0", + "object-assign": "^4.0.1" + } + }, + "node_modules/to-utf8": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/to-utf8/-/to-utf8-0.0.1.tgz", + "integrity": "sha1-0Xrqcv8vujm55DYBvns/9y4ImFI=", + "dev": true + }, + "node_modules/type-detect": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", + "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + }, "dependencies": { "101": { "version": "1.6.3", diff --git a/tips.json b/tips.json index eea5b67..f823e40 100644 --- a/tips.json +++ b/tips.json @@ -216,9 +216,12 @@ "title": "Modify previous commit without modifying the commit message", "tip": "git add --all && git commit --amend --no-edit" }, { - "title": "Prunes references to remote branches that have been deleted in the remote.", + "title": "Prunes references to remove branches that have been deleted in the remote.", "tip": "git fetch -p", "alternatives": ["git remote prune origin"] + }, { + "title": "Delete local branches that has been squash and merged in the remote.", + "tip": "git branch -vv | grep ': gone]' | awk '{print $1}' | xargs git branch -D" }, { "title": "Retrieve the commit hash of the initial revision.", "tip": " git rev-list --reverse HEAD | head -1", From ec4301cc2daa245b5a1d503ae9306704622ba910 Mon Sep 17 00:00:00 2001 From: Masahiko Shin Date: Tue, 4 May 2021 19:58:08 +0900 Subject: [PATCH 089/108] Add a tip to view what's in a stash --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 26dac9b..a04546a 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Saving current state with message](#saving-current-state-with-message) * [Saving current state of all files (ignored, untracked, and tracked)](#saving-current-state-of-all-files-ignored-untracked-and-tracked) * [Show list of all saved stashes](#show-list-of-all-saved-stashes) +* [Show the contents of any stash in patch form](#show-the-contents-of-any-stash-in-patch-form) * [Apply any stash without deleting from the stashed list](#apply-any-stash-without-deleting-from-the-stashed-list) * [Apply last stashed state and delete it from stashed list](#apply-last-stashed-state-and-delete-it-from-stashed-list) * [Delete all stored stashes](#delete-all-stored-stashes) @@ -510,6 +511,11 @@ git stash push --all git stash list ``` +## Show the contents of any stash in patch form +```sh +git stash show -p +``` + ## Apply any stash without deleting from the stashed list ```sh git stash apply diff --git a/tips.json b/tips.json index f823e40..4bf8c7d 100644 --- a/tips.json +++ b/tips.json @@ -152,6 +152,9 @@ "title": "Show list of all saved stashes", "tip": "git stash list" }, { + "title": "Show the contents of any stash in patch form", + "tip": "git stash show -p " + }, { "title": "Apply any stash without deleting from the stashed list", "tip": "git stash apply " }, { From c8eb026a8617d7b78d3b2a360959e0a0bb571bfd Mon Sep 17 00:00:00 2001 From: Masahiko Shin Date: Tue, 4 May 2021 19:30:37 +0900 Subject: [PATCH 090/108] Add a tip to omit writing branch names when push --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 26dac9b..2e6f300 100644 --- a/README.md +++ b/README.md @@ -170,6 +170,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [List all git aliases](#list-all-git-aliases) * [Show git status short](#show-git-status-short) * [Checkout a commit prior to a day ago](#checkout-a-commit-prior-to-a-day-ago) +* [Push the current branch to the same name on the remote repository](#push-the-current-branch-to-the-same-name-on-the-remote-repository) * [Push a new local branch to remote repository and track](#push-a-new-local-branch-to-remote-repository-and-track) * [Change a branch base](#change-a-branch-base) * [Use SSH instead of HTTPs for remotes](#use-ssh-instead-of-https-for-remotes) @@ -1213,6 +1214,11 @@ git status --short --branch git checkout master@{yesterday} ``` +## Push the current branch to the same name on the remote repository +```sh +git push origin HEAD +``` + ## Push a new local branch to remote repository and track ```sh git push -u origin diff --git a/tips.json b/tips.json index f823e40..992d116 100644 --- a/tips.json +++ b/tips.json @@ -508,6 +508,9 @@ "title": "Checkout a commit prior to a day ago", "tip": "git checkout master@{yesterday}" }, { + "title": "Push the current branch to the same name on the remote repository", + "tip": "git push origin HEAD" + }, { "title": "Push a new local branch to remote repository and track", "tip": "git push -u origin " }, { From dc7a62b67d247eefd94a4f8abf5e7c95c5efc807 Mon Sep 17 00:00:00 2001 From: Itai Klapholtz Date: Tue, 4 May 2021 18:34:18 +0300 Subject: [PATCH 091/108] Add create local tag tip --- README.md | 6 ++++++ tips.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 26dac9b..b57c11a 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Track upstream branch](#track-upstream-branch) * [Delete local branch](#delete-local-branch) * [Delete remote branch](#delete-remote-branch) +* [Create local tag](#create-local-tag) * [Delete local tag](#delete-local-tag) * [Delete remote tag](#delete-remote-tag) * [Undo local changes with the last content in head](#undo-local-changes-with-the-last-content-in-head) @@ -316,6 +317,11 @@ git push origin : git branch -dr ``` +## Create local tag +```sh +git tag +``` + ## Delete local tag ```sh git tag -d diff --git a/tips.json b/tips.json index f823e40..217c960 100644 --- a/tips.json +++ b/tips.json @@ -65,6 +65,9 @@ "title": "Delete remote branch", "tip": "git push origin --delete ", "alternatives": ["git push origin :", "git branch -dr "] + }, { + "title": "Create local tag", + "tip": "git tag " }, { "title": "Delete local tag", "tip": "git tag -d " From 1c37e6b3eba09f3839fef75e31ba9170a096470f Mon Sep 17 00:00:00 2001 From: Mohammad Javad Nikbakht <37978546+javadnikbakht@users.noreply.github.com> Date: Fri, 13 Aug 2021 02:48:19 +0430 Subject: [PATCH 092/108] A Persian version of README file link Added --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 71e3718..23f936d 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ## git-tips > Collection of `git-tips`, want to add your tips? Checkout [contributing.md](./contributing.md) -[English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) | [Русский](https://github.com/Imangazaliev/git-tips) | [한국어](https://github.com/mingrammer/git-tips) | [Tiếng Việt](https://github.com/hprobotic/git-tips) | [日本語](https://github.com/isotai/git-tips) | [नेपाली](https://github.com/amarduwal/git-tips) | [Polski](https://github.com/mbiesiad/tips) +[English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) | [Русский](https://github.com/Imangazaliev/git-tips) | [한국어](https://github.com/mingrammer/git-tips) | [Tiếng Việt](https://github.com/hprobotic/git-tips) | [日本語](https://github.com/isotai/git-tips) | [नेपाली](https://github.com/amarduwal/git-tips) | [Polski](https://github.com/mbiesiad/tips) | [فارسی](https://github.com/javadnikbakht/git-tips) ### __Tools:__ From a8f70a05dc8bc5870b3a92f7e2f35c5c79b52cbc Mon Sep 17 00:00:00 2001 From: Arnab Nandy Date: Thu, 6 Apr 2023 10:41:48 +0530 Subject: [PATCH 093/108] Fix:git checkout -- is incorrect #177 --- README.md | 2 +- tips.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 23f936d..757ef31 100644 --- a/README.md +++ b/README.md @@ -334,7 +334,7 @@ git tag -d git push origin :refs/tags/ ``` -## Undo local changes with the last content in head +## Undo local changes with the content in index(staging) ```sh git checkout -- ``` diff --git a/tips.json b/tips.json index 5c38a63..d53d1ae 100644 --- a/tips.json +++ b/tips.json @@ -75,7 +75,7 @@ "title": "Delete remote tag", "tip": "git push origin :refs/tags/" }, { - "title": "Undo local changes with the last content in head", + "title": "Undo local changes with the content in index(staging)", "tip": "git checkout -- " }, { "title": "Revert: Undo a commit by creating a new commit", From a67bf7c06eb76de096a9cbbffac9cb13e851f26b Mon Sep 17 00:00:00 2001 From: Arnab Nandy Date: Thu, 6 Apr 2023 10:56:32 +0530 Subject: [PATCH 094/108] adding the package files --- package-lock.json | 365 +--------------------------------------------- package.json | 2 +- 2 files changed, 5 insertions(+), 362 deletions(-) diff --git a/package-lock.json b/package-lock.json index 92e247e..ec93f7f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,365 +1,8 @@ { "name": "tips", "version": "1.0.0", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "version": "1.0.0", - "license": "MIT", - "devDependencies": { - "doxie": "^0.2.2", - "doxie.append": "^0.1.0", - "doxie.inject": "^0.1.1", - "doxie.output": "^0.3.0", - "doxie.render": "^0.3.0", - "husky": "^0.8.1" - } - }, - "node_modules/1-liners": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/1-liners/-/1-liners-0.3.6.tgz", - "integrity": "sha1-SDD+eLdTejaZ+IpdQqjtwa9mB/8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/101": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/101/-/101-1.6.3.tgz", - "integrity": "sha512-4dmQ45yY0Dx24Qxp+zAsNLlMF6tteCyfVzgbulvSyC7tCyd3V8sW76sS0tHq8NpcbXfWTKasfyfzU1Kd86oKzw==", - "dev": true, - "dependencies": { - "clone": "^1.0.2", - "deep-eql": "^0.1.3", - "keypather": "^1.10.2" - } - }, - "node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-find": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", - "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", - "dev": true - }, - "node_modules/base64-js": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.2.tgz", - "integrity": "sha1-Ak8Pcq+iW3X5wO5zzU9V7Bvtl4Q=", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/bops": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/bops/-/bops-0.0.6.tgz", - "integrity": "sha1-CC0dVfoB5g29wuvC26N/ZZVUzzo=", - "dev": true, - "dependencies": { - "base64-js": "0.0.2", - "to-utf8": "0.0.1" - } - }, - "node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/concat-stream": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.2.1.tgz", - "integrity": "sha1-81EAtsRjeL+6i2uA+fDQzN8T3GA=", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "dependencies": { - "bops": "0.0.6" - } - }, - "node_modules/deep-eql": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", - "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", - "dev": true, - "dependencies": { - "type-detect": "0.1.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, - "node_modules/doxie": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/doxie/-/doxie-0.2.4.tgz", - "integrity": "sha1-KZltv1dg/OdNvLTXnGAjHYoXu4U=", - "dev": true, - "dependencies": { - "1-liners": "^0.3.2", - "chalk": "^1.0.0", - "doxie-core": "^0.3.1", - "stream-to-json": "^0.0.1", - "tiny-error": "^0.2.1" - }, - "bin": { - "doxie": "bin/doxie.js" - } - }, - "node_modules/doxie-core": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/doxie-core/-/doxie-core-0.3.1.tgz", - "integrity": "sha1-PS+RQ+WF45Cpgwjcnk7zjxPPQss=", - "dev": true, - "dependencies": { - "1-liners": "^0.3.0", - "chalk": "^1.0.0", - "tiny-error": "^0.2.1" - } - }, - "node_modules/doxie.append": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/doxie.append/-/doxie.append-0.1.0.tgz", - "integrity": "sha1-yHRoUEL18wlKTQwzNsPklMNpdOE=", - "dev": true, - "dependencies": { - "object-assign": "^3.0.0" - } - }, - "node_modules/doxie.append/node_modules/object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/doxie.inject": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/doxie.inject/-/doxie.inject-0.1.1.tgz", - "integrity": "sha1-/QNYT4segOZEtcuUdpr+RH94oEc=", - "dev": true, - "dependencies": { - "1-liners": "^0.3.2", - "array-find": "^1.0.0", - "chalk": "^1.0.0", - "defined": "^1.0.0", - "object-assign": "^3.0.0", - "tiny-error": "^0.2.1" - } - }, - "node_modules/doxie.inject/node_modules/object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/doxie.output": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/doxie.output/-/doxie.output-0.3.0.tgz", - "integrity": "sha1-4H4Stn2qX8KLPsZn0HAv1ziZitE=", - "dev": true, - "dependencies": { - "1-liners": "^0.3.0", - "object-assign": "^3.0.0" - } - }, - "node_modules/doxie.output/node_modules/object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/doxie.render": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/doxie.render/-/doxie.render-0.3.2.tgz", - "integrity": "sha1-Mva37g88NSSokT08grn6uqoKGPA=", - "dev": true, - "dependencies": { - "1-liners": "^0.3.1", - "chalk": "^1.0.0", - "object-assign": "^3.0.0", - "tiny-error": "^0.2.1" - } - }, - "node_modules/doxie.render/node_modules/object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/husky": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/husky/-/husky-0.8.1.tgz", - "integrity": "sha1-7MeXuMTGiToz9IcDvJeppeUNhg8=", - "dev": true, - "hasInstallScript": true - }, - "node_modules/keypather": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/keypather/-/keypather-1.10.2.tgz", - "integrity": "sha1-4ESWMtSz5RbyHMAUznxWRP3c5hQ=", - "dev": true, - "dependencies": { - "101": "^1.0.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/stream-to-json": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/stream-to-json/-/stream-to-json-0.0.1.tgz", - "integrity": "sha1-8DDyt47TjkkpPbiFZTarzCZ3FHM=", - "dev": true, - "dependencies": { - "concat-stream": "~1.2.0", - "once": "~1.3.0" - } - }, - "node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/tiny-error": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tiny-error/-/tiny-error-0.2.3.tgz", - "integrity": "sha1-KHas/leFGwcUMTwVNd/HBgp8Cbs=", - "dev": true, - "dependencies": { - "101": "^1.0.0", - "object-assign": "^4.0.1" - } - }, - "node_modules/to-utf8": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/to-utf8/-/to-utf8-0.0.1.tgz", - "integrity": "sha1-0Xrqcv8vujm55DYBvns/9y4ImFI=", - "dev": true - }, - "node_modules/type-detect": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", - "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - } - }, "dependencies": { "101": { "version": "1.6.3", @@ -572,9 +215,9 @@ } }, "husky": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/husky/-/husky-0.8.1.tgz", - "integrity": "sha1-7MeXuMTGiToz9IcDvJeppeUNhg8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/husky/-/husky-5.2.0.tgz", + "integrity": "sha512-AM8T/auHXRBxlrfPVLKP6jt49GCM2Zz47m8G3FOMsLmTv8Dj/fKVWE0Rh2d4Qrvmy131xEsdQnb3OXRib67PGg==", "dev": true }, "keypather": { diff --git a/package.json b/package.json index 6d1b215..75efa09 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,6 @@ "doxie.inject": "^0.1.1", "doxie.output": "^0.3.0", "doxie.render": "^0.3.0", - "husky": "^0.8.1" + "husky": "^5.0.9" } } From 07662dbac1348b9f6ee9c1d28f03e8bcb930db4a Mon Sep 17 00:00:00 2001 From: Bob Conan Date: Wed, 23 Oct 2024 15:11:22 -0500 Subject: [PATCH 095/108] Update tips.json, fix a typo --- tips.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tips.json b/tips.json index d53d1ae..7cf20b2 100644 --- a/tips.json +++ b/tips.json @@ -132,7 +132,7 @@ "title": "Git Aliases", "tip": "git config --global alias. \ngit config --global alias.st status" }, { - "title": "Saving current state of tracked files without commiting", + "title": "Saving current state of tracked files without committing", "tip": "git stash", "alternatives": ["git stash push"] }, { From 0dbc4b8e14194ddb3aba8fb6cb43434c281db63d Mon Sep 17 00:00:00 2001 From: Salvo Rapisarda Date: Mon, 9 Mar 2026 19:37:39 +0100 Subject: [PATCH 096/108] add new command (#217) Co-authored-by: Salvo Rapisarda --- README.md | 7 +++++++ tips.json | 3 +++ 2 files changed, 10 insertions(+) diff --git a/README.md b/README.md index 757ef31..33a5547 100644 --- a/README.md +++ b/README.md @@ -178,6 +178,7 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Use SSH instead of HTTPs for remotes](#use-ssh-instead-of-https-for-remotes) * [Update a submodule to the latest commit](#update-a-submodule-to-the-latest-commit) * [Prevent auto replacing LF with CRLF](#prevent-auto-replacing-lf-with-crlf) +* [Refresh the list of remote branches](#refresh-the-list-of-remote-branches) @@ -999,6 +1000,7 @@ __Alternatives:__ git branch && git checkout ``` + ```sh git switch -c ``` @@ -1264,5 +1266,10 @@ git commit -m "submodule updated" git config --global core.autocrlf false ``` +## Refresh the list of remote branches +```sh +git remote update origin --prune +``` + diff --git a/tips.json b/tips.json index 7cf20b2..65cf6d1 100644 --- a/tips.json +++ b/tips.json @@ -531,5 +531,8 @@ }, { "title": "Prevent auto replacing LF with CRLF", "tip": "git config --global core.autocrlf false" + }, { + "title": "Refresh the list of remote branches", + "tip": "git remote update origin --prune" } ] From 3c39453568bd803e11caa26a15dcd712ddef4f1f Mon Sep 17 00:00:00 2001 From: hemanth Date: Mon, 9 Mar 2026 11:48:38 -0700 Subject: [PATCH 097/108] Refactor: Categorize tips in tips.json and build GitBook structure --- docs/README.md | 3 + docs/SUMMARY.md | 14 + docs/basic-operations.md | 387 ++++++++ docs/branching.md | 137 +++ docs/log-and-history.md | 304 ++++++ docs/merging-and-rebasing.md | 44 + docs/miscellaneous.md | 85 ++ docs/remotes.md | 48 + docs/setup-and-config.md | 156 ++++ docs/stashing.md | 109 +++ docs/submodules-and-subtrees.md | 215 +++++ docs/tagging.md | 16 + docs/undoing-changes.md | 104 +++ tips.json | 1522 ++++++++++++++++++++----------- 14 files changed, 2606 insertions(+), 538 deletions(-) create mode 100644 docs/README.md create mode 100644 docs/SUMMARY.md create mode 100644 docs/basic-operations.md create mode 100644 docs/branching.md create mode 100644 docs/log-and-history.md create mode 100644 docs/merging-and-rebasing.md create mode 100644 docs/miscellaneous.md create mode 100644 docs/remotes.md create mode 100644 docs/setup-and-config.md create mode 100644 docs/stashing.md create mode 100644 docs/submodules-and-subtrees.md create mode 100644 docs/tagging.md create mode 100644 docs/undoing-changes.md diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..6a64d11 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,3 @@ +# Git Tips + +Welcome to the Git Tips documentation! Browse through the categories in the sidebar to find useful Git commands and tricks. diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md new file mode 100644 index 0000000..37021f9 --- /dev/null +++ b/docs/SUMMARY.md @@ -0,0 +1,14 @@ +# Summary + +* [Introduction](README.md) +* [Basic Operations](basic-operations.md) +* [Branching](branching.md) +* [Log and History](log-and-history.md) +* [Merging and Rebasing](merging-and-rebasing.md) +* [Miscellaneous](miscellaneous.md) +* [Remotes](remotes.md) +* [Setup and Config](setup-and-config.md) +* [Stashing](stashing.md) +* [Submodules and Subtrees](submodules-and-subtrees.md) +* [Tagging](tagging.md) +* [Undoing Changes](undoing-changes.md) diff --git a/docs/basic-operations.md b/docs/basic-operations.md new file mode 100644 index 0000000..e1ec04c --- /dev/null +++ b/docs/basic-operations.md @@ -0,0 +1,387 @@ +# Basic Operations + +## List of all files till a commit +```sh +git ls-tree --name-only -r +``` + +--- + +## Quickly switch to the previous branch +```sh +git checkout - +``` +**Alternatives:** +```sh +git checkout @{-1} +``` + +--- + +## Delete remote branch +```sh +git push origin --delete +``` +**Alternatives:** +```sh +git push origin : +``` +```sh +git branch -dr +``` + +--- + +## Delete remote tag +```sh +git push origin :refs/tags/ +``` + +--- + +## Undo local changes with the content in index(staging) +```sh +git checkout -- +``` + +--- + +## Reword the previous commit message +```sh +git commit -v --amend +``` + +--- + +## See commit history for just the current branch +```sh +git cherry -v master +``` + +--- + +## Amend author. +```sh +git commit --amend --author='Author Name ' +``` + +--- + +## Stage parts of a changed file, instead of the entire file +```sh +git add -p +``` + +--- + +## Pick commits across branches using cherry-pick +```sh +git checkout && git cherry-pick +``` + +--- + +## Grab a single file from a stash +```sh +git checkout -- +``` +**Alternatives:** +```sh +git checkout stash@{0} -- +``` + +--- + +## Create new working tree from a repository (git 2.5) +```sh +git worktree add -b +``` + +--- + +## Create new working tree from HEAD state +```sh +git worktree add --detach HEAD +``` + +--- + +## Show all commits in the current branch yet to be merged to master +```sh +git cherry -v master +``` +**Alternatives:** +```sh +git cherry -v master +``` + +--- + +## Modify previous commit without modifying the commit message +```sh +git add --all && git commit --amend --no-edit +``` + +--- + +## Prunes references to remove branches that have been deleted in the remote. +```sh +git fetch -p +``` +**Alternatives:** +```sh +git remote prune origin +``` + +--- + +## Retrieve the commit hash of the initial revision. +```sh + git rev-list --reverse HEAD | head -1 +``` +**Alternatives:** +```sh +git rev-list --max-parents=0 HEAD +``` +```sh +git log --pretty=oneline | tail -1 | cut -c 1-40 +``` +```sh +git log --pretty=oneline --reverse | head -1 | cut -c 1-40 +``` + +--- + +## Import from a bundle +```sh +git clone repo.bundle -b +``` + +--- + +## Ignore one file on commit (e.g. Changelog). +```sh +git update-index --assume-unchanged Changelog; git commit -a; git update-index --no-assume-unchanged Changelog +``` + +--- + +## Fetch pull request by ID to a local branch +```sh +git fetch origin pull//head: +``` +**Alternatives:** +```sh +git pull origin pull//head: +``` + +--- + +## Restore deleted file. +```sh +git checkout -- +``` + +--- + +## Restore file to a specific commit-hash +```sh +git checkout -- +``` + +--- + +## Marks your commit as a fix of a previous commit. +```sh +git commit --fixup +``` + +--- + +## Skip staging area during commit. +```sh +git commit --only +``` + +--- + +## Interactive staging. +```sh +git add -i +``` + +--- + +## Status of ignored files. +```sh +git status --ignored +``` + +--- + +## Checkout a new branch without any history +```sh +git checkout --orphan +``` + +--- + +## Find guilty with binary search +```sh +git bisect start # Search start +git bisect bad # Set point to bad commit +git bisect good v2.6.13-rc2 # Set point to good commit|tag +git bisect bad # Say current state is bad +git bisect good # Say current state is good +git bisect reset # Finish search + +``` + +--- + +## Bypass pre-commit and commit-msg githooks +```sh +git commit --no-verify +``` + +--- + +## Clone a single branch +```sh +git clone -b --single-branch https://github.com/user/repo.git +``` + +--- + +## Create and switch new branch +```sh +git checkout -b +``` +**Alternatives:** +```sh +git branch && git checkout +``` +```sh +git switch -c +``` + +--- + +## Show all local branches ordered by recent commits +```sh +git for-each-ref --sort=-committerdate --format='%(refname:short)' refs/heads/ +``` + +--- + +## Clone a shallow copy of a repository +```sh +git clone https://github.com/user/repo.git --depth 1 +``` + +--- + +## Force push to Remote Repository +```sh +git push -f +``` + +--- + +## Group commits by authors and title +```sh +git shortlog +``` + +--- + +## Forced push but still ensure you don't overwrite other's work +```sh +git push --force-with-lease +``` + +--- + +## Number of commits in a branch +```sh +git rev-list --count +``` + +--- + +## Add object notes +```sh +git notes add -m 'Note on the previous commit....' +``` + +--- + +## Apply commit from another repository +```sh +git --git-dir=/.git format-patch -k -1 --stdout | git am -3 -k +``` + +--- + +## Specific fetch reference +```sh +git fetch origin master:refs/remotes/origin/mymaster +``` + +--- + +## Generates a summary of pending changes +```sh +git request-pull v1.0 https://git.ko.xz/project master:for-linus +``` + +--- + +## Show git status short +```sh +git status --short --branch +``` + +--- + +## Checkout a commit prior to a day ago +```sh +git checkout master@{yesterday} +``` + +--- + +## Push the current branch to the same name on the remote repository +```sh +git push origin HEAD +``` + +--- + +## Push a new local branch to remote repository and track +```sh +git push -u origin +``` + +--- + +## Update a submodule to the latest commit +```sh +cd +git pull origin +cd +git add +git commit -m "submodule updated" +``` + +--- + +## Duplicating a repository +```sh +git clone --bare https://github.com/exampleuser/old-repository.git + +git push --mirror https://github.com/exampleuser/new-repository.git +``` + +--- + diff --git a/docs/branching.md b/docs/branching.md new file mode 100644 index 0000000..1a799d9 --- /dev/null +++ b/docs/branching.md @@ -0,0 +1,137 @@ +# Branching + +## List all branches that are already merged into master +```sh +git branch --merged master +``` + +--- + +## Remove branches that have already been merged with master +```sh +git branch --merged master | grep -v '^\*' | xargs -n 1 git branch -d +``` +**Alternatives:** +```sh +git branch --merged master | grep -v '^\*\| master' | xargs -n 1 git branch -d # will not delete master if master is not checked out +``` + +--- + +## List all branches and their upstreams, as well as last commit on branch +```sh +git branch -vv +``` + +--- + +## Track upstream branch +```sh +git branch -u origin/mybranch +``` + +--- + +## Delete local branch +```sh +git branch -d +``` + +--- + +## Get list of all local and remote branches +```sh +git branch -a +``` + +--- + +## Get only remote branches +```sh +git branch -r +``` + +--- + +## Find out branches containing commit-hash +```sh +git branch -a --contains +``` +**Alternatives:** +```sh +git branch --contains +``` + +--- + +## Rename a branch +```sh +git branch -m +``` +**Alternatives:** +```sh +git branch -m [] +``` + +--- + +## Archive the `master` branch +```sh +git archive master --format=zip --output=master.zip +``` + +--- + +## Delete local branches that has been squash and merged in the remote. +```sh +git branch -vv | grep ': gone]' | awk '{print $1}' | xargs git branch -D +``` + +--- + +## Export a branch with history to a file. +```sh +git bundle create +``` + +--- + +## Get the name of current branch. +```sh +git rev-parse --abbrev-ref HEAD +``` + +--- + +## Show the most recent tag on the current branch. +```sh +git describe --tags --abbrev=0 +``` + +--- + +## List all branch is WIP +```sh +git checkout master && git branch --no-merged +``` + +--- + +## Preformatted patch file. +```sh +git format-patch -M upstream..topic +``` + +--- + +## Switch to a branch (modern alternative to checkout) +```sh +git switch +``` +**Alternatives:** +```sh +git switch -c +``` + +--- + diff --git a/docs/log-and-history.md b/docs/log-and-history.md new file mode 100644 index 0000000..07705f2 --- /dev/null +++ b/docs/log-and-history.md @@ -0,0 +1,304 @@ +# Log and History + +## Show helpful guides that come with Git +```sh +git help -g +``` + +--- + +## Search change by content +```sh +git log -S'' +``` + +--- + +## Show changes over time for specific file +```sh +git log -p +``` + +--- + +## List all the conflicted files +```sh +git diff --name-only --diff-filter=U +``` + +--- + +## List of all files changed in a commit +```sh +git diff-tree --no-commit-id --name-only -r +``` + +--- + +## Unstaged changes since last commit +```sh +git diff +``` + +--- + +## Changes staged for commit +```sh +git diff --cached +``` +**Alternatives:** +```sh +git diff --staged +``` + +--- + +## Show both staged and unstaged changes +```sh +git diff HEAD +``` + +--- + +## What changed since two weeks? +```sh +git log --no-merges --raw --since='2 weeks ago' +``` +**Alternatives:** +```sh +git whatchanged --since='2 weeks ago' +``` + +--- + +## See all commits made since forking from master +```sh +git log --no-merges --stat --reverse master.. +``` + +--- + +## Show all tracked files +```sh +git ls-files -t +``` + +--- + +## Show all untracked files +```sh +git ls-files --others +``` + +--- + +## Show all ignored files +```sh +git ls-files --others -i --exclude-standard +``` + +--- + +## Visualize the version tree. +```sh +git log --pretty=oneline --graph --decorate --all +``` +**Alternatives:** +```sh +gitk --all +``` +```sh +git log --graph --pretty=format:'%C(auto) %h | %s | %an | %ar%d' +``` + +--- + +## Visualize the tree including commits that are only referenced from reflogs +```sh +git log --graph --decorate --oneline $(git rev-list --walk-reflogs --all) +``` + +--- + +## Show inline word diff. +```sh +git diff --word-diff +``` + +--- + +## Show changes using common diff tools. +```sh +git difftool [-t ] +``` + +--- + +## Commits in Branch1 that are not in Branch2 +```sh +git log Branch1 ^Branch2 +``` + +--- + +## List n last commits +```sh +git log - +``` +**Alternatives:** +```sh +git log -n +``` + +--- + +## Open all conflicted files in an editor. +```sh +git diff --name-only | uniq | xargs $EDITOR +``` + +--- + +## View the GPG signatures in the commit log +```sh +git log --show-signature +``` + +--- + +## Extract file from another branch. +```sh +git show : +``` + +--- + +## List only the root and merge commits. +```sh +git log --first-parent +``` + +--- + +## List commits and changes to a specific file (even through renaming) +```sh +git log --follow -p -- +``` + +--- + +## Search Commit log across all branches for given text +```sh +git log --all --grep='' +``` + +--- + +## Get first commit in a branch (from master) +```sh +git log --oneline master.. | tail -1 +``` +**Alternatives:** +```sh +git log --reverse master.. | head -6 +``` + +--- + +## Show the author, time and last revision made to each line of a given file +```sh +git blame +``` + +--- + +## Show how many lines does an author contribute +```sh +git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | gawk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s removed lines: %s total lines: %s +", add, subs, loc }' - +``` +**Alternatives:** +```sh +git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s +", add, subs, loc }' - # on Mac OSX +``` + +--- + +## Show all the git-notes +```sh +git log --show-notes='*' +``` + +--- + +## List unpushed git commits +```sh +git log --branches --not --remotes +``` +**Alternatives:** +```sh +git log @{u}.. +``` +```sh +git cherry -v +``` + +--- + +## Add everything, but whitespace changes +```sh +git diff --ignore-all-space | git apply --cached +``` + +--- + +## blame on certain range +```sh +git blame -L , +``` + +--- + +## Show a Git logical variable. +```sh +git var -l | +``` + +--- + +## Get the repo name. +```sh +git rev-parse --show-toplevel +``` + +--- + +## logs between date range +```sh +git log --since='FEB 1 2017' --until='FEB 14 2017' +``` + +--- + +## Exclude author from logs +```sh +git log --perl-regexp --author='^((?!excluded-author-regex).*)$' +``` + +--- + +## View expanded details of changes in last commit +```sh +git show +``` + +--- + +## Visualize each position of HEAD in the last 30 days +```sh +git reflog +``` + +--- + diff --git a/docs/merging-and-rebasing.md b/docs/merging-and-rebasing.md new file mode 100644 index 0000000..27e9ceb --- /dev/null +++ b/docs/merging-and-rebasing.md @@ -0,0 +1,44 @@ +# Merging and Rebasing + +## Rebases 'feature' to 'master' and merges it in to master +```sh +git rebase master feature && git checkout master && git merge - +``` + +--- + +## Stash changes before rebasing +```sh +git rebase --autostash +``` + +--- + +## Squash fixup commits normal commits. +```sh +git rebase -i --autosquash +``` + +--- + +## Change previous two commits with an interactive rebase. +```sh +git rebase --interactive HEAD~2 +``` + +--- + +## Find common ancestor of two branches +```sh +git merge-base +``` + +--- + +## Change a branch base +```sh +git rebase --onto +``` + +--- + diff --git a/docs/miscellaneous.md b/docs/miscellaneous.md new file mode 100644 index 0000000..b773ba9 --- /dev/null +++ b/docs/miscellaneous.md @@ -0,0 +1,85 @@ +# Miscellaneous + +## Everyday Git in twenty commands or so +```sh +git help everyday +``` + +--- + +## Untrack files without deleting +```sh +git rm --cached +``` +**Alternatives:** +```sh +git rm --cached -r +``` + +--- + +## Don’t consider changes for tracked file. +```sh +git update-index --assume-unchanged +``` + +--- + +## Check if the change was a part of a release. +```sh +git name-rev --name-only +``` + +--- + +## List ignored files. +```sh +git check-ignore * +``` + +--- + +## Count unpacked number of objects and their disk consumption. +```sh +git count-objects --human-readable +``` + +--- + +## Prune all unreachable objects from the object database. +```sh +git gc --prune=now --aggressive +``` + +--- + +## Instantly browse your working repository in gitweb. +```sh +git instaweb [--local] [--httpd=] [--port=] [--browser=] +``` + +--- + +## Find lines matching the pattern (regex or string) in tracked files +```sh +git grep --heading --line-number 'foo bar' +``` + +--- + +## Backup untracked files. +```sh +git ls-files --others -i --exclude-standard | xargs zip untracked.zip +``` + +--- + +## Send a collection of patches as emails +```sh +git send-email [] … + +git send-email [] +``` + +--- + diff --git a/docs/remotes.md b/docs/remotes.md new file mode 100644 index 0000000..9ef03b2 --- /dev/null +++ b/docs/remotes.md @@ -0,0 +1,48 @@ +# Remotes + +## Changing a remote's URL +```sh +git remote set-url origin +``` + +--- + +## Get list of all remote references +```sh +git remote +``` +**Alternatives:** +```sh +git remote show +``` + +--- + +## Adding Remote name +```sh +git remote add +``` + +--- + +## List all currently configured remotes +```sh +git remote -v +``` + +--- + +## List references in a remote repository +```sh +git ls-remote git://git.kernel.org/pub/scm/git/git.git +``` + +--- + +## Refresh the list of remote branches +```sh +git remote update origin --prune +``` + +--- + diff --git a/docs/setup-and-config.md b/docs/setup-and-config.md new file mode 100644 index 0000000..37072de --- /dev/null +++ b/docs/setup-and-config.md @@ -0,0 +1,156 @@ +# Setup and Config + +## Remove sensitive data from history, after a push +```sh +git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch ' --prune-empty --tag-name-filter cat -- --all && git push origin --force --all +``` + +--- + +## Reset author, after author has been changed in the global config. +```sh +git commit --amend --reset-author --no-edit +``` + +--- + +## Get git bash completion +```sh +curl -L http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc +``` + +--- + +## Git Aliases +```sh +git config --global alias. +git config --global alias.st status +``` + +--- + +## Always rebase instead of merge on pull. +```sh +git config --global pull.rebase true +``` +**Alternatives:** +```sh +#git < 1.7.9 +git config --global branch.autosetuprebase always +``` + +--- + +## List all the alias and configs. +```sh +git config --list +``` + +--- + +## Make git case sensitive. +```sh +git config --global core.ignorecase false +``` + +--- + +## Add custom editors. +```sh +git config --global core.editor '$EDITOR' +``` + +--- + +## Auto correct typos. +```sh +git config --global help.autocorrect 1 +``` + +--- + +## Reuse recorded resolution, record and reuse previous conflicts resolutions. +```sh +git config --global rerere.enabled 1 +``` + +--- + +## Remove entry in the global config. +```sh +git config --global --unset +``` + +--- + +## Ignore file mode changes on commits +```sh +git config core.fileMode false +``` + +--- + +## Turn off git colored terminal output +```sh +git config --global color.ui false +``` + +--- + +## Specific color settings +```sh +git config --global +``` + +--- + +## Alias: git undo +```sh +git config --global alias.undo '!f() { git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; }; f' +``` + +--- + +## Edit [local/global] git config +```sh +git config [--global] --edit +``` + +--- + +## List all git aliases +```sh +git config -l | grep alias | sed 's/^alias\.//g' +``` +**Alternatives:** +```sh +git config -l | grep alias | cut -d '.' -f 2 +``` + +--- + +## Use SSH instead of HTTPs for remotes +```sh +git config --global url.'git@github.com:'.insteadOf 'https://github.com/' +``` + +--- + +## Prevent auto replacing LF with CRLF +```sh +git config --global core.autocrlf false +``` + +--- + +## Edit config for each level +```sh +git config --edit --system + +git config --edit --global + +git config --edit --local +``` + +--- + diff --git a/docs/stashing.md b/docs/stashing.md new file mode 100644 index 0000000..cc247b9 --- /dev/null +++ b/docs/stashing.md @@ -0,0 +1,109 @@ +# Stashing + +## Saving current state of tracked files without committing +```sh +git stash +``` +**Alternatives:** +```sh +git stash push +``` + +--- + +## Saving current state of unstaged changes to tracked files +```sh +git stash -k +``` +**Alternatives:** +```sh +git stash --keep-index +``` +```sh +git stash push --keep-index +``` + +--- + +## Saving current state including untracked files +```sh +git stash -u +``` +**Alternatives:** +```sh +git stash push -u +``` +```sh +git stash push --include-untracked +``` + +--- + +## Saving current state with message +```sh +git stash push -m +``` +**Alternatives:** +```sh +git stash push --message +``` + +--- + +## Saving current state of all files (ignored, untracked, and tracked) +```sh +git stash -a +``` +**Alternatives:** +```sh +git stash --all +``` +```sh +git stash push --all +``` + +--- + +## Show list of all saved stashes +```sh +git stash list +``` + +--- + +## Show the contents of any stash in patch form +```sh +git stash show -p +``` + +--- + +## Apply any stash without deleting from the stashed list +```sh +git stash apply +``` + +--- + +## Apply last stashed state and delete it from stashed list +```sh +git stash pop +``` +**Alternatives:** +```sh +git stash apply stash@{0} && git stash drop stash@{0} +``` + +--- + +## Delete all stored stashes +```sh +git stash clear +``` +**Alternatives:** +```sh +git stash drop +``` + +--- + diff --git a/docs/submodules-and-subtrees.md b/docs/submodules-and-subtrees.md new file mode 100644 index 0000000..bb89ed1 --- /dev/null +++ b/docs/submodules-and-subtrees.md @@ -0,0 +1,215 @@ +# Submodules and Subtrees + +## Update all the submodules +```sh +git submodule foreach git pull +``` +**Alternatives:** +```sh +git submodule update --init --recursive +``` +```sh +git submodule update --remote +``` + +--- + +## Deploying git tracked subfolder to gh-pages +```sh +git subtree push --prefix subfolder_name origin gh-pages +``` +**Alternatives:** +```sh +g +``` +```sh +i +``` +```sh +t +``` +```sh + +``` +```sh +s +``` +```sh +u +``` +```sh +b +``` +```sh +t +``` +```sh +r +``` +```sh +e +``` +```sh +e +``` +```sh + +``` +```sh +p +``` +```sh +u +``` +```sh +s +``` +```sh +h +``` +```sh + +``` +```sh +- +``` +```sh +- +``` +```sh +p +``` +```sh +r +``` +```sh +e +``` +```sh +f +``` +```sh +i +``` +```sh +x +``` +```sh + +``` +```sh +s +``` +```sh +u +``` +```sh +b +``` +```sh +f +``` +```sh +o +``` +```sh +l +``` +```sh +d +``` +```sh +e +``` +```sh +r +``` +```sh +_ +``` +```sh +n +``` +```sh +a +``` +```sh +m +``` +```sh +e +``` +```sh + +``` +```sh +o +``` +```sh +r +``` +```sh +i +``` +```sh +g +``` +```sh +i +``` +```sh +n +``` +```sh + +``` +```sh +b +``` +```sh +r +``` +```sh +a +``` +```sh +n +``` +```sh +c +``` +```sh +h +``` +```sh +_ +``` +```sh +n +``` +```sh +a +``` +```sh +m +``` +```sh +e +``` + +--- + +## Adding a project to repo using subtree +```sh +git subtree add --prefix=/ --squash git@github.com:/.git master +``` + +--- + +## Get latest changes in your repo for a linked project using subtree +```sh +git subtree pull --prefix=/ --squash git@github.com:/.git master +``` + +--- + diff --git a/docs/tagging.md b/docs/tagging.md new file mode 100644 index 0000000..8d386ec --- /dev/null +++ b/docs/tagging.md @@ -0,0 +1,16 @@ +# Tagging + +## Create local tag +```sh +git tag +``` + +--- + +## Delete local tag +```sh +git tag -d +``` + +--- + diff --git a/docs/undoing-changes.md b/docs/undoing-changes.md new file mode 100644 index 0000000..627e286 --- /dev/null +++ b/docs/undoing-changes.md @@ -0,0 +1,104 @@ +# Undoing Changes + +## Sync with remote, overwrite local changes +```sh +git fetch origin && git reset --hard origin/master && git clean -f -d +``` + +--- + +## Git reset first commit +```sh +git update-ref -d HEAD +``` + +--- + +## Reset: preserve uncommitted local changes +```sh +git reset --keep +``` + +--- + +## Revert: Undo a commit by creating a new commit +```sh +git revert +``` + +--- + +## Reset: Discard commits, advised for private branch +```sh +git reset +``` + +--- + +## Before deleting untracked files/directory, do a dry run to get the list of these files/directories +```sh +git clean -n +``` + +--- + +## Forcefully remove untracked files +```sh +git clean -f +``` + +--- + +## Forcefully remove untracked directory +```sh +git clean -f -d +``` + +--- + +## Undo assume-unchanged. +```sh +git update-index --no-assume-unchanged +``` + +--- + +## Clean the files from `.gitignore`. +```sh +git clean -X -f +``` + +--- + +## Dry run. (any command that supports dry-run flag should do.) +```sh +git clean -fd --dry-run +``` + +--- + +## Unstaging Staged file +```sh +git reset HEAD +``` + +--- + +## Revert: Reverting an entire merge +```sh +git revert -m 1 +``` + +--- + +## Restore file (modern alternative to reset/checkout --) +```sh +git restore +``` +**Alternatives:** +```sh +git restore --staged +``` + +--- + diff --git a/tips.json b/tips.json index 65cf6d1..0dc2b67 100644 --- a/tips.json +++ b/tips.json @@ -1,538 +1,984 @@ -[{ - "title": "Everyday Git in twenty commands or so", - "tip": "git help everyday" - }, { - "title": "Show helpful guides that come with Git", - "tip": "git help -g" - }, { - "title": "Search change by content", - "tip": "git log -S''" - }, { - "title": "Show changes over time for specific file", - "tip": "git log -p " - }, { - "title": "Remove sensitive data from history, after a push", - "tip": "git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch ' --prune-empty --tag-name-filter cat -- --all && git push origin --force --all" - }, { - "title": "Sync with remote, overwrite local changes", - "tip": "git fetch origin && git reset --hard origin/master && git clean -f -d" - }, { - "title": "List of all files till a commit", - "tip": "git ls-tree --name-only -r " - }, { - "title": "Git reset first commit", - "tip": "git update-ref -d HEAD" - }, { - "title": "Reset: preserve uncommitted local changes", - "tip": "git reset --keep " - }, { - "title": "List all the conflicted files", - "tip": "git diff --name-only --diff-filter=U" - }, { - "title": "List of all files changed in a commit", - "tip": "git diff-tree --no-commit-id --name-only -r " - }, { - "title": "Unstaged changes since last commit", - "tip": "git diff" - }, { - "title": "Changes staged for commit", - "tip": "git diff --cached", - "alternatives": ["git diff --staged"] - }, { - "title": "Show both staged and unstaged changes", - "tip": "git diff HEAD" - }, { - "title": "List all branches that are already merged into master", - "tip": "git branch --merged master" - }, { - "title": "Quickly switch to the previous branch", - "tip": "git checkout -", - "alternatives": ["git checkout @{-1}"] - }, { - "title": "Remove branches that have already been merged with master", - "tip": "git branch --merged master | grep -v '^\\*' | xargs -n 1 git branch -d", - "alternatives": ["git branch --merged master | grep -v '^\\*\\| master' | xargs -n 1 git branch -d # will not delete master if master is not checked out"] - }, { - "title": "List all branches and their upstreams, as well as last commit on branch", - "tip": "git branch -vv" - }, { - "title": "Track upstream branch", - "tip": "git branch -u origin/mybranch" - }, { - "title": "Delete local branch", - "tip": "git branch -d " - }, { - "title": "Delete remote branch", - "tip": "git push origin --delete ", - "alternatives": ["git push origin :", "git branch -dr "] - }, { - "title": "Create local tag", - "tip": "git tag " - }, { - "title": "Delete local tag", - "tip": "git tag -d " - }, { - "title": "Delete remote tag", - "tip": "git push origin :refs/tags/" - }, { - "title": "Undo local changes with the content in index(staging)", - "tip": "git checkout -- " - }, { - "title": "Revert: Undo a commit by creating a new commit", - "tip": "git revert " - }, { - "title": "Reset: Discard commits, advised for private branch", - "tip": "git reset " - }, { - "title": "Reword the previous commit message", - "tip": "git commit -v --amend" - }, { - "title": "See commit history for just the current branch", - "tip": "git cherry -v master" - }, { - "title": "Amend author.", - "tip": "git commit --amend --author='Author Name '" - }, { - "title": "Reset author, after author has been changed in the global config.", - "tip": "git commit --amend --reset-author --no-edit" - }, { - "title": "Changing a remote's URL", - "tip": "git remote set-url origin " - }, { - "title": "Get list of all remote references", - "tip": "git remote", - "alternatives": ["git remote show"] - }, { - "title": "Get list of all local and remote branches", - "tip": "git branch -a" - }, { - "title": "Get only remote branches", - "tip": "git branch -r" - }, { - "title": "Stage parts of a changed file, instead of the entire file", - "tip": "git add -p" - }, { - "title": "Get git bash completion", - "tip": "curl -L http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc" - }, { - "title": "What changed since two weeks?", - "tip": "git log --no-merges --raw --since='2 weeks ago'", - "alternatives": ["git whatchanged --since='2 weeks ago'"] - }, { - "title": "See all commits made since forking from master", - "tip": "git log --no-merges --stat --reverse master.." - }, { - "title": "Pick commits across branches using cherry-pick", - "tip": "git checkout && git cherry-pick " - }, { - "title": "Find out branches containing commit-hash", - "tip": "git branch -a --contains ", - "alternatives": ["git branch --contains "] - }, { - "title": "Git Aliases", - "tip": "git config --global alias. \ngit config --global alias.st status" - }, { - "title": "Saving current state of tracked files without committing", - "tip": "git stash", - "alternatives": ["git stash push"] - }, { - "title": "Saving current state of unstaged changes to tracked files", - "tip": "git stash -k", - "alternatives": ["git stash --keep-index", "git stash push --keep-index"] - }, { - "title": "Saving current state including untracked files", - "tip": "git stash -u", - "alternatives": ["git stash push -u", "git stash push --include-untracked"] - }, { - "title": "Saving current state with message", - "tip": "git stash push -m ", - "alternatives": ["git stash push --message "] - }, { - "title": "Saving current state of all files (ignored, untracked, and tracked)", - "tip": "git stash -a", - "alternatives": ["git stash --all", "git stash push --all"] - }, { - "title": "Show list of all saved stashes", - "tip": "git stash list" - }, { - "title": "Show the contents of any stash in patch form", - "tip": "git stash show -p " - }, { - "title": "Apply any stash without deleting from the stashed list", - "tip": "git stash apply " - }, { - "title": "Apply last stashed state and delete it from stashed list", - "tip": "git stash pop", - "alternatives": ["git stash apply stash@{0} && git stash drop stash@{0}"] - }, { - "title": "Delete all stored stashes", - "tip": "git stash clear", - "alternatives": ["git stash drop "] - }, { - "title": "Grab a single file from a stash", - "tip": "git checkout -- ", - "alternatives": ["git checkout stash@{0} -- "] - }, { - "title": "Show all tracked files", - "tip": "git ls-files -t" - }, { - "title": "Show all untracked files", - "tip": "git ls-files --others" - }, { - "title": "Show all ignored files", - "tip": "git ls-files --others -i --exclude-standard" - }, { - "title": "Create new working tree from a repository (git 2.5)", - "tip": "git worktree add -b " - }, { - "title": "Create new working tree from HEAD state", - "tip": "git worktree add --detach HEAD" - }, { - "title": "Untrack files without deleting", - "tip": "git rm --cached ", - "alternatives": ["git rm --cached -r "] - }, { - "title": "Before deleting untracked files/directory, do a dry run to get the list of these files/directories", - "tip": "git clean -n" - }, { - "title": "Forcefully remove untracked files", - "tip": "git clean -f" - }, { - "title": "Forcefully remove untracked directory", - "tip": "git clean -f -d" - }, { - "title": "Update all the submodules", - "tip": "git submodule foreach git pull", - "alternatives": ["git submodule update --init --recursive", "git submodule update --remote"] - }, { - "title": "Show all commits in the current branch yet to be merged to master", - "tip": "git cherry -v master", - "alternatives": ["git cherry -v master "] - }, { - "title": "Rename a branch", - "tip": "git branch -m ", - "alternatives": ["git branch -m [] "] - }, { - "title": "Rebases 'feature' to 'master' and merges it in to master ", - "tip": "git rebase master feature && git checkout master && git merge -" - }, { - "title": "Archive the `master` branch", - "tip": "git archive master --format=zip --output=master.zip" - }, { - "title": "Modify previous commit without modifying the commit message", - "tip": "git add --all && git commit --amend --no-edit" - }, { - "title": "Prunes references to remove branches that have been deleted in the remote.", - "tip": "git fetch -p", - "alternatives": ["git remote prune origin"] - }, { - "title": "Delete local branches that has been squash and merged in the remote.", - "tip": "git branch -vv | grep ': gone]' | awk '{print $1}' | xargs git branch -D" - }, { - "title": "Retrieve the commit hash of the initial revision.", - "tip": " git rev-list --reverse HEAD | head -1", - "alternatives": ["git rev-list --max-parents=0 HEAD", "git log --pretty=oneline | tail -1 | cut -c 1-40", "git log --pretty=oneline --reverse | head -1 | cut -c 1-40"] - }, { - "title": "Visualize the version tree.", - "tip": "git log --pretty=oneline --graph --decorate --all", - "alternatives": ["gitk --all", "git log --graph --pretty=format:'%C(auto) %h | %s | %an | %ar%d'"] - }, { - "title": "Visualize the tree including commits that are only referenced from reflogs", - "tip": "git log --graph --decorate --oneline $(git rev-list --walk-reflogs --all)" - }, { - "title": "Deploying git tracked subfolder to gh-pages", - "tip": "git subtree push --prefix subfolder_name origin gh-pages", - "alternatives": "git subtree push --prefix subfolder_name origin branch_name" - }, { - "title": "Adding a project to repo using subtree", - "tip": "git subtree add --prefix=/ --squash git@github.com:/.git master" - }, { - "title": "Get latest changes in your repo for a linked project using subtree", - "tip": "git subtree pull --prefix=/ --squash git@github.com:/.git master" - }, { - "title": "Export a branch with history to a file.", - "tip": "git bundle create " - }, { - "title": "Import from a bundle", - "tip": "git clone repo.bundle -b " - }, { - "title": "Get the name of current branch.", - "tip": "git rev-parse --abbrev-ref HEAD" - }, { - "title": "Ignore one file on commit (e.g. Changelog).", - "tip": "git update-index --assume-unchanged Changelog; git commit -a; git update-index --no-assume-unchanged Changelog" - }, { - "title": "Stash changes before rebasing", - "tip": "git rebase --autostash" - }, { - "title": "Fetch pull request by ID to a local branch", - "tip": "git fetch origin pull//head:", - "alternatives": ["git pull origin pull//head:"] - }, { - "title": "Show the most recent tag on the current branch.", - "tip": "git describe --tags --abbrev=0" - }, { - "title": "Show inline word diff.", - "tip": "git diff --word-diff" - }, { - "title": "Show changes using common diff tools.", - "tip": "git difftool [-t ] " - }, { - "title": "Don’t consider changes for tracked file.", - "tip": "git update-index --assume-unchanged " - }, { - "title": "Undo assume-unchanged.", - "tip": "git update-index --no-assume-unchanged " - }, { - "title": "Clean the files from `.gitignore`.", - "tip": "git clean -X -f" - }, { - "title": "Restore deleted file.", - "tip": "git checkout -- " - }, { - "title": "Restore file to a specific commit-hash", - "tip": "git checkout -- " - }, { - "title": "Always rebase instead of merge on pull.", - "tip": "git config --global pull.rebase true", - "alternatives": ["#git < 1.7.9\ngit config --global branch.autosetuprebase always"] - }, { - "title": "List all the alias and configs.", - "tip": "git config --list" - }, { - "title": "Make git case sensitive.", - "tip": "git config --global core.ignorecase false" - }, { - "title": "Add custom editors.", - "tip": "git config --global core.editor '$EDITOR'" - }, { - "title": "Auto correct typos.", - "tip": "git config --global help.autocorrect 1" - }, { - "title": "Check if the change was a part of a release.", - "tip": "git name-rev --name-only " - }, { - "title": "Dry run. (any command that supports dry-run flag should do.)", - "tip": "git clean -fd --dry-run" - }, { - "title": "Marks your commit as a fix of a previous commit.", - "tip": "git commit --fixup " - }, { - "title": "Squash fixup commits normal commits.", - "tip": "git rebase -i --autosquash" - }, { - "title": "Skip staging area during commit.", - "tip": "git commit --only " - }, { - "title": "Interactive staging.", - "tip": "git add -i" - }, { - "title": "List ignored files.", - "tip": "git check-ignore *" - }, { - "title": "Status of ignored files.", - "tip": "git status --ignored" - }, { - "title": "Commits in Branch1 that are not in Branch2", - "tip": "git log Branch1 ^Branch2" - }, { - "title": "List n last commits", - "tip": "git log -", - "alternatives": ["git log -n "] - }, { - "title": "Reuse recorded resolution, record and reuse previous conflicts resolutions.", - "tip": "git config --global rerere.enabled 1" - }, { - "title": "Open all conflicted files in an editor.", - "tip": "git diff --name-only | uniq | xargs $EDITOR" - }, { - "title": "Count unpacked number of objects and their disk consumption.", - "tip": "git count-objects --human-readable" - }, { - "title": "Prune all unreachable objects from the object database.", - "tip": "git gc --prune=now --aggressive" - }, { - "title": "Instantly browse your working repository in gitweb.", - "tip": "git instaweb [--local] [--httpd=] [--port=] [--browser=]" - }, { - "title": "View the GPG signatures in the commit log", - "tip": "git log --show-signature" - }, { - "title": "Remove entry in the global config.", - "tip": "git config --global --unset " - }, { - "title": "Checkout a new branch without any history", - "tip": "git checkout --orphan " - }, { - "title": "Extract file from another branch.", - "tip": "git show :" - }, { - "title": "List only the root and merge commits.", - "tip": "git log --first-parent" - }, { - "title": "Change previous two commits with an interactive rebase.", - "tip": "git rebase --interactive HEAD~2" - }, { - "title": "List all branch is WIP", - "tip": "git checkout master && git branch --no-merged" - }, { - "title": "Find guilty with binary search", - "tip": "git bisect start # Search start \ngit bisect bad # Set point to bad commit \ngit bisect good v2.6.13-rc2 # Set point to good commit|tag \ngit bisect bad # Say current state is bad \ngit bisect good # Say current state is good \ngit bisect reset # Finish search \n" - }, { - "title": "Bypass pre-commit and commit-msg githooks", - "tip": "git commit --no-verify" - }, { - "title": "List commits and changes to a specific file (even through renaming)", - "tip": "git log --follow -p -- " - }, { - "title": "Clone a single branch", - "tip": "git clone -b --single-branch https://github.com/user/repo.git" - }, { - "title": "Create and switch new branch", - "tip": "git checkout -b ", - "alternatives": ["git branch && git checkout ", "git switch -c "] - }, { - "title": "Ignore file mode changes on commits", - "tip": "git config core.fileMode false" - }, { - "title": "Turn off git colored terminal output", - "tip": "git config --global color.ui false" - }, { - "title": "Specific color settings", - "tip": "git config --global " - }, { - "title": "Show all local branches ordered by recent commits", - "tip": "git for-each-ref --sort=-committerdate --format='%(refname:short)' refs/heads/" - }, { - "title": "Find lines matching the pattern (regex or string) in tracked files", - "tip": "git grep --heading --line-number 'foo bar'" - }, { - "title": "Clone a shallow copy of a repository", - "tip": "git clone https://github.com/user/repo.git --depth 1" - }, { - "title": "Search Commit log across all branches for given text", - "tip": "git log --all --grep=''" - }, { - "title": "Get first commit in a branch (from master)", - "tip": "git log --oneline master.. | tail -1", - "alternatives": ["git log --reverse master.. | head -6"] - }, { - "title": "Unstaging Staged file", - "tip": "git reset HEAD " - }, { - "title": "Force push to Remote Repository", - "tip": "git push -f " - }, { - "title": "Adding Remote name", - "tip": "git remote add " - }, { - "title": "List all currently configured remotes", - "tip": "git remote -v" - }, { - "title": "Show the author, time and last revision made to each line of a given file", - "tip": "git blame " - }, { - "title": "Group commits by authors and title", - "tip": "git shortlog" - }, { - "title": "Forced push but still ensure you don't overwrite other's work", - "tip": "git push --force-with-lease " - }, { - "title": "Show how many lines does an author contribute", - "tip": "git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | gawk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf \"added lines: %s removed lines: %s total lines: %s\n\", add, subs, loc }' -", - "alternatives": ["git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf \"added lines: %s, removed lines: %s, total lines: %s\n\", add, subs, loc }' - # on Mac OSX"] - }, { - "title": "Revert: Reverting an entire merge", - "tip": "git revert -m 1 " - }, { - "title": "Number of commits in a branch", - "tip": "git rev-list --count " - }, { - "title": "Alias: git undo", - "tip": "git config --global alias.undo '!f() { git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; }; f'" - }, { - "title": "Add object notes", - "tip": "git notes add -m 'Note on the previous commit....'" - }, { - "title": "Show all the git-notes", - "tip": "git log --show-notes='*'" - }, { - "title": "Apply commit from another repository", - "tip": "git --git-dir=/.git format-patch -k -1 --stdout | git am -3 -k" - }, { - "title": "Specific fetch reference", - "tip": "git fetch origin master:refs/remotes/origin/mymaster" - }, { - "title": "Find common ancestor of two branches", - "tip": "git merge-base " - }, { - "title": "List unpushed git commits", - "tip": "git log --branches --not --remotes", - "alternatives": ["git log @{u}..", "git cherry -v"] - }, { - "title": "Add everything, but whitespace changes", - "tip": "git diff --ignore-all-space | git apply --cached" - }, { - "title": "Edit [local/global] git config", - "tip": "git config [--global] --edit" - }, { - "title": "blame on certain range", - "tip": "git blame -L ," - }, { - "title": "Show a Git logical variable.", - "tip": "git var -l | " - }, { - "title": "Preformatted patch file.", - "tip": "git format-patch -M upstream..topic" - }, { - "title": "Get the repo name.", - "tip": "git rev-parse --show-toplevel" - }, { - "title": "logs between date range", - "tip": "git log --since='FEB 1 2017' --until='FEB 14 2017'" - }, { - "title": "Exclude author from logs", - "tip": "git log --perl-regexp --author='^((?!excluded-author-regex).*)$'" - }, { - "title": "Generates a summary of pending changes", - "tip": "git request-pull v1.0 https://git.ko.xz/project master:for-linus" - }, { - "title": "List references in a remote repository", - "tip": "git ls-remote git://git.kernel.org/pub/scm/git/git.git" - }, { - "title": "Backup untracked files.", - "tip": "git ls-files --others -i --exclude-standard | xargs zip untracked.zip" - }, { - "title": "List all git aliases", - "tip": "git config -l | grep alias | sed 's/^alias\\.//g'", - "alternatives": ["git config -l | grep alias | cut -d '.' -f 2"] - }, { - "title": "Show git status short", - "tip": "git status --short --branch" - }, - { - "title": "Checkout a commit prior to a day ago", - "tip": "git checkout master@{yesterday}" - }, { - "title": "Push the current branch to the same name on the remote repository", - "tip": "git push origin HEAD" - }, { - "title": "Push a new local branch to remote repository and track", - "tip": "git push -u origin " - }, { - "title": "Change a branch base", - "tip": "git rebase --onto " - }, { - "title": "Use SSH instead of HTTPs for remotes", - "tip": "git config --global url.'git@github.com:'.insteadOf 'https://github.com/'" - }, { - "title": "Update a submodule to the latest commit", - "tip": "cd \ngit pull origin \ncd \ngit add \ngit commit -m \"submodule updated\"" - }, { - "title": "Prevent auto replacing LF with CRLF", - "tip": "git config --global core.autocrlf false" - }, { - "title": "Refresh the list of remote branches", - "tip": "git remote update origin --prune" - } -] +[ + { + "title": "Everyday Git in twenty commands or so", + "tip": "git help everyday", + "category": "Miscellaneous" + }, + { + "title": "Show helpful guides that come with Git", + "tip": "git help -g", + "category": "Log and History" + }, + { + "title": "Search change by content", + "tip": "git log -S''", + "category": "Log and History" + }, + { + "title": "Show changes over time for specific file", + "tip": "git log -p ", + "category": "Log and History" + }, + { + "title": "Remove sensitive data from history, after a push", + "tip": "git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch ' --prune-empty --tag-name-filter cat -- --all && git push origin --force --all", + "category": "Setup and Config" + }, + { + "title": "Sync with remote, overwrite local changes", + "tip": "git fetch origin && git reset --hard origin/master && git clean -f -d", + "category": "Undoing Changes" + }, + { + "title": "List of all files till a commit", + "tip": "git ls-tree --name-only -r ", + "category": "Basic Operations" + }, + { + "title": "Git reset first commit", + "tip": "git update-ref -d HEAD", + "category": "Undoing Changes" + }, + { + "title": "Reset: preserve uncommitted local changes", + "tip": "git reset --keep ", + "category": "Undoing Changes" + }, + { + "title": "List all the conflicted files", + "tip": "git diff --name-only --diff-filter=U", + "category": "Log and History" + }, + { + "title": "List of all files changed in a commit", + "tip": "git diff-tree --no-commit-id --name-only -r ", + "category": "Log and History" + }, + { + "title": "Unstaged changes since last commit", + "tip": "git diff", + "category": "Log and History" + }, + { + "title": "Changes staged for commit", + "tip": "git diff --cached", + "alternatives": [ + "git diff --staged" + ], + "category": "Log and History" + }, + { + "title": "Show both staged and unstaged changes", + "tip": "git diff HEAD", + "category": "Log and History" + }, + { + "title": "List all branches that are already merged into master", + "tip": "git branch --merged master", + "category": "Branching" + }, + { + "title": "Quickly switch to the previous branch", + "tip": "git checkout -", + "alternatives": [ + "git checkout @{-1}" + ], + "category": "Basic Operations" + }, + { + "title": "Remove branches that have already been merged with master", + "tip": "git branch --merged master | grep -v '^\\*' | xargs -n 1 git branch -d", + "alternatives": [ + "git branch --merged master | grep -v '^\\*\\| master' | xargs -n 1 git branch -d # will not delete master if master is not checked out" + ], + "category": "Branching" + }, + { + "title": "List all branches and their upstreams, as well as last commit on branch", + "tip": "git branch -vv", + "category": "Branching" + }, + { + "title": "Track upstream branch", + "tip": "git branch -u origin/mybranch", + "category": "Branching" + }, + { + "title": "Delete local branch", + "tip": "git branch -d ", + "category": "Branching" + }, + { + "title": "Delete remote branch", + "tip": "git push origin --delete ", + "alternatives": [ + "git push origin :", + "git branch -dr " + ], + "category": "Basic Operations" + }, + { + "title": "Create local tag", + "tip": "git tag ", + "category": "Tagging" + }, + { + "title": "Delete local tag", + "tip": "git tag -d ", + "category": "Tagging" + }, + { + "title": "Delete remote tag", + "tip": "git push origin :refs/tags/", + "category": "Basic Operations" + }, + { + "title": "Undo local changes with the content in index(staging)", + "tip": "git checkout -- ", + "category": "Basic Operations" + }, + { + "title": "Revert: Undo a commit by creating a new commit", + "tip": "git revert ", + "category": "Undoing Changes" + }, + { + "title": "Reset: Discard commits, advised for private branch", + "tip": "git reset ", + "category": "Undoing Changes" + }, + { + "title": "Reword the previous commit message", + "tip": "git commit -v --amend", + "category": "Basic Operations" + }, + { + "title": "See commit history for just the current branch", + "tip": "git cherry -v master", + "category": "Basic Operations" + }, + { + "title": "Amend author.", + "tip": "git commit --amend --author='Author Name '", + "category": "Basic Operations" + }, + { + "title": "Reset author, after author has been changed in the global config.", + "tip": "git commit --amend --reset-author --no-edit", + "category": "Setup and Config" + }, + { + "title": "Changing a remote's URL", + "tip": "git remote set-url origin ", + "category": "Remotes" + }, + { + "title": "Get list of all remote references", + "tip": "git remote", + "alternatives": [ + "git remote show" + ], + "category": "Remotes" + }, + { + "title": "Get list of all local and remote branches", + "tip": "git branch -a", + "category": "Branching" + }, + { + "title": "Get only remote branches", + "tip": "git branch -r", + "category": "Branching" + }, + { + "title": "Stage parts of a changed file, instead of the entire file", + "tip": "git add -p", + "category": "Basic Operations" + }, + { + "title": "Get git bash completion", + "tip": "curl -L http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc", + "category": "Setup and Config" + }, + { + "title": "What changed since two weeks?", + "tip": "git log --no-merges --raw --since='2 weeks ago'", + "alternatives": [ + "git whatchanged --since='2 weeks ago'" + ], + "category": "Log and History" + }, + { + "title": "See all commits made since forking from master", + "tip": "git log --no-merges --stat --reverse master..", + "category": "Log and History" + }, + { + "title": "Pick commits across branches using cherry-pick", + "tip": "git checkout && git cherry-pick ", + "category": "Basic Operations" + }, + { + "title": "Find out branches containing commit-hash", + "tip": "git branch -a --contains ", + "alternatives": [ + "git branch --contains " + ], + "category": "Branching" + }, + { + "title": "Git Aliases", + "tip": "git config --global alias. \ngit config --global alias.st status", + "category": "Setup and Config" + }, + { + "title": "Saving current state of tracked files without committing", + "tip": "git stash", + "alternatives": [ + "git stash push" + ], + "category": "Stashing" + }, + { + "title": "Saving current state of unstaged changes to tracked files", + "tip": "git stash -k", + "alternatives": [ + "git stash --keep-index", + "git stash push --keep-index" + ], + "category": "Stashing" + }, + { + "title": "Saving current state including untracked files", + "tip": "git stash -u", + "alternatives": [ + "git stash push -u", + "git stash push --include-untracked" + ], + "category": "Stashing" + }, + { + "title": "Saving current state with message", + "tip": "git stash push -m ", + "alternatives": [ + "git stash push --message " + ], + "category": "Stashing" + }, + { + "title": "Saving current state of all files (ignored, untracked, and tracked)", + "tip": "git stash -a", + "alternatives": [ + "git stash --all", + "git stash push --all" + ], + "category": "Stashing" + }, + { + "title": "Show list of all saved stashes", + "tip": "git stash list", + "category": "Stashing" + }, + { + "title": "Show the contents of any stash in patch form", + "tip": "git stash show -p ", + "category": "Stashing" + }, + { + "title": "Apply any stash without deleting from the stashed list", + "tip": "git stash apply ", + "category": "Stashing" + }, + { + "title": "Apply last stashed state and delete it from stashed list", + "tip": "git stash pop", + "alternatives": [ + "git stash apply stash@{0} && git stash drop stash@{0}" + ], + "category": "Stashing" + }, + { + "title": "Delete all stored stashes", + "tip": "git stash clear", + "alternatives": [ + "git stash drop " + ], + "category": "Stashing" + }, + { + "title": "Grab a single file from a stash", + "tip": "git checkout -- ", + "alternatives": [ + "git checkout stash@{0} -- " + ], + "category": "Basic Operations" + }, + { + "title": "Show all tracked files", + "tip": "git ls-files -t", + "category": "Log and History" + }, + { + "title": "Show all untracked files", + "tip": "git ls-files --others", + "category": "Log and History" + }, + { + "title": "Show all ignored files", + "tip": "git ls-files --others -i --exclude-standard", + "category": "Log and History" + }, + { + "title": "Create new working tree from a repository (git 2.5)", + "tip": "git worktree add -b ", + "category": "Basic Operations" + }, + { + "title": "Create new working tree from HEAD state", + "tip": "git worktree add --detach HEAD", + "category": "Basic Operations" + }, + { + "title": "Untrack files without deleting", + "tip": "git rm --cached ", + "alternatives": [ + "git rm --cached -r " + ], + "category": "Miscellaneous" + }, + { + "title": "Before deleting untracked files/directory, do a dry run to get the list of these files/directories", + "tip": "git clean -n", + "category": "Undoing Changes" + }, + { + "title": "Forcefully remove untracked files", + "tip": "git clean -f", + "category": "Undoing Changes" + }, + { + "title": "Forcefully remove untracked directory", + "tip": "git clean -f -d", + "category": "Undoing Changes" + }, + { + "title": "Update all the submodules", + "tip": "git submodule foreach git pull", + "alternatives": [ + "git submodule update --init --recursive", + "git submodule update --remote" + ], + "category": "Submodules and Subtrees" + }, + { + "title": "Show all commits in the current branch yet to be merged to master", + "tip": "git cherry -v master", + "alternatives": [ + "git cherry -v master " + ], + "category": "Basic Operations" + }, + { + "title": "Rename a branch", + "tip": "git branch -m ", + "alternatives": [ + "git branch -m [] " + ], + "category": "Branching" + }, + { + "title": "Rebases 'feature' to 'master' and merges it in to master ", + "tip": "git rebase master feature && git checkout master && git merge -", + "category": "Merging and Rebasing" + }, + { + "title": "Archive the `master` branch", + "tip": "git archive master --format=zip --output=master.zip", + "category": "Branching" + }, + { + "title": "Modify previous commit without modifying the commit message", + "tip": "git add --all && git commit --amend --no-edit", + "category": "Basic Operations" + }, + { + "title": "Prunes references to remove branches that have been deleted in the remote.", + "tip": "git fetch -p", + "alternatives": [ + "git remote prune origin" + ], + "category": "Basic Operations" + }, + { + "title": "Delete local branches that has been squash and merged in the remote.", + "tip": "git branch -vv | grep ': gone]' | awk '{print $1}' | xargs git branch -D", + "category": "Branching" + }, + { + "title": "Retrieve the commit hash of the initial revision.", + "tip": " git rev-list --reverse HEAD | head -1", + "alternatives": [ + "git rev-list --max-parents=0 HEAD", + "git log --pretty=oneline | tail -1 | cut -c 1-40", + "git log --pretty=oneline --reverse | head -1 | cut -c 1-40" + ], + "category": "Basic Operations" + }, + { + "title": "Visualize the version tree.", + "tip": "git log --pretty=oneline --graph --decorate --all", + "alternatives": [ + "gitk --all", + "git log --graph --pretty=format:'%C(auto) %h | %s | %an | %ar%d'" + ], + "category": "Log and History" + }, + { + "title": "Visualize the tree including commits that are only referenced from reflogs", + "tip": "git log --graph --decorate --oneline $(git rev-list --walk-reflogs --all)", + "category": "Log and History" + }, + { + "title": "Deploying git tracked subfolder to gh-pages", + "tip": "git subtree push --prefix subfolder_name origin gh-pages", + "alternatives": "git subtree push --prefix subfolder_name origin branch_name", + "category": "Submodules and Subtrees" + }, + { + "title": "Adding a project to repo using subtree", + "tip": "git subtree add --prefix=/ --squash git@github.com:/.git master", + "category": "Submodules and Subtrees" + }, + { + "title": "Get latest changes in your repo for a linked project using subtree", + "tip": "git subtree pull --prefix=/ --squash git@github.com:/.git master", + "category": "Submodules and Subtrees" + }, + { + "title": "Export a branch with history to a file.", + "tip": "git bundle create ", + "category": "Branching" + }, + { + "title": "Import from a bundle", + "tip": "git clone repo.bundle -b ", + "category": "Basic Operations" + }, + { + "title": "Get the name of current branch.", + "tip": "git rev-parse --abbrev-ref HEAD", + "category": "Branching" + }, + { + "title": "Ignore one file on commit (e.g. Changelog).", + "tip": "git update-index --assume-unchanged Changelog; git commit -a; git update-index --no-assume-unchanged Changelog", + "category": "Basic Operations" + }, + { + "title": "Stash changes before rebasing", + "tip": "git rebase --autostash", + "category": "Merging and Rebasing" + }, + { + "title": "Fetch pull request by ID to a local branch", + "tip": "git fetch origin pull//head:", + "alternatives": [ + "git pull origin pull//head:" + ], + "category": "Basic Operations" + }, + { + "title": "Show the most recent tag on the current branch.", + "tip": "git describe --tags --abbrev=0", + "category": "Branching" + }, + { + "title": "Show inline word diff.", + "tip": "git diff --word-diff", + "category": "Log and History" + }, + { + "title": "Show changes using common diff tools.", + "tip": "git difftool [-t ] ", + "category": "Log and History" + }, + { + "title": "Don\u2019t consider changes for tracked file.", + "tip": "git update-index --assume-unchanged ", + "category": "Miscellaneous" + }, + { + "title": "Undo assume-unchanged.", + "tip": "git update-index --no-assume-unchanged ", + "category": "Undoing Changes" + }, + { + "title": "Clean the files from `.gitignore`.", + "tip": "git clean -X -f", + "category": "Undoing Changes" + }, + { + "title": "Restore deleted file.", + "tip": "git checkout -- ", + "category": "Basic Operations" + }, + { + "title": "Restore file to a specific commit-hash", + "tip": "git checkout -- ", + "category": "Basic Operations" + }, + { + "title": "Always rebase instead of merge on pull.", + "tip": "git config --global pull.rebase true", + "alternatives": [ + "#git < 1.7.9\ngit config --global branch.autosetuprebase always" + ], + "category": "Setup and Config" + }, + { + "title": "List all the alias and configs.", + "tip": "git config --list", + "category": "Setup and Config" + }, + { + "title": "Make git case sensitive.", + "tip": "git config --global core.ignorecase false", + "category": "Setup and Config" + }, + { + "title": "Add custom editors.", + "tip": "git config --global core.editor '$EDITOR'", + "category": "Setup and Config" + }, + { + "title": "Auto correct typos.", + "tip": "git config --global help.autocorrect 1", + "category": "Setup and Config" + }, + { + "title": "Check if the change was a part of a release.", + "tip": "git name-rev --name-only ", + "category": "Miscellaneous" + }, + { + "title": "Dry run. (any command that supports dry-run flag should do.)", + "tip": "git clean -fd --dry-run", + "category": "Undoing Changes" + }, + { + "title": "Marks your commit as a fix of a previous commit.", + "tip": "git commit --fixup ", + "category": "Basic Operations" + }, + { + "title": "Squash fixup commits normal commits.", + "tip": "git rebase -i --autosquash", + "category": "Merging and Rebasing" + }, + { + "title": "Skip staging area during commit.", + "tip": "git commit --only ", + "category": "Basic Operations" + }, + { + "title": "Interactive staging.", + "tip": "git add -i", + "category": "Basic Operations" + }, + { + "title": "List ignored files.", + "tip": "git check-ignore *", + "category": "Miscellaneous" + }, + { + "title": "Status of ignored files.", + "tip": "git status --ignored", + "category": "Basic Operations" + }, + { + "title": "Commits in Branch1 that are not in Branch2", + "tip": "git log Branch1 ^Branch2", + "category": "Log and History" + }, + { + "title": "List n last commits", + "tip": "git log -", + "alternatives": [ + "git log -n " + ], + "category": "Log and History" + }, + { + "title": "Reuse recorded resolution, record and reuse previous conflicts resolutions.", + "tip": "git config --global rerere.enabled 1", + "category": "Setup and Config" + }, + { + "title": "Open all conflicted files in an editor.", + "tip": "git diff --name-only | uniq | xargs $EDITOR", + "category": "Log and History" + }, + { + "title": "Count unpacked number of objects and their disk consumption.", + "tip": "git count-objects --human-readable", + "category": "Miscellaneous" + }, + { + "title": "Prune all unreachable objects from the object database.", + "tip": "git gc --prune=now --aggressive", + "category": "Miscellaneous" + }, + { + "title": "Instantly browse your working repository in gitweb.", + "tip": "git instaweb [--local] [--httpd=] [--port=] [--browser=]", + "category": "Miscellaneous" + }, + { + "title": "View the GPG signatures in the commit log", + "tip": "git log --show-signature", + "category": "Log and History" + }, + { + "title": "Remove entry in the global config.", + "tip": "git config --global --unset ", + "category": "Setup and Config" + }, + { + "title": "Checkout a new branch without any history", + "tip": "git checkout --orphan ", + "category": "Basic Operations" + }, + { + "title": "Extract file from another branch.", + "tip": "git show :", + "category": "Log and History" + }, + { + "title": "List only the root and merge commits.", + "tip": "git log --first-parent", + "category": "Log and History" + }, + { + "title": "Change previous two commits with an interactive rebase.", + "tip": "git rebase --interactive HEAD~2", + "category": "Merging and Rebasing" + }, + { + "title": "List all branch is WIP", + "tip": "git checkout master && git branch --no-merged", + "category": "Branching" + }, + { + "title": "Find guilty with binary search", + "tip": "git bisect start # Search start \ngit bisect bad # Set point to bad commit \ngit bisect good v2.6.13-rc2 # Set point to good commit|tag \ngit bisect bad # Say current state is bad \ngit bisect good # Say current state is good \ngit bisect reset # Finish search \n", + "category": "Basic Operations" + }, + { + "title": "Bypass pre-commit and commit-msg githooks", + "tip": "git commit --no-verify", + "category": "Basic Operations" + }, + { + "title": "List commits and changes to a specific file (even through renaming)", + "tip": "git log --follow -p -- ", + "category": "Log and History" + }, + { + "title": "Clone a single branch", + "tip": "git clone -b --single-branch https://github.com/user/repo.git", + "category": "Basic Operations" + }, + { + "title": "Create and switch new branch", + "tip": "git checkout -b ", + "alternatives": [ + "git branch && git checkout ", + "git switch -c " + ], + "category": "Basic Operations" + }, + { + "title": "Ignore file mode changes on commits", + "tip": "git config core.fileMode false", + "category": "Setup and Config" + }, + { + "title": "Turn off git colored terminal output", + "tip": "git config --global color.ui false", + "category": "Setup and Config" + }, + { + "title": "Specific color settings", + "tip": "git config --global ", + "category": "Setup and Config" + }, + { + "title": "Show all local branches ordered by recent commits", + "tip": "git for-each-ref --sort=-committerdate --format='%(refname:short)' refs/heads/", + "category": "Basic Operations" + }, + { + "title": "Find lines matching the pattern (regex or string) in tracked files", + "tip": "git grep --heading --line-number 'foo bar'", + "category": "Miscellaneous" + }, + { + "title": "Clone a shallow copy of a repository", + "tip": "git clone https://github.com/user/repo.git --depth 1", + "category": "Basic Operations" + }, + { + "title": "Search Commit log across all branches for given text", + "tip": "git log --all --grep=''", + "category": "Log and History" + }, + { + "title": "Get first commit in a branch (from master)", + "tip": "git log --oneline master.. | tail -1", + "alternatives": [ + "git log --reverse master.. | head -6" + ], + "category": "Log and History" + }, + { + "title": "Unstaging Staged file", + "tip": "git reset HEAD ", + "category": "Undoing Changes" + }, + { + "title": "Force push to Remote Repository", + "tip": "git push -f ", + "category": "Basic Operations" + }, + { + "title": "Adding Remote name", + "tip": "git remote add ", + "category": "Remotes" + }, + { + "title": "List all currently configured remotes", + "tip": "git remote -v", + "category": "Remotes" + }, + { + "title": "Show the author, time and last revision made to each line of a given file", + "tip": "git blame ", + "category": "Log and History" + }, + { + "title": "Group commits by authors and title", + "tip": "git shortlog", + "category": "Basic Operations" + }, + { + "title": "Forced push but still ensure you don't overwrite other's work", + "tip": "git push --force-with-lease ", + "category": "Basic Operations" + }, + { + "title": "Show how many lines does an author contribute", + "tip": "git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | gawk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf \"added lines: %s removed lines: %s total lines: %s\n\", add, subs, loc }' -", + "alternatives": [ + "git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf \"added lines: %s, removed lines: %s, total lines: %s\n\", add, subs, loc }' - # on Mac OSX" + ], + "category": "Log and History" + }, + { + "title": "Revert: Reverting an entire merge", + "tip": "git revert -m 1 ", + "category": "Undoing Changes" + }, + { + "title": "Number of commits in a branch", + "tip": "git rev-list --count ", + "category": "Basic Operations" + }, + { + "title": "Alias: git undo", + "tip": "git config --global alias.undo '!f() { git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; }; f'", + "category": "Setup and Config" + }, + { + "title": "Add object notes", + "tip": "git notes add -m 'Note on the previous commit....'", + "category": "Basic Operations" + }, + { + "title": "Show all the git-notes", + "tip": "git log --show-notes='*'", + "category": "Log and History" + }, + { + "title": "Apply commit from another repository", + "tip": "git --git-dir=/.git format-patch -k -1 --stdout | git am -3 -k", + "category": "Basic Operations" + }, + { + "title": "Specific fetch reference", + "tip": "git fetch origin master:refs/remotes/origin/mymaster", + "category": "Basic Operations" + }, + { + "title": "Find common ancestor of two branches", + "tip": "git merge-base ", + "category": "Merging and Rebasing" + }, + { + "title": "List unpushed git commits", + "tip": "git log --branches --not --remotes", + "alternatives": [ + "git log @{u}..", + "git cherry -v" + ], + "category": "Log and History" + }, + { + "title": "Add everything, but whitespace changes", + "tip": "git diff --ignore-all-space | git apply --cached", + "category": "Log and History" + }, + { + "title": "Edit [local/global] git config", + "tip": "git config [--global] --edit", + "category": "Setup and Config" + }, + { + "title": "blame on certain range", + "tip": "git blame -L ,", + "category": "Log and History" + }, + { + "title": "Show a Git logical variable.", + "tip": "git var -l | ", + "category": "Log and History" + }, + { + "title": "Preformatted patch file.", + "tip": "git format-patch -M upstream..topic", + "category": "Branching" + }, + { + "title": "Get the repo name.", + "tip": "git rev-parse --show-toplevel", + "category": "Log and History" + }, + { + "title": "logs between date range", + "tip": "git log --since='FEB 1 2017' --until='FEB 14 2017'", + "category": "Log and History" + }, + { + "title": "Exclude author from logs", + "tip": "git log --perl-regexp --author='^((?!excluded-author-regex).*)$'", + "category": "Log and History" + }, + { + "title": "Generates a summary of pending changes", + "tip": "git request-pull v1.0 https://git.ko.xz/project master:for-linus", + "category": "Basic Operations" + }, + { + "title": "List references in a remote repository", + "tip": "git ls-remote git://git.kernel.org/pub/scm/git/git.git", + "category": "Remotes" + }, + { + "title": "Backup untracked files.", + "tip": "git ls-files --others -i --exclude-standard | xargs zip untracked.zip", + "category": "Miscellaneous" + }, + { + "title": "List all git aliases", + "tip": "git config -l | grep alias | sed 's/^alias\\.//g'", + "alternatives": [ + "git config -l | grep alias | cut -d '.' -f 2" + ], + "category": "Setup and Config" + }, + { + "title": "Show git status short", + "tip": "git status --short --branch", + "category": "Basic Operations" + }, + { + "title": "Checkout a commit prior to a day ago", + "tip": "git checkout master@{yesterday}", + "category": "Basic Operations" + }, + { + "title": "Push the current branch to the same name on the remote repository", + "tip": "git push origin HEAD", + "category": "Basic Operations" + }, + { + "title": "Push a new local branch to remote repository and track", + "tip": "git push -u origin ", + "category": "Basic Operations" + }, + { + "title": "Change a branch base", + "tip": "git rebase --onto ", + "category": "Merging and Rebasing" + }, + { + "title": "Use SSH instead of HTTPs for remotes", + "tip": "git config --global url.'git@github.com:'.insteadOf 'https://github.com/'", + "category": "Setup and Config" + }, + { + "title": "Update a submodule to the latest commit", + "tip": "cd \ngit pull origin \ncd \ngit add \ngit commit -m \"submodule updated\"", + "category": "Basic Operations" + }, + { + "title": "Prevent auto replacing LF with CRLF", + "tip": "git config --global core.autocrlf false", + "category": "Setup and Config" + }, + { + "title": "Refresh the list of remote branches", + "tip": "git remote update origin --prune", + "category": "Remotes" + }, + { + "title": "View expanded details of changes in last commit", + "tip": "git show", + "category": "Log and History" + }, + { + "title": "Send a collection of patches as emails", + "tip": "git send-email [] \u2026\n\ngit send-email [] ", + "category": "Miscellaneous" + }, + { + "title": "Edit config for each level", + "tip": "git config --edit --system\n\ngit config --edit --global\n\ngit config --edit --local", + "category": "Setup and Config" + }, + { + "title": "Visualize each position of HEAD in the last 30 days", + "tip": "git reflog", + "category": "Log and History" + }, + { + "title": "Duplicating a repository", + "tip": "git clone --bare https://github.com/exampleuser/old-repository.git\n\ngit push --mirror https://github.com/exampleuser/new-repository.git", + "category": "Basic Operations" + }, + { + "title": "Switch to a branch (modern alternative to checkout)", + "tip": "git switch ", + "alternatives": [ + "git switch -c " + ], + "category": "Branching" + }, + { + "title": "Restore file (modern alternative to reset/checkout --)", + "tip": "git restore ", + "alternatives": [ + "git restore --staged " + ], + "category": "Undoing Changes" + } +] \ No newline at end of file From 56b1fe051ee00bcab3175597db7c807e0f7d77db Mon Sep 17 00:00:00 2001 From: hemanth Date: Mon, 9 Mar 2026 11:51:23 -0700 Subject: [PATCH 098/108] chore: setup HonKit for docs and GitHub Actions deployment --- .github/workflows/deploy-docs.yml | 30 + .gitignore | 1 + book.json | 6 + package-lock.json | 3345 +++++++++++++++++++++++++++-- package.json | 6 +- 5 files changed, 3208 insertions(+), 180 deletions(-) create mode 100644 .github/workflows/deploy-docs.yml create mode 100644 book.json diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml new file mode 100644 index 0000000..3a74206 --- /dev/null +++ b/.github/workflows/deploy-docs.yml @@ -0,0 +1,30 @@ +name: Deploy GitBook + +on: + push: + branches: + - master + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v3 + + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: 18 + + - name: Install Dependencies + run: npm ci + + - name: Build Docs + run: npm run docs:build + + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./docs/_book diff --git a/.gitignore b/.gitignore index 67d713f..b848f5c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .idea node_modules npm-debug.log +docs/_book diff --git a/book.json b/book.json new file mode 100644 index 0000000..aba26bb --- /dev/null +++ b/book.json @@ -0,0 +1,6 @@ +{ + "title": "Git Tips", + "author": "hemanth", + "description": "Collection of most commonly used git tips and tricks.", + "root": "./docs" +} diff --git a/package-lock.json b/package-lock.json index ec93f7f..ff88ee0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,301 +1,3290 @@ { "name": "tips", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 3, "requires": true, - "dependencies": { - "101": { + "packages": { + "": { + "name": "tips", + "version": "1.0.0", + "license": "MIT", + "devDependencies": { + "doxie": "^0.2.2", + "doxie.append": "^0.1.0", + "doxie.inject": "^0.1.1", + "doxie.output": "^0.3.0", + "doxie.render": "^0.3.0", + "honkit": "^6.1.6", + "husky": "^5.0.9" + } + }, + "node_modules/@asciidoctor/cli": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@asciidoctor/cli/-/cli-3.5.0.tgz", + "integrity": "sha512-/VMHXcZBnZ9vgWfmqk9Hu0x0gMjPLup0YGq/xA8qCQuk11kUIZNMVQwgSsIUzOEwJqIUD7CgncJdtfwv1Ndxuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "yargs": "16.2.0" + }, + "bin": { + "asciidoctor": "bin/asciidoctor", + "asciidoctorjs": "bin/asciidoctor" + }, + "engines": { + "node": ">=8.11", + "npm": ">=5.0.0" + }, + "peerDependencies": { + "@asciidoctor/core": "^2.0.0-rc.1" + } + }, + "node_modules/@asciidoctor/core": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/@asciidoctor/core/-/core-2.2.8.tgz", + "integrity": "sha512-oozXk7ZO1RAd/KLFLkKOhqTcG4GO3CV44WwOFg2gMcCsqCUTarvMT7xERIoWW2WurKbB0/ce+98r01p8xPOlBw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "asciidoctor-opal-runtime": "0.3.3", + "unxhr": "1.0.1" + }, + "engines": { + "node": ">=8.11", + "npm": ">=5.0.0", + "yarn": ">=1.1.0" + } + }, + "node_modules/@honkit/asciidoc": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/@honkit/asciidoc/-/asciidoc-6.1.6.tgz", + "integrity": "sha512-/Oy+noEYyL+yLBLia/vAu7+6XYa00M5ZoE9oqRYVsZOWDd6RLcuBhLC4EfKFZk5HqJ/f4Om09lvJgXbIXY23mg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@honkit/html": "6.1.6", + "asciidoctor": "^2.2.8" + } + }, + "node_modules/@honkit/honkit-plugin-fontsettings": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/@honkit/honkit-plugin-fontsettings/-/honkit-plugin-fontsettings-6.1.6.tgz", + "integrity": "sha512-NExKrTqleTffMDqrdcb268hgQkScVjK9N+bDIxQ63dYmNhtuJ7EcLjijfkOtcS7DEnrR8S5lSjJoVC5oxPzxaQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "gitbook": ">=2.4.0" + } + }, + "node_modules/@honkit/honkit-plugin-highlight": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/@honkit/honkit-plugin-highlight/-/honkit-plugin-highlight-6.1.6.tgz", + "integrity": "sha512-i6JlFWaMNKBAfU7WH+kA0gNa5c2gJABPO4UOd0vlOupEqwT4cvRLWcDBp+oAge6aCiTpsyrt8sGnavcpg0kubA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "highlight.js": "^11.10.0" + }, + "engines": { + "gitbook": ">=2.4.0" + } + }, + "node_modules/@honkit/honkit-plugin-theme-default": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/@honkit/honkit-plugin-theme-default/-/honkit-plugin-theme-default-6.1.6.tgz", + "integrity": "sha512-AhLEEY0aBTgo4MlGcrW/Rlh/lkdsJdI8oqFV5pU+mSAuHi0Yf49EcU+OkzW8ImWvjIZxjjYN3TJD4Agmpqos+Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "gitbook": ">=3.0.0" + } + }, + "node_modules/@honkit/html": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/@honkit/html/-/html-6.1.6.tgz", + "integrity": "sha512-WtWroTzNdx25S3C3zqyWXh0wLCtkFK+uACHUCGrJxijOns0ivlrOk/QcoF+59EfFMCD9N64VQMs18IduDuF+/Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "cheerio": "^1.0.0", + "lodash": "^4.17.23" + } + }, + "node_modules/@honkit/markdown-legacy": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/@honkit/markdown-legacy/-/markdown-legacy-6.1.6.tgz", + "integrity": "sha512-AgMlVqkwLgbOf7B6mRc0vLRSklYxWovX2GPcKYMcPjkGlB5pMTd76Arb1JEifRdhmRLs5SmZ0Te+TME+Xpb/jw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@honkit/html": "6.1.6", + "kramed": "0.5.6", + "lodash": "^4.17.23" + } + }, + "node_modules/1-liners": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/1-liners/-/1-liners-0.3.6.tgz", + "integrity": "sha1-SDD+eLdTejaZ+IpdQqjtwa9mB/8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/101": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/101/-/101-1.6.3.tgz", "integrity": "sha512-4dmQ45yY0Dx24Qxp+zAsNLlMF6tteCyfVzgbulvSyC7tCyd3V8sW76sS0tHq8NpcbXfWTKasfyfzU1Kd86oKzw==", "dev": true, - "requires": { + "dependencies": { "clone": "^1.0.2", "deep-eql": "^0.1.3", "keypather": "^1.10.2" } }, - "1-liners": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/1-liners/-/1-liners-0.3.6.tgz", - "integrity": "sha1-SDD+eLdTejaZ+IpdQqjtwa9mB/8=", - "dev": true + "node_modules/a-sync-waterfall": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", + "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==", + "dev": true, + "license": "MIT" + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "ansi-regex": { + "node_modules/ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "ansi-styles": { + "node_modules/ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } }, - "array-find": { + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-difference": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-difference/-/array-difference-0.0.1.tgz", + "integrity": "sha512-LMXXDKmRSsO+d7N73LyTBWlT+GiLfNUCWeeWmZivzJ1NxSPOobS+w8bIAAfGEV35oVBsk9u9cXii8dDceU5NPw==", + "dev": true, + "license": "MIT Expat" + }, + "node_modules/array-find": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", "dev": true }, - "base64-js": { + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true, + "license": "MIT" + }, + "node_modules/asciidoctor": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/asciidoctor/-/asciidoctor-2.2.8.tgz", + "integrity": "sha512-G+sDYWnNo+QHRkIvN5k7ASbvrd2bHuNXHlZ83+PjVFYtl0//as5iebq+Bdf3aSwXrkM7akcEJPUpdTjjP0MgYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asciidoctor/cli": "3.5.0", + "@asciidoctor/core": "2.2.8" + }, + "bin": { + "asciidoctor": "bin/asciidoctor", + "asciidoctorjs": "bin/asciidoctor" + }, + "engines": { + "node": ">=8.11", + "npm": ">=5.0.0", + "yarn": ">=1.1.0" + } + }, + "node_modules/asciidoctor-opal-runtime": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/asciidoctor-opal-runtime/-/asciidoctor-opal-runtime-0.3.3.tgz", + "integrity": "sha512-/CEVNiOia8E5BMO9FLooo+Kv18K4+4JBFRJp8vUy/N5dMRAg+fRNV4HA+o6aoSC79jVU/aT5XvUpxSxSsTS8FQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "7.1.3", + "unxhr": "1.0.1" + }, + "engines": { + "node": ">=8.11" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-js": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.2.tgz", "integrity": "sha1-Ak8Pcq+iW3X5wO5zzU9V7Bvtl4Q=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/bash-color": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/bash-color/-/bash-color-0.0.4.tgz", + "integrity": "sha512-ZNB4525U7BxT6v9C8LEtywyCgB4Pjnm7/bh+ru/Z9Ecxvg3fDjaJ6z305z9a61orQdbB1zqYHh5JbUqx4s4K0g==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "bops": { + "node_modules/body": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", + "integrity": "sha512-chUsBxGRtuElD6fmw1gHLpvnKdVLK302peeFa9ZqAEk8TyzZ3fygLyUEDDPTJvL9+Bor0dIwn6ePOsRM2y0zQQ==", + "dev": true, + "dependencies": { + "continuable-cache": "^0.3.1", + "error": "^7.0.0", + "raw-body": "~1.1.0", + "safe-json-parse": "~1.0.1" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/bops": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/bops/-/bops-0.0.6.tgz", "integrity": "sha1-CC0dVfoB5g29wuvC26N/ZZVUzzo=", "dev": true, - "requires": { + "dependencies": { "base64-js": "0.0.2", "to-utf8": "0.0.1" } }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, - "concat-stream": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.2.1.tgz", - "integrity": "sha1-81EAtsRjeL+6i2uA+fDQzN8T3GA=", + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, - "requires": { - "bops": "0.0.6" + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" } }, - "deep-eql": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", - "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, - "requires": { - "type-detect": "0.1.1" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "defined": { + "node_modules/buffer/node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bytes": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", + "integrity": "sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==", "dev": true }, - "doxie": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/doxie/-/doxie-0.2.4.tgz", - "integrity": "sha1-KZltv1dg/OdNvLTXnGAjHYoXu4U=", + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "dev": true, - "requires": { - "1-liners": "^0.3.2", - "chalk": "^1.0.0", - "doxie-core": "^0.3.1", - "stream-to-json": "^0.0.1", - "tiny-error": "^0.2.1" + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" } }, - "doxie-core": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/doxie-core/-/doxie-core-0.3.1.tgz", - "integrity": "sha1-PS+RQ+WF45Cpgwjcnk7zjxPPQss=", + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "dev": true, - "requires": { - "1-liners": "^0.3.0", - "chalk": "^1.0.0", - "tiny-error": "^0.2.1" + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "doxie.append": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/doxie.append/-/doxie.append-0.1.0.tgz", - "integrity": "sha1-yHRoUEL18wlKTQwzNsPklMNpdOE=", + "node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, - "requires": { - "object-assign": "^3.0.0" + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cheerio": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.2.0.tgz", + "integrity": "sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==", + "dev": true, + "license": "MIT", "dependencies": { - "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true - } + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "encoding-sniffer": "^0.2.1", + "htmlparser2": "^10.1.0", + "parse5": "^7.3.0", + "parse5-htmlparser2-tree-adapter": "^7.1.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^7.19.0", + "whatwg-mimetype": "^4.0.0" + }, + "engines": { + "node": ">=20.18.1" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" } }, - "doxie.inject": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/doxie.inject/-/doxie.inject-0.1.1.tgz", - "integrity": "sha1-/QNYT4segOZEtcuUdpr+RH94oEc=", + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", "dev": true, - "requires": { - "1-liners": "^0.3.2", - "array-find": "^1.0.0", - "chalk": "^1.0.0", - "defined": "^1.0.0", - "object-assign": "^3.0.0", - "tiny-error": "^0.2.1" + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cheerio/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", "dependencies": { - "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true - } + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "doxie.output": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/doxie.output/-/doxie.output-0.3.0.tgz", - "integrity": "sha1-4H4Stn2qX8KLPsZn0HAv1ziZitE=", + "node_modules/cheerio/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, - "requires": { - "1-liners": "^0.3.0", - "object-assign": "^3.0.0" + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" }, - "dependencies": { - "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true - } + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "doxie.render": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/doxie.render/-/doxie.render-0.3.2.tgz", - "integrity": "sha1-Mva37g88NSSokT08grn6uqoKGPA=", + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "requires": { - "1-liners": "^0.3.1", - "chalk": "^1.0.0", - "object-assign": "^3.0.0", - "tiny-error": "^0.2.1" + "license": "MIT", + "peer": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "license": "ISC", "dependencies": { - "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true - } + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "requires": { - "ansi-regex": "^2.0.0" + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "husky": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/husky/-/husky-5.2.0.tgz", - "integrity": "sha512-AM8T/auHXRBxlrfPVLKP6jt49GCM2Zz47m8G3FOMsLmTv8Dj/fKVWE0Rh2d4Qrvmy131xEsdQnb3OXRib67PGg==", - "dev": true + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true, + "engines": { + "node": ">=0.8" + } }, - "keypather": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/keypather/-/keypather-1.10.2.tgz", - "integrity": "sha1-4ESWMtSz5RbyHMAUznxWRP3c5hQ=", + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "requires": { - "101": "^1.0.0" + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" }, - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", "dev": true, - "requires": { - "wrappy": "1" + "license": "MIT", + "engines": { + "node": ">= 6" } }, - "stream-to-json": { + "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/stream-to-json/-/stream-to-json-0.0.1.tgz", - "integrity": "sha1-8DDyt47TjkkpPbiFZTarzCZ3FHM=", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true, - "requires": { - "concat-stream": "~1.2.0", - "once": "~1.3.0" - } + "license": "MIT" }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "node_modules/concat-stream": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.2.1.tgz", + "integrity": "sha1-81EAtsRjeL+6i2uA+fDQzN8T3GA=", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "dependencies": { + "bops": "0.0.6" + } + }, + "node_modules/continuable-cache": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", + "integrity": "sha512-TF30kpKhTH8AGCG3dut0rdd/19B7Z+qCnrMoBLpyQu/2drZdNrrpcjPEoJeSVsQM+8KmWG5O56oPDjSSUsuTyA==", + "dev": true + }, + "node_modules/cp": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/cp/-/cp-0.2.0.tgz", + "integrity": "sha512-4ftCvShHjIZG/zzomHyunNpBof3sOFTTmU6s6q9DdqAL/ANqrKV3pr6Z6kVfBI4hjn59DFLImrBqn7GuuMqSZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/cpr": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cpr/-/cpr-3.0.1.tgz", + "integrity": "sha512-Xch4PXQ/KC8lJ+KfJ9JI6eG/nmppLrPPWg5Q+vh65Qr9EjuJEubxh/H/Le1TmCZ7+Xv7iJuNRqapyOFZB+wsxA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "graceful-fs": "^4.1.5", + "minimist": "^1.2.0", + "mkdirp": "~0.5.1", + "rimraf": "^2.5.4" + }, + "bin": { + "cpr": "bin/cpr" + } + }, + "node_modules/cpr/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/crc": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.1.0" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-eql": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", + "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", + "dev": true, + "dependencies": { + "type-detect": "0.1.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/direction": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/direction/-/direction-0.1.5.tgz", + "integrity": "sha512-HceXsAluGbXKCz2qCVbXFUH4Vn4eNMWxY5gzydMFMnS1zKSwvDASqLwcrYLIFDpwuZ63FUAqjDLEP1eicHt8DQ==", + "dev": true, + "license": "MIT", + "bin": { + "direction": "cli.js" + } + }, + "node_modules/dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/domutils/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domutils/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/doxie": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/doxie/-/doxie-0.2.4.tgz", + "integrity": "sha1-KZltv1dg/OdNvLTXnGAjHYoXu4U=", + "dev": true, + "dependencies": { + "1-liners": "^0.3.2", + "chalk": "^1.0.0", + "doxie-core": "^0.3.1", + "stream-to-json": "^0.0.1", + "tiny-error": "^0.2.1" + }, + "bin": { + "doxie": "bin/doxie.js" + } + }, + "node_modules/doxie-core": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/doxie-core/-/doxie-core-0.3.1.tgz", + "integrity": "sha1-PS+RQ+WF45Cpgwjcnk7zjxPPQss=", + "dev": true, + "dependencies": { + "1-liners": "^0.3.0", + "chalk": "^1.0.0", + "tiny-error": "^0.2.1" + } + }, + "node_modules/doxie.append": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/doxie.append/-/doxie.append-0.1.0.tgz", + "integrity": "sha1-yHRoUEL18wlKTQwzNsPklMNpdOE=", + "dev": true, + "dependencies": { + "object-assign": "^3.0.0" + } + }, + "node_modules/doxie.append/node_modules/object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/doxie.inject": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/doxie.inject/-/doxie.inject-0.1.1.tgz", + "integrity": "sha1-/QNYT4segOZEtcuUdpr+RH94oEc=", + "dev": true, + "dependencies": { + "1-liners": "^0.3.2", + "array-find": "^1.0.0", + "chalk": "^1.0.0", + "defined": "^1.0.0", + "object-assign": "^3.0.0", + "tiny-error": "^0.2.1" + } + }, + "node_modules/doxie.inject/node_modules/object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/doxie.output": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/doxie.output/-/doxie.output-0.3.0.tgz", + "integrity": "sha1-4H4Stn2qX8KLPsZn0HAv1ziZitE=", + "dev": true, + "dependencies": { + "1-liners": "^0.3.0", + "object-assign": "^3.0.0" + } + }, + "node_modules/doxie.output/node_modules/object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/doxie.render": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/doxie.render/-/doxie.render-0.3.2.tgz", + "integrity": "sha1-Mva37g88NSSokT08grn6uqoKGPA=", + "dev": true, + "dependencies": { + "1-liners": "^0.3.1", + "chalk": "^1.0.0", + "object-assign": "^3.0.0", + "tiny-error": "^0.2.1" + } + }, + "node_modules/doxie.render/node_modules/object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true, + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding-sniffer": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", + "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + }, + "funding": { + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" + } + }, + "node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/error": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", + "integrity": "sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw==", + "dev": true, + "dependencies": { + "string-template": "~0.2.1", + "xtend": "~4.0.0" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-3.0.0.tgz", + "integrity": "sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true, + "license": "ISC" + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/front-matter": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-2.3.0.tgz", + "integrity": "sha512-+gOIDsGWHVAiWSDfg3vpiHwkOrwO4XNS3YQH5DMmneLEPWzdCAnbSQCtxReF4yPK1nszLvAmLeR2SprnDQDnyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-yaml": "^3.10.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gitbook-plugin-livereload": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/gitbook-plugin-livereload/-/gitbook-plugin-livereload-0.0.1.tgz", + "integrity": "sha512-+5xinicId2ZcbP6jBTFfQBnjz8nhoBgcOuQfKTEM6Yg9fBsmo2mxY6ubrx1b5ozuIMyfDLkSihx97A7+X+EtQQ==", + "dev": true, + "license": "Apache 2", + "engines": { + "gitbook": "*" + } + }, + "node_modules/gitbook-plugin-lunr": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gitbook-plugin-lunr/-/gitbook-plugin-lunr-1.2.0.tgz", + "integrity": "sha512-QBfFLMZmoyOfLzc5aZrlRCkmzb9YcSjzdnyJFiRI/nX+Nd6kK1XyN4DLGnNSMHkRcJchcpWiQ6XGqSqo7e+d+g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "gitbook-plugin-search": "*", + "html-entities": "1.2.0", + "lunr": "0.5.12" + }, + "engines": { + "gitbook": ">=3.0.0-pre.0" + } + }, + "node_modules/gitbook-plugin-search": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/gitbook-plugin-search/-/gitbook-plugin-search-2.2.1.tgz", + "integrity": "sha512-oP9jhaKFUVPo756G9ywuuI43YdkZClSjfpFzNKe/a/Rcn3oVsrAM/PjdQ+dt65KfZVo3iW1LY4WdiZnNqzRP8g==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "gitbook": ">=3.0.0-pre.0" + } + }, + "node_modules/github-slugid": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/github-slugid/-/github-slugid-1.0.1.tgz", + "integrity": "sha512-L5uVRzSM8jyWTgHUtaHwmymZW8S234JrIaOGotPK+0emNz9XsO6qqgw1KiI5YfP1SyBjG0ApNYU0vpb01teM9Q==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/highlight.js": { + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.11.1.tgz", + "integrity": "sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/honkit": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/honkit/-/honkit-6.1.6.tgz", + "integrity": "sha512-Id0sy5fXYlYcUDk8paze0OazsRZhdsdo8HsuhkAxiNvxsG+8iL9qK5gfnYqNr7PGsfqW7g79EEPt9+/BDCMFow==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@honkit/asciidoc": "6.1.6", + "@honkit/honkit-plugin-fontsettings": "6.1.6", + "@honkit/honkit-plugin-highlight": "6.1.6", + "@honkit/honkit-plugin-theme-default": "6.1.6", + "@honkit/html": "6.1.6", + "@honkit/markdown-legacy": "6.1.6", + "bash-color": "^0.0.4", + "cheerio": "^1.0.0", + "chokidar": "^3.6.0", + "commander": "^5.1.0", + "cp": "^0.2.0", + "cpr": "^3.0.1", + "crc": "^3.8.0", + "destroy": "^1.2.0", + "direction": "^0.1.5", + "dom-serializer": "^0.1.1", + "error": "7.0.2", + "escape-html": "^1.0.3", + "escape-string-regexp": "^4.0.0", + "extend": "^3.0.2", + "flat-cache": "^2.0.1", + "front-matter": "^2.3.0", + "gitbook-plugin-livereload": "^0.0.1", + "gitbook-plugin-lunr": "^1.2.0", + "gitbook-plugin-search": "^2.2.1", + "github-slugid": "^1.0.1", + "i18n-t": "^1.0.1", + "ignore": "^5.3.2", + "immutable": "^3.8.2", + "is": "^3.3.0", + "js-yaml": "^3.14.1", + "json-schema-defaults": "^0.1.1", + "jsonschema": "1.1.0", + "juice": "^8.1.0", + "lru_map": "^0.4.1", + "memoize-one": "^5.2.1", + "mkdirp": "^1.0.4", + "moment": "^2.30.1", + "nunjucks": "^3.2.4", + "nunjucks-do": "^1.0.0", + "object-path": "^0.11.8", + "omit-keys": "^0.1.0", + "open": "^7.4.2", + "q": "^1.5.1", + "resolve": "^1.22.8", + "semver": "^7.6.3", + "send": "^0.17.2", + "tiny-lr": "^1.1.1", + "tmp": "0.2.4", + "urijs": "^1.19.11" + }, + "bin": { + "honkit": "bin/honkit.js" + } + }, + "node_modules/honkit/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/html-entities": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.0.tgz", + "integrity": "sha512-0md7tlUUyb0BEQGsZzbqty1CgV6RESOoxdivt94AScqhBhYsPCCQCOaGvur/RospMjYpPJ7iFe3zw4Bu4SVA8g==", + "dev": true, + "engines": [ + "node >= 0.4.0" + ], + "license": "MIT" + }, + "node_modules/htmlparser2": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", + "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "entities": "^7.0.1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/husky": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/husky/-/husky-5.2.0.tgz", + "integrity": "sha512-AM8T/auHXRBxlrfPVLKP6jt49GCM2Zz47m8G3FOMsLmTv8Dj/fKVWE0Rh2d4Qrvmy131xEsdQnb3OXRib67PGg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/typicode" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/husky" + } + ], + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/i18n-t": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/i18n-t/-/i18n-t-1.0.1.tgz", + "integrity": "sha512-2NmZwpsnRTzpZfIP6Rcic16m5QBNVaIwVyU182+iatd6RNbWmGi74LTA/R/oDa58RZ87bHChLgWpmulEAoEruQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "lodash": "^4.13.1" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.3.tgz", + "integrity": "sha512-AUY/VyX0E5XlibOmWt10uabJzam1zlYjwiEgQSDc5+UIkFNaF9WM0JxXKaNMGf+F/ffUF+7kRKXM9A7C0xXqMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/is": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/is/-/is-3.3.2.tgz", + "integrity": "sha512-a2xr4E3s1PjDS8ORcGgXpWx6V+liNs+O3JRD2mb9aeugD7rtkkZ0zgLdYgw0tWsKhsdiezGYptSiMlVazCBTuQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isobject": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-0.2.0.tgz", + "integrity": "sha512-VaWq6XYAsbvM0wf4dyBO7WH9D7GosB7ZZlqrawI9BBiTMINBeCyqSKBa35m870MY3O4aM31pYyZi9DfGrYMJrQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-defaults": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/json-schema-defaults/-/json-schema-defaults-0.1.1.tgz", + "integrity": "sha512-6Q5YS7pSDCXUbtS9uAFE+uUgvE45dBHCMyhqe6liJmL+oIa4zbACSS6nr6Lh+73mN+MnWBCExtN3C14S7Jrm7w==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonschema": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.1.0.tgz", + "integrity": "sha512-nQhT+ioA1XM8CpxJYlBfcUj6HF3f3f2KbLgV3tcxOt85RKpk2b0Do/C5BnCCCfdAarAjWRSFlln0Uanl4tBCHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/juice": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/juice/-/juice-8.1.0.tgz", + "integrity": "sha512-FLzurJrx5Iv1e7CfBSZH68dC04EEvXvvVvPYB7Vx1WAuhCp1ZPIMtqxc+WTWxVkpTIC2Ach/GAv0rQbtGf6YMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cheerio": "1.0.0-rc.10", + "commander": "^6.1.0", + "mensch": "^0.3.4", + "slick": "^1.12.2", + "web-resource-inliner": "^6.0.1" + }, + "bin": { + "juice": "bin/juice" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/juice/node_modules/cheerio": { + "version": "1.0.0-rc.10", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz", + "integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cheerio-select": "^1.5.0", + "dom-serializer": "^1.3.2", + "domhandler": "^4.2.0", + "htmlparser2": "^6.1.0", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/juice/node_modules/cheerio-select": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz", + "integrity": "sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "css-select": "^4.3.0", + "css-what": "^6.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.3.1", + "domutils": "^2.8.0" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/juice/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/juice/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/juice/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/juice/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/juice/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/juice/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/juice/node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/juice/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/juice/node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/keypather": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/keypather/-/keypather-1.10.2.tgz", + "integrity": "sha1-4ESWMtSz5RbyHMAUznxWRP3c5hQ=", + "dev": true, + "dependencies": { + "101": "^1.0.0" + } + }, + "node_modules/kramed": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/kramed/-/kramed-0.5.6.tgz", + "integrity": "sha512-V4qwQAp8HPQPU6Ph9Q4bc+P+nKQWEGlWYLRDkK7n+CPaMi8/VRm9/R710tRmag4whLsnKR91CO9Ras/Rnff9bw==", + "dev": true, + "license": "MIT", + "bin": { + "kramed": "bin/kramed" + } + }, + "node_modules/livereload-js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz", + "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru_map": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.4.1.tgz", + "integrity": "sha512-I+lBvqMMFfqaV8CJCISjI3wbjmwVu/VyOoU7+qtu9d7ioW5klMgsTTiUOUp+DJvfTTzKXoPbyC6YfgkNcyPSOg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lunr": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-0.5.12.tgz", + "integrity": "sha512-/EtfOyuNP7BLVKhDvLyKJkFvCup2vwcIwQXCuasZEFk7XUJ4/blztVuefeLapUb1I5uMGsosN9A8J9Mu9A6yBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/mensch": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/mensch/-/mensch-0.3.4.tgz", + "integrity": "sha512-IAeFvcOnV9V0Yk+bFhYR07O3yNina9ANIN5MoXBKYJ/RLYPurd2d0yw14MDhpr9/momp0WofT1bPUh3hkzdi/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nunjucks": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz", + "integrity": "sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "a-sync-waterfall": "^1.0.0", + "asap": "^2.0.3", + "commander": "^5.1.0" + }, + "bin": { + "nunjucks-precompile": "bin/precompile" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "chokidar": "^3.3.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/nunjucks-do": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nunjucks-do/-/nunjucks-do-1.0.0.tgz", + "integrity": "sha512-GQwENqZdcSbni0iYfEiNi3hs634JBSQdxnbnd9CetGkMYPnpjG1Jn5DT/qgAaC/STwMc7C4MSIJvLSNertclSg==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-path": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", + "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/omit-keys": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/omit-keys/-/omit-keys-0.1.0.tgz", + "integrity": "sha512-JfTw3lVL54592o0Vb1frMN6DpS/wT8Uz/IWg1e0w2ZkjF4yyPYHGJAtdcBcUbp/RMf/LbdMzIz6QZ6ycaRCFUA==", + "dev": true, + "dependencies": { + "array-difference": "0.0.1", + "isobject": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.0.tgz", + "integrity": "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", + "integrity": "sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg==", + "deprecated": "No longer maintained. Please upgrade to a stable version.", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "1", + "string_decoder": "0.10" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-json-parse": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz", + "integrity": "sha512-o0JmTu17WGUaUOHa1l0FPGXKBfijbxK6qoHzlkihsDXxzBHvJcA7zgviKR92Xs841rX9pK16unfphLq0/KqX7A==", + "dev": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", + "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "1.8.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true, + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/slick": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/slick/-/slick-1.12.2.tgz", + "integrity": "sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A==", + "dev": true, + "license": "MIT (http://mootools.net/license.txt)", + "engines": { + "node": "*" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-to-json": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/stream-to-json/-/stream-to-json-0.0.1.tgz", + "integrity": "sha1-8DDyt47TjkkpPbiFZTarzCZ3FHM=", + "dev": true, + "dependencies": { + "concat-stream": "~1.2.0", + "once": "~1.3.0" + } + }, + "node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, - "requires": { + "dependencies": { "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "supports-color": { + "node_modules/supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "tiny-error": { + "node_modules/tiny-error": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/tiny-error/-/tiny-error-0.2.3.tgz", "integrity": "sha1-KHas/leFGwcUMTwVNd/HBgp8Cbs=", "dev": true, - "requires": { + "dependencies": { "101": "^1.0.0", "object-assign": "^4.0.1" } }, - "to-utf8": { + "node_modules/tiny-lr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz", + "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "body": "^5.1.0", + "debug": "^3.1.0", + "faye-websocket": "~0.10.0", + "livereload-js": "^2.3.0", + "object-assign": "^4.1.0", + "qs": "^6.4.0" + } + }, + "node_modules/tiny-lr/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/tmp": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.4.tgz", + "integrity": "sha512-UdiSoX6ypifLmrfQ/XfiawN6hkjSBpCjhKxxZcWlUUmoXLaCKQU0bx4HF/tdDK2uzRuchf1txGvrWBzYREssoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/to-utf8": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/to-utf8/-/to-utf8-0.0.1.tgz", "integrity": "sha1-0Xrqcv8vujm55DYBvns/9y4ImFI=", "dev": true }, - "type-detect": { + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-detect": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", - "dev": true + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/undici": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.22.0.tgz", + "integrity": "sha512-RqslV2Us5BrllB+JeiZnK4peryVTndy9Dnqq62S3yYRRTj0tFQCwEniUy2167skdGOy3vqRzEvl1Dm4sV2ReDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.18.1" + } + }, + "node_modules/unxhr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unxhr/-/unxhr-1.0.1.tgz", + "integrity": "sha512-MAhukhVHyaLGDjyDYhy8gVjWJyhTECCdNsLwlMoGFoNJ3o79fpQhtQuzmAE4IxCMDwraF4cW8ZjpAV0m9CRQbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.11" + } + }, + "node_modules/urijs": { + "version": "1.19.11", + "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", + "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/valid-data-url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/valid-data-url/-/valid-data-url-3.0.1.tgz", + "integrity": "sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/web-resource-inliner": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/web-resource-inliner/-/web-resource-inliner-6.0.1.tgz", + "integrity": "sha512-kfqDxt5dTB1JhqsCUQVFDj0rmY+4HLwGQIsLPbyrsN9y9WV/1oFDSx3BQ4GfCv9X+jVeQ7rouTqwK53rA/7t8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1", + "escape-goat": "^3.0.0", + "htmlparser2": "^5.0.0", + "mime": "^2.4.6", + "node-fetch": "^2.6.0", + "valid-data-url": "^3.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/web-resource-inliner/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/web-resource-inliner/node_modules/dom-serializer/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/web-resource-inliner/node_modules/domhandler": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.0.1" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/web-resource-inliner/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/web-resource-inliner/node_modules/domutils/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/web-resource-inliner/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/web-resource-inliner/node_modules/htmlparser2": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-5.0.1.tgz", + "integrity": "sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^3.3.0", + "domutils": "^2.4.2", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/fb55/htmlparser2?sponsor=1" + } + }, + "node_modules/web-resource-inliner/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" }, - "wrappy": { + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true + }, + "node_modules/write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "license": "MIT", + "dependencies": { + "mkdirp": "^0.5.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/write/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } } } } diff --git a/package.json b/package.json index 75efa09..120efe6 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,9 @@ "test": "echo \"Error: no test specified\" && exit 1", "precommit": "npm run generate && git add README.md", "update-readme": "echo 'Updating the readme…'; doxie --render < ./tips.json --inject into README.md && echo '…done!'", - "update-toc": "echo 'Updating the table of contents…'; doxie --render .doxie.render.toc.js < ./tips.json --append '\n' --inject into README.md as toc && echo '…done!'", - "generate": "npm run update-readme; npm run update-toc" + "update-toc": "echo 'Updating the table of contents…'; doxie --render .doxie.render.toc.js < ./tips.json --append '\\n' --inject into README.md as toc && echo '…done!'", + "generate": "npm run update-readme; npm run update-toc", + "docs:build": "honkit build ./docs" }, "repository": { "type": "git", @@ -33,6 +34,7 @@ "doxie.inject": "^0.1.1", "doxie.output": "^0.3.0", "doxie.render": "^0.3.0", + "honkit": "^6.1.6", "husky": "^5.0.9" } } From fb5c6b5242343830ca7551eed1801b1c78ae01da Mon Sep 17 00:00:00 2001 From: hemanth Date: Mon, 9 Mar 2026 11:55:42 -0700 Subject: [PATCH 099/108] Refactor: Dynamically generate categorized README.md and remove old doxie dependencies --- .doxie.render.js | 24 - .doxie.render.toc.js | 19 - README.md | 1339 +++++++++++++++++++++--------------------- build-readme.js | 50 ++ package-lock.json | 317 ---------- package.json | 9 +- 6 files changed, 724 insertions(+), 1034 deletions(-) delete mode 100644 .doxie.render.js delete mode 100644 .doxie.render.toc.js create mode 100644 build-readme.js diff --git a/.doxie.render.js b/.doxie.render.js deleted file mode 100644 index 82673fa..0000000 --- a/.doxie.render.js +++ /dev/null @@ -1,24 +0,0 @@ -function escapeStr(str) { - return str - .replace(/\"/g, '\\"') - .replace(/\n/g, '\\n'); -} - -var render = function(data) { - var data = data.data; - - var tips = [ - '## ' + data.title, - '```sh', - data.tip, - '```', - '\n' - ]; - Array.isArray(data.alternatives) && tips.push(['__Alternatives:__']) && - data.alternatives.map(function(alternative){ - tips = tips.concat(['```sh',alternative,'```','\n']) - }); - return tips.join('\n'); -}; - -module.exports = render; diff --git a/.doxie.render.toc.js b/.doxie.render.toc.js deleted file mode 100644 index bc74e84..0000000 --- a/.doxie.render.toc.js +++ /dev/null @@ -1,19 +0,0 @@ -// from https://gist.github.com/mathewbyrne/1280286 -slugify = function(text){ - return text.toString().toLowerCase() - .replace(/\s+/g, '-') // Replace spaces with - - .replace(/[^\w\-]+/g, '') // Remove all non-word chars - .replace(/\-\-+/g, '-') // Replace multiple - with single - - .replace(/^-+/, '') // Trim - from start of text - .replace(/-+$/, ''); // Trim - from end of text -} - -var render = function(data) { - var data = data.data; - - var out = '* [' + data.title + '](#' + slugify(data.title) + ')\n'; - - return out; -}; - -module.exports = render; diff --git a/README.md b/README.md index 33a5547..d3e54d9 100644 --- a/README.md +++ b/README.md @@ -7,1269 +7,1276 @@ * [git-tip](https://www.npmjs.com/package/git-tip) - A handy CLI to make optimum use of these tips. ([Here in Docker container](https://github.com/djoudi5/docker-git-tip)) +📖 **[Read the interactive GitBook documentation here!](https://git-tips.github.io/tips/)** + P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. - - -* [Everyday Git in twenty commands or so](#everyday-git-in-twenty-commands-or-so) -* [Show helpful guides that come with Git](#show-helpful-guides-that-come-with-git) -* [Search change by content](#search-change-by-content) -* [Show changes over time for specific file](#show-changes-over-time-for-specific-file) -* [Remove sensitive data from history, after a push](#remove-sensitive-data-from-history-after-a-push) -* [Sync with remote, overwrite local changes](#sync-with-remote-overwrite-local-changes) -* [List of all files till a commit](#list-of-all-files-till-a-commit) -* [Git reset first commit](#git-reset-first-commit) -* [Reset: preserve uncommitted local changes](#reset-preserve-uncommitted-local-changes) -* [List all the conflicted files](#list-all-the-conflicted-files) -* [List of all files changed in a commit](#list-of-all-files-changed-in-a-commit) -* [Unstaged changes since last commit](#unstaged-changes-since-last-commit) -* [Changes staged for commit](#changes-staged-for-commit) -* [Show both staged and unstaged changes](#show-both-staged-and-unstaged-changes) -* [List all branches that are already merged into master](#list-all-branches-that-are-already-merged-into-master) -* [Quickly switch to the previous branch](#quickly-switch-to-the-previous-branch) -* [Remove branches that have already been merged with master](#remove-branches-that-have-already-been-merged-with-master) -* [List all branches and their upstreams, as well as last commit on branch](#list-all-branches-and-their-upstreams-as-well-as-last-commit-on-branch) -* [Track upstream branch](#track-upstream-branch) -* [Delete local branch](#delete-local-branch) -* [Delete remote branch](#delete-remote-branch) -* [Create local tag](#create-local-tag) -* [Delete local tag](#delete-local-tag) -* [Delete remote tag](#delete-remote-tag) -* [Undo local changes with the last content in head](#undo-local-changes-with-the-last-content-in-head) -* [Revert: Undo a commit by creating a new commit](#revert-undo-a-commit-by-creating-a-new-commit) -* [Reset: Discard commits, advised for private branch](#reset-discard-commits-advised-for-private-branch) -* [Reword the previous commit message](#reword-the-previous-commit-message) -* [See commit history for just the current branch](#see-commit-history-for-just-the-current-branch) -* [Amend author.](#amend-author) -* [Reset author, after author has been changed in the global config.](#reset-author-after-author-has-been-changed-in-the-global-config) -* [Changing a remote's URL](#changing-a-remotes-url) -* [Get list of all remote references](#get-list-of-all-remote-references) -* [Get list of all local and remote branches](#get-list-of-all-local-and-remote-branches) -* [Get only remote branches](#get-only-remote-branches) -* [Stage parts of a changed file, instead of the entire file](#stage-parts-of-a-changed-file-instead-of-the-entire-file) -* [Get git bash completion](#get-git-bash-completion) -* [What changed since two weeks?](#what-changed-since-two-weeks) -* [See all commits made since forking from master](#see-all-commits-made-since-forking-from-master) -* [Pick commits across branches using cherry-pick](#pick-commits-across-branches-using-cherry-pick) -* [Find out branches containing commit-hash](#find-out-branches-containing-commit-hash) -* [Git Aliases](#git-aliases) -* [Saving current state of tracked files without commiting](#saving-current-state-of-tracked-files-without-commiting) -* [Saving current state of unstaged changes to tracked files](#saving-current-state-of-unstaged-changes-to-tracked-files) -* [Saving current state including untracked files](#saving-current-state-including-untracked-files) -* [Saving current state with message](#saving-current-state-with-message) -* [Saving current state of all files (ignored, untracked, and tracked)](#saving-current-state-of-all-files-ignored-untracked-and-tracked) -* [Show list of all saved stashes](#show-list-of-all-saved-stashes) -* [Show the contents of any stash in patch form](#show-the-contents-of-any-stash-in-patch-form) -* [Apply any stash without deleting from the stashed list](#apply-any-stash-without-deleting-from-the-stashed-list) -* [Apply last stashed state and delete it from stashed list](#apply-last-stashed-state-and-delete-it-from-stashed-list) -* [Delete all stored stashes](#delete-all-stored-stashes) -* [Grab a single file from a stash](#grab-a-single-file-from-a-stash) -* [Show all tracked files](#show-all-tracked-files) -* [Show all untracked files](#show-all-untracked-files) -* [Show all ignored files](#show-all-ignored-files) -* [Create new working tree from a repository (git 2.5)](#create-new-working-tree-from-a-repository-git-25) -* [Create new working tree from HEAD state](#create-new-working-tree-from-head-state) -* [Untrack files without deleting](#untrack-files-without-deleting) -* [Before deleting untracked files/directory, do a dry run to get the list of these files/directories](#before-deleting-untracked-filesdirectory-do-a-dry-run-to-get-the-list-of-these-filesdirectories) -* [Forcefully remove untracked files](#forcefully-remove-untracked-files) -* [Forcefully remove untracked directory](#forcefully-remove-untracked-directory) -* [Update all the submodules](#update-all-the-submodules) -* [Show all commits in the current branch yet to be merged to master](#show-all-commits-in-the-current-branch-yet-to-be-merged-to-master) -* [Rename a branch](#rename-a-branch) -* [Rebases 'feature' to 'master' and merges it in to master ](#rebases-feature-to-master-and-merges-it-in-to-master) -* [Archive the `master` branch](#archive-the-master-branch) -* [Modify previous commit without modifying the commit message](#modify-previous-commit-without-modifying-the-commit-message) -* [Prunes references to remove branches that have been deleted in the remote.](#prunes-references-to-remove-branches-that-have-been-deleted-in-the-remote) -* [Delete local branches that has been squash and merged in the remote.](#delete-local-branches-that-has-been-squash-and-merged-in-the-remote) -* [Retrieve the commit hash of the initial revision.](#retrieve-the-commit-hash-of-the-initial-revision) -* [Visualize the version tree.](#visualize-the-version-tree) -* [Visualize the tree including commits that are only referenced from reflogs](#visualize-the-tree-including-commits-that-are-only-referenced-from-reflogs) -* [Deploying git tracked subfolder to gh-pages](#deploying-git-tracked-subfolder-to-gh-pages) -* [Adding a project to repo using subtree](#adding-a-project-to-repo-using-subtree) -* [Get latest changes in your repo for a linked project using subtree](#get-latest-changes-in-your-repo-for-a-linked-project-using-subtree) -* [Export a branch with history to a file.](#export-a-branch-with-history-to-a-file) -* [Import from a bundle](#import-from-a-bundle) -* [Get the name of current branch.](#get-the-name-of-current-branch) -* [Ignore one file on commit (e.g. Changelog).](#ignore-one-file-on-commit-eg-changelog) -* [Stash changes before rebasing](#stash-changes-before-rebasing) -* [Fetch pull request by ID to a local branch](#fetch-pull-request-by-id-to-a-local-branch) -* [Show the most recent tag on the current branch.](#show-the-most-recent-tag-on-the-current-branch) -* [Show inline word diff.](#show-inline-word-diff) -* [Show changes using common diff tools.](#show-changes-using-common-diff-tools) -* [Don’t consider changes for tracked file.](#dont-consider-changes-for-tracked-file) -* [Undo assume-unchanged.](#undo-assume-unchanged) -* [Clean the files from `.gitignore`.](#clean-the-files-from-gitignore) -* [Restore deleted file.](#restore-deleted-file) -* [Restore file to a specific commit-hash](#restore-file-to-a-specific-commit-hash) -* [Always rebase instead of merge on pull.](#always-rebase-instead-of-merge-on-pull) -* [List all the alias and configs.](#list-all-the-alias-and-configs) -* [Make git case sensitive.](#make-git-case-sensitive) -* [Add custom editors.](#add-custom-editors) -* [Auto correct typos.](#auto-correct-typos) -* [Check if the change was a part of a release.](#check-if-the-change-was-a-part-of-a-release) -* [Dry run. (any command that supports dry-run flag should do.)](#dry-run-any-command-that-supports-dry-run-flag-should-do) -* [Marks your commit as a fix of a previous commit.](#marks-your-commit-as-a-fix-of-a-previous-commit) -* [Squash fixup commits normal commits.](#squash-fixup-commits-normal-commits) -* [Skip staging area during commit.](#skip-staging-area-during-commit) -* [Interactive staging.](#interactive-staging) -* [List ignored files.](#list-ignored-files) -* [Status of ignored files.](#status-of-ignored-files) -* [Commits in Branch1 that are not in Branch2](#commits-in-branch1-that-are-not-in-branch2) -* [List n last commits](#list-n-last-commits) -* [Reuse recorded resolution, record and reuse previous conflicts resolutions.](#reuse-recorded-resolution-record-and-reuse-previous-conflicts-resolutions) -* [Open all conflicted files in an editor.](#open-all-conflicted-files-in-an-editor) -* [Count unpacked number of objects and their disk consumption.](#count-unpacked-number-of-objects-and-their-disk-consumption) -* [Prune all unreachable objects from the object database.](#prune-all-unreachable-objects-from-the-object-database) -* [Instantly browse your working repository in gitweb.](#instantly-browse-your-working-repository-in-gitweb) -* [View the GPG signatures in the commit log](#view-the-gpg-signatures-in-the-commit-log) -* [Remove entry in the global config.](#remove-entry-in-the-global-config) -* [Checkout a new branch without any history](#checkout-a-new-branch-without-any-history) -* [Extract file from another branch.](#extract-file-from-another-branch) -* [List only the root and merge commits.](#list-only-the-root-and-merge-commits) -* [Change previous two commits with an interactive rebase.](#change-previous-two-commits-with-an-interactive-rebase) -* [List all branch is WIP](#list-all-branch-is-wip) -* [Find guilty with binary search](#find-guilty-with-binary-search) -* [Bypass pre-commit and commit-msg githooks](#bypass-pre-commit-and-commit-msg-githooks) -* [List commits and changes to a specific file (even through renaming)](#list-commits-and-changes-to-a-specific-file-even-through-renaming) -* [Clone a single branch](#clone-a-single-branch) -* [Create and switch new branch](#create-and-switch-new-branch) -* [Ignore file mode changes on commits](#ignore-file-mode-changes-on-commits) -* [Turn off git colored terminal output](#turn-off-git-colored-terminal-output) -* [Specific color settings](#specific-color-settings) -* [Show all local branches ordered by recent commits](#show-all-local-branches-ordered-by-recent-commits) -* [Find lines matching the pattern (regex or string) in tracked files](#find-lines-matching-the-pattern-regex-or-string-in-tracked-files) -* [Clone a shallow copy of a repository](#clone-a-shallow-copy-of-a-repository) -* [Search Commit log across all branches for given text](#search-commit-log-across-all-branches-for-given-text) -* [Get first commit in a branch (from master)](#get-first-commit-in-a-branch-from-master) -* [Unstaging Staged file](#unstaging-staged-file) -* [Force push to Remote Repository](#force-push-to-remote-repository) -* [Adding Remote name](#adding-remote-name) -* [List all currently configured remotes](#list-all-currently-configured-remotes) -* [Show the author, time and last revision made to each line of a given file](#show-the-author-time-and-last-revision-made-to-each-line-of-a-given-file) -* [Group commits by authors and title](#group-commits-by-authors-and-title) -* [Forced push but still ensure you don't overwrite other's work](#forced-push-but-still-ensure-you-dont-overwrite-others-work) -* [Show how many lines does an author contribute](#show-how-many-lines-does-an-author-contribute) -* [Revert: Reverting an entire merge](#revert-reverting-an-entire-merge) -* [Number of commits in a branch](#number-of-commits-in-a-branch) -* [Alias: git undo](#alias-git-undo) -* [Add object notes](#add-object-notes) -* [Show all the git-notes](#show-all-the-git-notes) -* [Apply commit from another repository](#apply-commit-from-another-repository) -* [Specific fetch reference](#specific-fetch-reference) -* [Find common ancestor of two branches](#find-common-ancestor-of-two-branches) -* [List unpushed git commits](#list-unpushed-git-commits) -* [Add everything, but whitespace changes](#add-everything-but-whitespace-changes) -* [Edit [local/global] git config](#edit-localglobal-git-config) -* [blame on certain range](#blame-on-certain-range) -* [Show a Git logical variable.](#show-a-git-logical-variable) -* [Preformatted patch file.](#preformatted-patch-file) -* [Get the repo name.](#get-the-repo-name) -* [logs between date range](#logs-between-date-range) -* [Exclude author from logs](#exclude-author-from-logs) -* [Generates a summary of pending changes](#generates-a-summary-of-pending-changes) -* [List references in a remote repository](#list-references-in-a-remote-repository) -* [Backup untracked files.](#backup-untracked-files) -* [List all git aliases](#list-all-git-aliases) -* [Show git status short](#show-git-status-short) -* [Checkout a commit prior to a day ago](#checkout-a-commit-prior-to-a-day-ago) -* [Push the current branch to the same name on the remote repository](#push-the-current-branch-to-the-same-name-on-the-remote-repository) -* [Push a new local branch to remote repository and track](#push-a-new-local-branch-to-remote-repository-and-track) -* [Change a branch base](#change-a-branch-base) -* [Use SSH instead of HTTPs for remotes](#use-ssh-instead-of-https-for-remotes) -* [Update a submodule to the latest commit](#update-a-submodule-to-the-latest-commit) -* [Prevent auto replacing LF with CRLF](#prevent-auto-replacing-lf-with-crlf) -* [Refresh the list of remote branches](#refresh-the-list-of-remote-branches) - - - - - - - -## Everyday Git in twenty commands or so +## Table of Contents + +* [Basic Operations](#basic-operations) + * [List of all files till a commit](#list-of-all-files-till-a-commit) + * [Quickly switch to the previous branch](#quickly-switch-to-the-previous-branch) + * [Delete remote branch](#delete-remote-branch) + * [Delete remote tag](#delete-remote-tag) + * [Undo local changes with the content in index(staging)](#undo-local-changes-with-the-content-in-indexstaging) + * [Reword the previous commit message](#reword-the-previous-commit-message) + * [See commit history for just the current branch](#see-commit-history-for-just-the-current-branch) + * [Amend author.](#amend-author) + * [Stage parts of a changed file, instead of the entire file](#stage-parts-of-a-changed-file-instead-of-the-entire-file) + * [Pick commits across branches using cherry-pick](#pick-commits-across-branches-using-cherry-pick) + * [Grab a single file from a stash](#grab-a-single-file-from-a-stash) + * [Create new working tree from a repository (git 2.5)](#create-new-working-tree-from-a-repository-git-25) + * [Create new working tree from HEAD state](#create-new-working-tree-from-head-state) + * [Show all commits in the current branch yet to be merged to master](#show-all-commits-in-the-current-branch-yet-to-be-merged-to-master) + * [Modify previous commit without modifying the commit message](#modify-previous-commit-without-modifying-the-commit-message) + * [Prunes references to remove branches that have been deleted in the remote.](#prunes-references-to-remove-branches-that-have-been-deleted-in-the-remote) + * [Retrieve the commit hash of the initial revision.](#retrieve-the-commit-hash-of-the-initial-revision) + * [Import from a bundle](#import-from-a-bundle) + * [Ignore one file on commit (e.g. Changelog).](#ignore-one-file-on-commit-eg-changelog) + * [Fetch pull request by ID to a local branch](#fetch-pull-request-by-id-to-a-local-branch) + * [Restore deleted file.](#restore-deleted-file) + * [Restore file to a specific commit-hash](#restore-file-to-a-specific-commit-hash) + * [Marks your commit as a fix of a previous commit.](#marks-your-commit-as-a-fix-of-a-previous-commit) + * [Skip staging area during commit.](#skip-staging-area-during-commit) + * [Interactive staging.](#interactive-staging) + * [Status of ignored files.](#status-of-ignored-files) + * [Checkout a new branch without any history](#checkout-a-new-branch-without-any-history) + * [Find guilty with binary search](#find-guilty-with-binary-search) + * [Bypass pre-commit and commit-msg githooks](#bypass-pre-commit-and-commit-msg-githooks) + * [Clone a single branch](#clone-a-single-branch) + * [Create and switch new branch](#create-and-switch-new-branch) + * [Show all local branches ordered by recent commits](#show-all-local-branches-ordered-by-recent-commits) + * [Clone a shallow copy of a repository](#clone-a-shallow-copy-of-a-repository) + * [Force push to Remote Repository](#force-push-to-remote-repository) + * [Group commits by authors and title](#group-commits-by-authors-and-title) + * [Forced push but still ensure you don't overwrite other's work](#forced-push-but-still-ensure-you-dont-overwrite-others-work) + * [Number of commits in a branch](#number-of-commits-in-a-branch) + * [Add object notes](#add-object-notes) + * [Apply commit from another repository](#apply-commit-from-another-repository) + * [Specific fetch reference](#specific-fetch-reference) + * [Generates a summary of pending changes](#generates-a-summary-of-pending-changes) + * [Show git status short](#show-git-status-short) + * [Checkout a commit prior to a day ago](#checkout-a-commit-prior-to-a-day-ago) + * [Push the current branch to the same name on the remote repository](#push-the-current-branch-to-the-same-name-on-the-remote-repository) + * [Push a new local branch to remote repository and track](#push-a-new-local-branch-to-remote-repository-and-track) + * [Update a submodule to the latest commit](#update-a-submodule-to-the-latest-commit) + * [Duplicating a repository](#duplicating-a-repository) +* [Branching](#branching) + * [List all branches that are already merged into master](#list-all-branches-that-are-already-merged-into-master) + * [Remove branches that have already been merged with master](#remove-branches-that-have-already-been-merged-with-master) + * [List all branches and their upstreams, as well as last commit on branch](#list-all-branches-and-their-upstreams-as-well-as-last-commit-on-branch) + * [Track upstream branch](#track-upstream-branch) + * [Delete local branch](#delete-local-branch) + * [Get list of all local and remote branches](#get-list-of-all-local-and-remote-branches) + * [Get only remote branches](#get-only-remote-branches) + * [Find out branches containing commit-hash](#find-out-branches-containing-commit-hash) + * [Rename a branch](#rename-a-branch) + * [Archive the `master` branch](#archive-the-master-branch) + * [Delete local branches that has been squash and merged in the remote.](#delete-local-branches-that-has-been-squash-and-merged-in-the-remote) + * [Export a branch with history to a file.](#export-a-branch-with-history-to-a-file) + * [Get the name of current branch.](#get-the-name-of-current-branch) + * [Show the most recent tag on the current branch.](#show-the-most-recent-tag-on-the-current-branch) + * [List all branch is WIP](#list-all-branch-is-wip) + * [Preformatted patch file.](#preformatted-patch-file) + * [Switch to a branch (modern alternative to checkout)](#switch-to-a-branch-modern-alternative-to-checkout) +* [Log and History](#log-and-history) + * [Show helpful guides that come with Git](#show-helpful-guides-that-come-with-git) + * [Search change by content](#search-change-by-content) + * [Show changes over time for specific file](#show-changes-over-time-for-specific-file) + * [List all the conflicted files](#list-all-the-conflicted-files) + * [List of all files changed in a commit](#list-of-all-files-changed-in-a-commit) + * [Unstaged changes since last commit](#unstaged-changes-since-last-commit) + * [Changes staged for commit](#changes-staged-for-commit) + * [Show both staged and unstaged changes](#show-both-staged-and-unstaged-changes) + * [What changed since two weeks?](#what-changed-since-two-weeks) + * [See all commits made since forking from master](#see-all-commits-made-since-forking-from-master) + * [Show all tracked files](#show-all-tracked-files) + * [Show all untracked files](#show-all-untracked-files) + * [Show all ignored files](#show-all-ignored-files) + * [Visualize the version tree.](#visualize-the-version-tree) + * [Visualize the tree including commits that are only referenced from reflogs](#visualize-the-tree-including-commits-that-are-only-referenced-from-reflogs) + * [Show inline word diff.](#show-inline-word-diff) + * [Show changes using common diff tools.](#show-changes-using-common-diff-tools) + * [Commits in Branch1 that are not in Branch2](#commits-in-branch1-that-are-not-in-branch2) + * [List n last commits](#list-n-last-commits) + * [Open all conflicted files in an editor.](#open-all-conflicted-files-in-an-editor) + * [View the GPG signatures in the commit log](#view-the-gpg-signatures-in-the-commit-log) + * [Extract file from another branch.](#extract-file-from-another-branch) + * [List only the root and merge commits.](#list-only-the-root-and-merge-commits) + * [List commits and changes to a specific file (even through renaming)](#list-commits-and-changes-to-a-specific-file-even-through-renaming) + * [Search Commit log across all branches for given text](#search-commit-log-across-all-branches-for-given-text) + * [Get first commit in a branch (from master)](#get-first-commit-in-a-branch-from-master) + * [Show the author, time and last revision made to each line of a given file](#show-the-author-time-and-last-revision-made-to-each-line-of-a-given-file) + * [Show how many lines does an author contribute](#show-how-many-lines-does-an-author-contribute) + * [Show all the git-notes](#show-all-the-git-notes) + * [List unpushed git commits](#list-unpushed-git-commits) + * [Add everything, but whitespace changes](#add-everything-but-whitespace-changes) + * [blame on certain range](#blame-on-certain-range) + * [Show a Git logical variable.](#show-a-git-logical-variable) + * [Get the repo name.](#get-the-repo-name) + * [logs between date range](#logs-between-date-range) + * [Exclude author from logs](#exclude-author-from-logs) + * [View expanded details of changes in last commit](#view-expanded-details-of-changes-in-last-commit) + * [Visualize each position of HEAD in the last 30 days](#visualize-each-position-of-head-in-the-last-30-days) +* [Merging and Rebasing](#merging-and-rebasing) + * [Rebases 'feature' to 'master' and merges it in to master ](#rebases-feature-to-master-and-merges-it-in-to-master-) + * [Stash changes before rebasing](#stash-changes-before-rebasing) + * [Squash fixup commits normal commits.](#squash-fixup-commits-normal-commits) + * [Change previous two commits with an interactive rebase.](#change-previous-two-commits-with-an-interactive-rebase) + * [Find common ancestor of two branches](#find-common-ancestor-of-two-branches) + * [Change a branch base](#change-a-branch-base) +* [Miscellaneous](#miscellaneous) + * [Everyday Git in twenty commands or so](#everyday-git-in-twenty-commands-or-so) + * [Untrack files without deleting](#untrack-files-without-deleting) + * [Don’t consider changes for tracked file.](#dont-consider-changes-for-tracked-file) + * [Check if the change was a part of a release.](#check-if-the-change-was-a-part-of-a-release) + * [List ignored files.](#list-ignored-files) + * [Count unpacked number of objects and their disk consumption.](#count-unpacked-number-of-objects-and-their-disk-consumption) + * [Prune all unreachable objects from the object database.](#prune-all-unreachable-objects-from-the-object-database) + * [Instantly browse your working repository in gitweb.](#instantly-browse-your-working-repository-in-gitweb) + * [Find lines matching the pattern (regex or string) in tracked files](#find-lines-matching-the-pattern-regex-or-string-in-tracked-files) + * [Backup untracked files.](#backup-untracked-files) + * [Send a collection of patches as emails](#send-a-collection-of-patches-as-emails) +* [Remotes](#remotes) + * [Changing a remote's URL](#changing-a-remotes-url) + * [Get list of all remote references](#get-list-of-all-remote-references) + * [Adding Remote name](#adding-remote-name) + * [List all currently configured remotes](#list-all-currently-configured-remotes) + * [List references in a remote repository](#list-references-in-a-remote-repository) + * [Refresh the list of remote branches](#refresh-the-list-of-remote-branches) +* [Setup and Config](#setup-and-config) + * [Remove sensitive data from history, after a push](#remove-sensitive-data-from-history-after-a-push) + * [Reset author, after author has been changed in the global config.](#reset-author-after-author-has-been-changed-in-the-global-config) + * [Get git bash completion](#get-git-bash-completion) + * [Git Aliases](#git-aliases) + * [Always rebase instead of merge on pull.](#always-rebase-instead-of-merge-on-pull) + * [List all the alias and configs.](#list-all-the-alias-and-configs) + * [Make git case sensitive.](#make-git-case-sensitive) + * [Add custom editors.](#add-custom-editors) + * [Auto correct typos.](#auto-correct-typos) + * [Reuse recorded resolution, record and reuse previous conflicts resolutions.](#reuse-recorded-resolution-record-and-reuse-previous-conflicts-resolutions) + * [Remove entry in the global config.](#remove-entry-in-the-global-config) + * [Ignore file mode changes on commits](#ignore-file-mode-changes-on-commits) + * [Turn off git colored terminal output](#turn-off-git-colored-terminal-output) + * [Specific color settings](#specific-color-settings) + * [Alias: git undo](#alias-git-undo) + * [Edit [local/global] git config](#edit-localglobal-git-config) + * [List all git aliases](#list-all-git-aliases) + * [Use SSH instead of HTTPs for remotes](#use-ssh-instead-of-https-for-remotes) + * [Prevent auto replacing LF with CRLF](#prevent-auto-replacing-lf-with-crlf) + * [Edit config for each level](#edit-config-for-each-level) +* [Stashing](#stashing) + * [Saving current state of tracked files without committing](#saving-current-state-of-tracked-files-without-committing) + * [Saving current state of unstaged changes to tracked files](#saving-current-state-of-unstaged-changes-to-tracked-files) + * [Saving current state including untracked files](#saving-current-state-including-untracked-files) + * [Saving current state with message](#saving-current-state-with-message) + * [Saving current state of all files (ignored, untracked, and tracked)](#saving-current-state-of-all-files-ignored-untracked-and-tracked) + * [Show list of all saved stashes](#show-list-of-all-saved-stashes) + * [Show the contents of any stash in patch form](#show-the-contents-of-any-stash-in-patch-form) + * [Apply any stash without deleting from the stashed list](#apply-any-stash-without-deleting-from-the-stashed-list) + * [Apply last stashed state and delete it from stashed list](#apply-last-stashed-state-and-delete-it-from-stashed-list) + * [Delete all stored stashes](#delete-all-stored-stashes) +* [Submodules and Subtrees](#submodules-and-subtrees) + * [Update all the submodules](#update-all-the-submodules) + * [Deploying git tracked subfolder to gh-pages](#deploying-git-tracked-subfolder-to-gh-pages) + * [Adding a project to repo using subtree](#adding-a-project-to-repo-using-subtree) + * [Get latest changes in your repo for a linked project using subtree](#get-latest-changes-in-your-repo-for-a-linked-project-using-subtree) +* [Tagging](#tagging) + * [Create local tag](#create-local-tag) + * [Delete local tag](#delete-local-tag) +* [Undoing Changes](#undoing-changes) + * [Sync with remote, overwrite local changes](#sync-with-remote-overwrite-local-changes) + * [Git reset first commit](#git-reset-first-commit) + * [Reset: preserve uncommitted local changes](#reset-preserve-uncommitted-local-changes) + * [Revert: Undo a commit by creating a new commit](#revert-undo-a-commit-by-creating-a-new-commit) + * [Reset: Discard commits, advised for private branch](#reset-discard-commits-advised-for-private-branch) + * [Before deleting untracked files/directory, do a dry run to get the list of these files/directories](#before-deleting-untracked-filesdirectory-do-a-dry-run-to-get-the-list-of-these-filesdirectories) + * [Forcefully remove untracked files](#forcefully-remove-untracked-files) + * [Forcefully remove untracked directory](#forcefully-remove-untracked-directory) + * [Undo assume-unchanged.](#undo-assume-unchanged) + * [Clean the files from `.gitignore`.](#clean-the-files-from-gitignore) + * [Dry run. (any command that supports dry-run flag should do.)](#dry-run-any-command-that-supports-dry-run-flag-should-do) + * [Unstaging Staged file](#unstaging-staged-file) + * [Revert: Reverting an entire merge](#revert-reverting-an-entire-merge) + * [Restore file (modern alternative to reset/checkout --)](#restore-file-modern-alternative-to-resetcheckout---) + +## Basic Operations + +### List of all files till a commit ```sh -git help everyday +git ls-tree --name-only -r ``` -## Show helpful guides that come with Git +### Quickly switch to the previous branch ```sh -git help -g +git checkout - ``` - -## Search change by content +**Alternatives:** ```sh -git log -S'' +git checkout @{-1} ``` -## Show changes over time for specific file +### Delete remote branch ```sh -git log -p +git push origin --delete ``` - -## Remove sensitive data from history, after a push +**Alternatives:** ```sh -git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch ' --prune-empty --tag-name-filter cat -- --all && git push origin --force --all +git push origin : ``` - -## Sync with remote, overwrite local changes ```sh -git fetch origin && git reset --hard origin/master && git clean -f -d +git branch -dr ``` -## List of all files till a commit +### Delete remote tag ```sh -git ls-tree --name-only -r +git push origin :refs/tags/ ``` -## Git reset first commit +### Undo local changes with the content in index(staging) ```sh -git update-ref -d HEAD +git checkout -- ``` -## Reset: preserve uncommitted local changes +### Reword the previous commit message ```sh -git reset --keep +git commit -v --amend ``` -## List all the conflicted files +### See commit history for just the current branch ```sh -git diff --name-only --diff-filter=U +git cherry -v master ``` -## List of all files changed in a commit +### Amend author. ```sh -git diff-tree --no-commit-id --name-only -r +git commit --amend --author='Author Name ' ``` -## Unstaged changes since last commit +### Stage parts of a changed file, instead of the entire file ```sh -git diff +git add -p ``` -## Changes staged for commit +### Pick commits across branches using cherry-pick ```sh -git diff --cached +git checkout && git cherry-pick ``` - -__Alternatives:__ +### Grab a single file from a stash ```sh -git diff --staged +git checkout -- ``` - -## Show both staged and unstaged changes +**Alternatives:** ```sh -git diff HEAD +git checkout stash@{0} -- ``` -## List all branches that are already merged into master +### Create new working tree from a repository (git 2.5) ```sh -git branch --merged master +git worktree add -b ``` -## Quickly switch to the previous branch +### Create new working tree from HEAD state ```sh -git checkout - +git worktree add --detach HEAD ``` - -__Alternatives:__ +### Show all commits in the current branch yet to be merged to master ```sh -git checkout @{-1} +git cherry -v master ``` - -## Remove branches that have already been merged with master +**Alternatives:** ```sh -git branch --merged master | grep -v '^\*' | xargs -n 1 git branch -d +git cherry -v master ``` - -__Alternatives:__ +### Modify previous commit without modifying the commit message ```sh -git branch --merged master | grep -v '^\*\| master' | xargs -n 1 git branch -d # will not delete master if master is not checked out +git add --all && git commit --amend --no-edit ``` -## List all branches and their upstreams, as well as last commit on branch +### Prunes references to remove branches that have been deleted in the remote. ```sh -git branch -vv +git fetch -p ``` - -## Track upstream branch +**Alternatives:** ```sh -git branch -u origin/mybranch +git remote prune origin ``` -## Delete local branch +### Retrieve the commit hash of the initial revision. ```sh -git branch -d + git rev-list --reverse HEAD | head -1 ``` - -## Delete remote branch +**Alternatives:** ```sh -git push origin --delete +git rev-list --max-parents=0 HEAD ``` - - -__Alternatives:__ ```sh -git push origin : +git log --pretty=oneline | tail -1 | cut -c 1-40 ``` - - ```sh -git branch -dr +git log --pretty=oneline --reverse | head -1 | cut -c 1-40 ``` -## Create local tag +### Import from a bundle ```sh -git tag +git clone repo.bundle -b ``` -## Delete local tag +### Ignore one file on commit (e.g. Changelog). ```sh -git tag -d +git update-index --assume-unchanged Changelog; git commit -a; git update-index --no-assume-unchanged Changelog ``` -## Delete remote tag +### Fetch pull request by ID to a local branch ```sh -git push origin :refs/tags/ +git fetch origin pull//head: ``` - -## Undo local changes with the content in index(staging) +**Alternatives:** ```sh -git checkout -- +git pull origin pull//head: ``` -## Revert: Undo a commit by creating a new commit +### Restore deleted file. ```sh -git revert +git checkout -- ``` -## Reset: Discard commits, advised for private branch +### Restore file to a specific commit-hash ```sh -git reset +git checkout -- ``` -## Reword the previous commit message +### Marks your commit as a fix of a previous commit. ```sh -git commit -v --amend +git commit --fixup ``` -## See commit history for just the current branch +### Skip staging area during commit. ```sh -git cherry -v master +git commit --only ``` -## Amend author. +### Interactive staging. ```sh -git commit --amend --author='Author Name ' +git add -i ``` -## Reset author, after author has been changed in the global config. +### Status of ignored files. ```sh -git commit --amend --reset-author --no-edit +git status --ignored ``` -## Changing a remote's URL +### Checkout a new branch without any history ```sh -git remote set-url origin +git checkout --orphan ``` -## Get list of all remote references +### Find guilty with binary search ```sh -git remote -``` +git bisect start # Search start +git bisect bad # Set point to bad commit +git bisect good v2.6.13-rc2 # Set point to good commit|tag +git bisect bad # Say current state is bad +git bisect good # Say current state is good +git bisect reset # Finish search +``` -__Alternatives:__ +### Bypass pre-commit and commit-msg githooks ```sh -git remote show +git commit --no-verify ``` -## Get list of all local and remote branches +### Clone a single branch ```sh -git branch -a +git clone -b --single-branch https://github.com/user/repo.git ``` -## Get only remote branches +### Create and switch new branch ```sh -git branch -r +git checkout -b ``` - -## Stage parts of a changed file, instead of the entire file +**Alternatives:** ```sh -git add -p +git branch && git checkout ``` - -## Get git bash completion ```sh -curl -L http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc +git switch -c ``` -## What changed since two weeks? +### Show all local branches ordered by recent commits ```sh -git log --no-merges --raw --since='2 weeks ago' +git for-each-ref --sort=-committerdate --format='%(refname:short)' refs/heads/ ``` - -__Alternatives:__ +### Clone a shallow copy of a repository ```sh -git whatchanged --since='2 weeks ago' +git clone https://github.com/user/repo.git --depth 1 ``` -## See all commits made since forking from master +### Force push to Remote Repository ```sh -git log --no-merges --stat --reverse master.. +git push -f ``` -## Pick commits across branches using cherry-pick +### Group commits by authors and title ```sh -git checkout && git cherry-pick +git shortlog ``` -## Find out branches containing commit-hash +### Forced push but still ensure you don't overwrite other's work ```sh -git branch -a --contains +git push --force-with-lease ``` - -__Alternatives:__ +### Number of commits in a branch ```sh -git branch --contains +git rev-list --count ``` -## Git Aliases +### Add object notes ```sh -git config --global alias. -git config --global alias.st status +git notes add -m 'Note on the previous commit....' ``` -## Saving current state of tracked files without commiting +### Apply commit from another repository ```sh -git stash +git --git-dir=/.git format-patch -k -1 --stdout | git am -3 -k ``` - -__Alternatives:__ +### Specific fetch reference ```sh -git stash push +git fetch origin master:refs/remotes/origin/mymaster ``` -## Saving current state of unstaged changes to tracked files +### Generates a summary of pending changes ```sh -git stash -k +git request-pull v1.0 https://git.ko.xz/project master:for-linus ``` - -__Alternatives:__ +### Show git status short ```sh -git stash --keep-index +git status --short --branch ``` - +### Checkout a commit prior to a day ago ```sh -git stash push --keep-index +git checkout master@{yesterday} ``` -## Saving current state including untracked files +### Push the current branch to the same name on the remote repository ```sh -git stash -u +git push origin HEAD ``` - -__Alternatives:__ +### Push a new local branch to remote repository and track ```sh -git stash push -u +git push -u origin ``` - +### Update a submodule to the latest commit ```sh -git stash push --include-untracked +cd +git pull origin +cd +git add +git commit -m "submodule updated" ``` -## Saving current state with message +### Duplicating a repository ```sh -git stash push -m +git clone --bare https://github.com/exampleuser/old-repository.git + +git push --mirror https://github.com/exampleuser/new-repository.git ``` +## Branching -__Alternatives:__ +### List all branches that are already merged into master ```sh -git stash push --message +git branch --merged master ``` -## Saving current state of all files (ignored, untracked, and tracked) +### Remove branches that have already been merged with master ```sh -git stash -a +git branch --merged master | grep -v '^\*' | xargs -n 1 git branch -d ``` - - -__Alternatives:__ +**Alternatives:** ```sh -git stash --all +git branch --merged master | grep -v '^\*\| master' | xargs -n 1 git branch -d # will not delete master if master is not checked out ``` - +### List all branches and their upstreams, as well as last commit on branch ```sh -git stash push --all +git branch -vv ``` -## Show list of all saved stashes +### Track upstream branch ```sh -git stash list +git branch -u origin/mybranch ``` -## Show the contents of any stash in patch form +### Delete local branch ```sh -git stash show -p +git branch -d ``` -## Apply any stash without deleting from the stashed list +### Get list of all local and remote branches ```sh -git stash apply +git branch -a ``` -## Apply last stashed state and delete it from stashed list +### Get only remote branches ```sh -git stash pop +git branch -r ``` - -__Alternatives:__ +### Find out branches containing commit-hash ```sh -git stash apply stash@{0} && git stash drop stash@{0} +git branch -a --contains ``` - -## Delete all stored stashes +**Alternatives:** ```sh -git stash clear +git branch --contains ``` - -__Alternatives:__ +### Rename a branch ```sh -git stash drop +git branch -m ``` - -## Grab a single file from a stash +**Alternatives:** ```sh -git checkout -- +git branch -m [] ``` +### Archive the `master` branch +```sh +git archive master --format=zip --output=master.zip +``` -__Alternatives:__ +### Delete local branches that has been squash and merged in the remote. ```sh -git checkout stash@{0} -- +git branch -vv | grep ': gone]' | awk '{print $1}' | xargs git branch -D ``` -## Show all tracked files +### Export a branch with history to a file. ```sh -git ls-files -t +git bundle create ``` -## Show all untracked files +### Get the name of current branch. ```sh -git ls-files --others +git rev-parse --abbrev-ref HEAD ``` -## Show all ignored files +### Show the most recent tag on the current branch. ```sh -git ls-files --others -i --exclude-standard +git describe --tags --abbrev=0 ``` -## Create new working tree from a repository (git 2.5) +### List all branch is WIP ```sh -git worktree add -b +git checkout master && git branch --no-merged ``` -## Create new working tree from HEAD state +### Preformatted patch file. ```sh -git worktree add --detach HEAD +git format-patch -M upstream..topic ``` -## Untrack files without deleting +### Switch to a branch (modern alternative to checkout) ```sh -git rm --cached +git switch +``` +**Alternatives:** +```sh +git switch -c ``` +## Log and History -__Alternatives:__ +### Show helpful guides that come with Git ```sh -git rm --cached -r +git help -g ``` -## Before deleting untracked files/directory, do a dry run to get the list of these files/directories +### Search change by content ```sh -git clean -n +git log -S'' ``` -## Forcefully remove untracked files +### Show changes over time for specific file ```sh -git clean -f +git log -p ``` -## Forcefully remove untracked directory +### List all the conflicted files ```sh -git clean -f -d +git diff --name-only --diff-filter=U ``` -## Update all the submodules +### List of all files changed in a commit ```sh -git submodule foreach git pull +git diff-tree --no-commit-id --name-only -r ``` - -__Alternatives:__ +### Unstaged changes since last commit ```sh -git submodule update --init --recursive +git diff ``` - +### Changes staged for commit ```sh -git submodule update --remote +git diff --cached ``` - -## Show all commits in the current branch yet to be merged to master +**Alternatives:** ```sh -git cherry -v master +git diff --staged ``` - -__Alternatives:__ +### Show both staged and unstaged changes ```sh -git cherry -v master +git diff HEAD ``` -## Rename a branch +### What changed since two weeks? ```sh -git branch -m +git log --no-merges --raw --since='2 weeks ago' ``` - - -__Alternatives:__ +**Alternatives:** ```sh -git branch -m [] +git whatchanged --since='2 weeks ago' ``` -## Rebases 'feature' to 'master' and merges it in to master +### See all commits made since forking from master ```sh -git rebase master feature && git checkout master && git merge - +git log --no-merges --stat --reverse master.. ``` -## Archive the `master` branch +### Show all tracked files ```sh -git archive master --format=zip --output=master.zip +git ls-files -t ``` -## Modify previous commit without modifying the commit message +### Show all untracked files ```sh -git add --all && git commit --amend --no-edit +git ls-files --others ``` -## Prunes references to remove branches that have been deleted in the remote. +### Show all ignored files ```sh -git fetch -p +git ls-files --others -i --exclude-standard ``` - -__Alternatives:__ +### Visualize the version tree. ```sh -git remote prune origin +git log --pretty=oneline --graph --decorate --all ``` - -## Delete local branches that has been squash and merged in the remote. +**Alternatives:** ```sh -git branch -vv | grep ': gone]' | awk '{print }' | xargs git branch -D +gitk --all ``` - -## Retrieve the commit hash of the initial revision. ```sh - git rev-list --reverse HEAD | head -1 +git log --graph --pretty=format:'%C(auto) %h | %s | %an | %ar%d' ``` - -__Alternatives:__ +### Visualize the tree including commits that are only referenced from reflogs ```sh -git rev-list --max-parents=0 HEAD +git log --graph --decorate --oneline $(git rev-list --walk-reflogs --all) ``` - +### Show inline word diff. ```sh -git log --pretty=oneline | tail -1 | cut -c 1-40 +git diff --word-diff ``` - +### Show changes using common diff tools. ```sh -git log --pretty=oneline --reverse | head -1 | cut -c 1-40 +git difftool [-t ] ``` -## Visualize the version tree. +### Commits in Branch1 that are not in Branch2 ```sh -git log --pretty=oneline --graph --decorate --all +git log Branch1 ^Branch2 ``` +### List n last commits +```sh +git log - +``` +**Alternatives:** +```sh +git log -n +``` -__Alternatives:__ +### Open all conflicted files in an editor. ```sh -gitk --all +git diff --name-only | uniq | xargs $EDITOR ``` +### View the GPG signatures in the commit log +```sh +git log --show-signature +``` +### Extract file from another branch. ```sh -git log --graph --pretty=format:'%C(auto) %h | %s | %an | %ar%d' +git show : ``` -## Visualize the tree including commits that are only referenced from reflogs +### List only the root and merge commits. ```sh -git log --graph --decorate --oneline $(git rev-list --walk-reflogs --all) +git log --first-parent ``` -## Deploying git tracked subfolder to gh-pages +### List commits and changes to a specific file (even through renaming) ```sh -git subtree push --prefix subfolder_name origin gh-pages +git log --follow -p -- ``` -## Adding a project to repo using subtree +### Search Commit log across all branches for given text ```sh -git subtree add --prefix=/ --squash git@github.com:/.git master +git log --all --grep='' ``` -## Get latest changes in your repo for a linked project using subtree +### Get first commit in a branch (from master) ```sh -git subtree pull --prefix=/ --squash git@github.com:/.git master +git log --oneline master.. | tail -1 ``` - -## Export a branch with history to a file. +**Alternatives:** ```sh -git bundle create +git log --reverse master.. | head -6 ``` -## Import from a bundle +### Show the author, time and last revision made to each line of a given file ```sh -git clone repo.bundle -b +git blame ``` -## Get the name of current branch. +### Show how many lines does an author contribute ```sh -git rev-parse --abbrev-ref HEAD +git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | gawk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s removed lines: %s total lines: %s +", add, subs, loc }' - ``` - -## Ignore one file on commit (e.g. Changelog). +**Alternatives:** ```sh -git update-index --assume-unchanged Changelog; git commit -a; git update-index --no-assume-unchanged Changelog +git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s +", add, subs, loc }' - # on Mac OSX ``` -## Stash changes before rebasing +### Show all the git-notes ```sh -git rebase --autostash +git log --show-notes='*' ``` -## Fetch pull request by ID to a local branch +### List unpushed git commits ```sh -git fetch origin pull//head: +git log --branches --not --remotes ``` - - -__Alternatives:__ +**Alternatives:** ```sh -git pull origin pull//head: +git log @{u}.. ``` - -## Show the most recent tag on the current branch. ```sh -git describe --tags --abbrev=0 +git cherry -v ``` -## Show inline word diff. +### Add everything, but whitespace changes ```sh -git diff --word-diff +git diff --ignore-all-space | git apply --cached ``` -## Show changes using common diff tools. +### blame on certain range ```sh -git difftool [-t ] +git blame -L , ``` -## Don’t consider changes for tracked file. +### Show a Git logical variable. ```sh -git update-index --assume-unchanged +git var -l | ``` -## Undo assume-unchanged. +### Get the repo name. ```sh -git update-index --no-assume-unchanged +git rev-parse --show-toplevel ``` -## Clean the files from `.gitignore`. +### logs between date range ```sh -git clean -X -f +git log --since='FEB 1 2017' --until='FEB 14 2017' ``` -## Restore deleted file. +### Exclude author from logs ```sh -git checkout -- +git log --perl-regexp --author='^((?!excluded-author-regex).*)$' ``` -## Restore file to a specific commit-hash +### View expanded details of changes in last commit ```sh -git checkout -- +git show ``` -## Always rebase instead of merge on pull. +### Visualize each position of HEAD in the last 30 days ```sh -git config --global pull.rebase true +git reflog ``` +## Merging and Rebasing -__Alternatives:__ +### Rebases 'feature' to 'master' and merges it in to master ```sh -#git < 1.7.9 -git config --global branch.autosetuprebase always +git rebase master feature && git checkout master && git merge - ``` -## List all the alias and configs. +### Stash changes before rebasing ```sh -git config --list +git rebase --autostash ``` -## Make git case sensitive. +### Squash fixup commits normal commits. ```sh -git config --global core.ignorecase false +git rebase -i --autosquash ``` -## Add custom editors. +### Change previous two commits with an interactive rebase. ```sh -git config --global core.editor '$EDITOR' +git rebase --interactive HEAD~2 ``` -## Auto correct typos. +### Find common ancestor of two branches ```sh -git config --global help.autocorrect 1 +git merge-base ``` -## Check if the change was a part of a release. +### Change a branch base ```sh -git name-rev --name-only +git rebase --onto ``` -## Dry run. (any command that supports dry-run flag should do.) +## Miscellaneous + +### Everyday Git in twenty commands or so ```sh -git clean -fd --dry-run +git help everyday ``` -## Marks your commit as a fix of a previous commit. +### Untrack files without deleting ```sh -git commit --fixup +git rm --cached ``` - -## Squash fixup commits normal commits. +**Alternatives:** ```sh -git rebase -i --autosquash +git rm --cached -r ``` -## Skip staging area during commit. +### Don’t consider changes for tracked file. ```sh -git commit --only +git update-index --assume-unchanged ``` -## Interactive staging. +### Check if the change was a part of a release. ```sh -git add -i +git name-rev --name-only ``` -## List ignored files. +### List ignored files. ```sh git check-ignore * ``` -## Status of ignored files. +### Count unpacked number of objects and their disk consumption. ```sh -git status --ignored +git count-objects --human-readable ``` -## Commits in Branch1 that are not in Branch2 +### Prune all unreachable objects from the object database. ```sh -git log Branch1 ^Branch2 +git gc --prune=now --aggressive ``` -## List n last commits +### Instantly browse your working repository in gitweb. ```sh -git log - +git instaweb [--local] [--httpd=] [--port=] [--browser=] ``` - -__Alternatives:__ +### Find lines matching the pattern (regex or string) in tracked files ```sh -git log -n +git grep --heading --line-number 'foo bar' ``` -## Reuse recorded resolution, record and reuse previous conflicts resolutions. +### Backup untracked files. ```sh -git config --global rerere.enabled 1 +git ls-files --others -i --exclude-standard | xargs zip untracked.zip ``` -## Open all conflicted files in an editor. +### Send a collection of patches as emails ```sh -git diff --name-only | uniq | xargs $EDITOR +git send-email [] … + +git send-email [] ``` -## Count unpacked number of objects and their disk consumption. +## Remotes + +### Changing a remote's URL ```sh -git count-objects --human-readable +git remote set-url origin ``` -## Prune all unreachable objects from the object database. +### Get list of all remote references ```sh -git gc --prune=now --aggressive +git remote ``` - -## Instantly browse your working repository in gitweb. +**Alternatives:** ```sh -git instaweb [--local] [--httpd=] [--port=] [--browser=] +git remote show ``` -## View the GPG signatures in the commit log +### Adding Remote name ```sh -git log --show-signature +git remote add ``` -## Remove entry in the global config. +### List all currently configured remotes ```sh -git config --global --unset +git remote -v ``` -## Checkout a new branch without any history +### List references in a remote repository ```sh -git checkout --orphan +git ls-remote git://git.kernel.org/pub/scm/git/git.git ``` -## Extract file from another branch. +### Refresh the list of remote branches ```sh -git show : +git remote update origin --prune ``` -## List only the root and merge commits. +## Setup and Config + +### Remove sensitive data from history, after a push ```sh -git log --first-parent +git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch ' --prune-empty --tag-name-filter cat -- --all && git push origin --force --all ``` -## Change previous two commits with an interactive rebase. +### Reset author, after author has been changed in the global config. ```sh -git rebase --interactive HEAD~2 +git commit --amend --reset-author --no-edit ``` -## List all branch is WIP +### Get git bash completion ```sh -git checkout master && git branch --no-merged +curl -L http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc ``` -## Find guilty with binary search +### Git Aliases ```sh -git bisect start # Search start -git bisect bad # Set point to bad commit -git bisect good v2.6.13-rc2 # Set point to good commit|tag -git bisect bad # Say current state is bad -git bisect good # Say current state is good -git bisect reset # Finish search - +git config --global alias. +git config --global alias.st status ``` -## Bypass pre-commit and commit-msg githooks +### Always rebase instead of merge on pull. ```sh -git commit --no-verify +git config --global pull.rebase true ``` - -## List commits and changes to a specific file (even through renaming) +**Alternatives:** ```sh -git log --follow -p -- +#git < 1.7.9 +git config --global branch.autosetuprebase always ``` -## Clone a single branch +### List all the alias and configs. ```sh -git clone -b --single-branch https://github.com/user/repo.git +git config --list ``` -## Create and switch new branch +### Make git case sensitive. ```sh -git checkout -b +git config --global core.ignorecase false ``` +### Add custom editors. +```sh +git config --global core.editor '$EDITOR' +``` -__Alternatives:__ +### Auto correct typos. ```sh -git branch && git checkout +git config --global help.autocorrect 1 ``` +### Reuse recorded resolution, record and reuse previous conflicts resolutions. +```sh +git config --global rerere.enabled 1 +``` +### Remove entry in the global config. ```sh -git switch -c +git config --global --unset ``` -## Ignore file mode changes on commits +### Ignore file mode changes on commits ```sh git config core.fileMode false ``` -## Turn off git colored terminal output +### Turn off git colored terminal output ```sh git config --global color.ui false ``` -## Specific color settings +### Specific color settings ```sh git config --global ``` -## Show all local branches ordered by recent commits +### Alias: git undo ```sh -git for-each-ref --sort=-committerdate --format='%(refname:short)' refs/heads/ +git config --global alias.undo '!f() { git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; }; f' ``` -## Find lines matching the pattern (regex or string) in tracked files +### Edit [local/global] git config ```sh -git grep --heading --line-number 'foo bar' +git config [--global] --edit ``` -## Clone a shallow copy of a repository +### List all git aliases ```sh -git clone https://github.com/user/repo.git --depth 1 +git config -l | grep alias | sed 's/^alias\.//g' ``` - -## Search Commit log across all branches for given text +**Alternatives:** ```sh -git log --all --grep='' +git config -l | grep alias | cut -d '.' -f 2 ``` -## Get first commit in a branch (from master) +### Use SSH instead of HTTPs for remotes ```sh -git log --oneline master.. | tail -1 +git config --global url.'git@github.com:'.insteadOf 'https://github.com/' ``` - -__Alternatives:__ +### Prevent auto replacing LF with CRLF ```sh -git log --reverse master.. | head -6 +git config --global core.autocrlf false ``` -## Unstaging Staged file +### Edit config for each level ```sh -git reset HEAD +git config --edit --system + +git config --edit --global + +git config --edit --local ``` -## Force push to Remote Repository +## Stashing + +### Saving current state of tracked files without committing ```sh -git push -f +git stash ``` - -## Adding Remote name +**Alternatives:** ```sh -git remote add +git stash push ``` -## List all currently configured remotes +### Saving current state of unstaged changes to tracked files ```sh -git remote -v +git stash -k ``` - -## Show the author, time and last revision made to each line of a given file +**Alternatives:** ```sh -git blame +git stash --keep-index ``` - -## Group commits by authors and title ```sh -git shortlog +git stash push --keep-index ``` -## Forced push but still ensure you don't overwrite other's work +### Saving current state including untracked files ```sh -git push --force-with-lease +git stash -u ``` - -## Show how many lines does an author contribute +**Alternatives:** ```sh -git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | gawk '{ add += ; subs += ; loc += - } END { printf "added lines: %s removed lines: %s total lines: %s -", add, subs, loc }' - +git stash push -u ``` - - -__Alternatives:__ ```sh -git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | awk '{ add += ; subs += ; loc += - } END { printf "added lines: %s, removed lines: %s, total lines: %s -", add, subs, loc }' - # on Mac OSX +git stash push --include-untracked ``` -## Revert: Reverting an entire merge +### Saving current state with message ```sh -git revert -m 1 +git stash push -m ``` - -## Number of commits in a branch +**Alternatives:** ```sh -git rev-list --count +git stash push --message ``` -## Alias: git undo +### Saving current state of all files (ignored, untracked, and tracked) ```sh -git config --global alias.undo '!f() { git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; }; f' +git stash -a ``` - -## Add object notes +**Alternatives:** ```sh -git notes add -m 'Note on the previous commit....' +git stash --all ``` - -## Show all the git-notes ```sh -git log --show-notes='*' +git stash push --all ``` -## Apply commit from another repository +### Show list of all saved stashes ```sh -git --git-dir=/.git format-patch -k -1 --stdout | git am -3 -k +git stash list ``` -## Specific fetch reference +### Show the contents of any stash in patch form ```sh -git fetch origin master:refs/remotes/origin/mymaster +git stash show -p ``` -## Find common ancestor of two branches +### Apply any stash without deleting from the stashed list ```sh -git merge-base +git stash apply ``` -## List unpushed git commits +### Apply last stashed state and delete it from stashed list ```sh -git log --branches --not --remotes +git stash pop +``` +**Alternatives:** +```sh +git stash apply stash@{0} && git stash drop stash@{0} ``` - -__Alternatives:__ +### Delete all stored stashes ```sh -git log @{u}.. +git stash clear +``` +**Alternatives:** +```sh +git stash drop ``` +## Submodules and Subtrees +### Update all the submodules ```sh -git cherry -v +git submodule foreach git pull ``` - -## Add everything, but whitespace changes +**Alternatives:** ```sh -git diff --ignore-all-space | git apply --cached +git submodule update --init --recursive ``` - -## Edit [local/global] git config ```sh -git config [--global] --edit +git submodule update --remote ``` -## blame on certain range +### Deploying git tracked subfolder to gh-pages ```sh -git blame -L , +git subtree push --prefix subfolder_name origin gh-pages ``` - -## Show a Git logical variable. +**Alternatives:** ```sh -git var -l | +git subtree push --prefix subfolder_name origin branch_name ``` -## Preformatted patch file. +### Adding a project to repo using subtree ```sh -git format-patch -M upstream..topic +git subtree add --prefix=/ --squash git@github.com:/.git master ``` -## Get the repo name. +### Get latest changes in your repo for a linked project using subtree ```sh -git rev-parse --show-toplevel +git subtree pull --prefix=/ --squash git@github.com:/.git master ``` -## logs between date range +## Tagging + +### Create local tag ```sh -git log --since='FEB 1 2017' --until='FEB 14 2017' +git tag ``` -## Exclude author from logs +### Delete local tag ```sh -git log --perl-regexp --author='^((?!excluded-author-regex).*) - +git tag -d ``` -## Generates a summary of pending changes +## Undoing Changes + +### Sync with remote, overwrite local changes ```sh -git request-pull v1.0 https://git.ko.xz/project master:for-linus +git fetch origin && git reset --hard origin/master && git clean -f -d ``` -## List references in a remote repository +### Git reset first commit ```sh -git ls-remote git://git.kernel.org/pub/scm/git/git.git +git update-ref -d HEAD ``` -## Backup untracked files. +### Reset: preserve uncommitted local changes ```sh -git ls-files --others -i --exclude-standard | xargs zip untracked.zip +git reset --keep ``` -## List all git aliases +### Revert: Undo a commit by creating a new commit ```sh -git config -l | grep alias | sed 's/^alias\.//g' +git revert ``` - -__Alternatives:__ +### Reset: Discard commits, advised for private branch ```sh -git config -l | grep alias | cut -d '.' -f 2 +git reset ``` -## Show git status short +### Before deleting untracked files/directory, do a dry run to get the list of these files/directories ```sh -git status --short --branch +git clean -n ``` -## Checkout a commit prior to a day ago +### Forcefully remove untracked files ```sh -git checkout master@{yesterday} +git clean -f ``` -## Push the current branch to the same name on the remote repository +### Forcefully remove untracked directory ```sh -git push origin HEAD +git clean -f -d ``` -## Push a new local branch to remote repository and track +### Undo assume-unchanged. ```sh -git push -u origin +git update-index --no-assume-unchanged ``` -## Change a branch base +### Clean the files from `.gitignore`. ```sh -git rebase --onto +git clean -X -f ``` -## Use SSH instead of HTTPs for remotes +### Dry run. (any command that supports dry-run flag should do.) ```sh -git config --global url.'git@github.com:'.insteadOf 'https://github.com/' +git clean -fd --dry-run ``` -## Update a submodule to the latest commit +### Unstaging Staged file ```sh -cd -git pull origin -cd -git add -git commit -m "submodule updated" +git reset HEAD ``` -## Prevent auto replacing LF with CRLF +### Revert: Reverting an entire merge ```sh -git config --global core.autocrlf false +git revert -m 1 ``` -## Refresh the list of remote branches +### Restore file (modern alternative to reset/checkout --) ```sh -git remote update origin --prune +git restore +``` +**Alternatives:** +```sh +git restore --staged ``` - - - diff --git a/build-readme.js b/build-readme.js new file mode 100644 index 0000000..12006c6 --- /dev/null +++ b/build-readme.js @@ -0,0 +1,50 @@ +const fs = require('fs'); +const tips = require('./tips.json'); + +const header = `## git-tips +> Collection of \`git-tips\`, want to add your tips? Checkout [contributing.md](./contributing.md) + +[English](http://git.io/git-tips) | [中文](https://github.com/521xueweihan/git-tips) | [Русский](https://github.com/Imangazaliev/git-tips) | [한국어](https://github.com/mingrammer/git-tips) | [Tiếng Việt](https://github.com/hprobotic/git-tips) | [日本語](https://github.com/isotai/git-tips) | [नेपाली](https://github.com/amarduwal/git-tips) | [Polski](https://github.com/mbiesiad/tips) | [فارسی](https://github.com/javadnikbakht/git-tips) + +### __Tools:__ + +* [git-tip](https://www.npmjs.com/package/git-tip) - A handy CLI to make optimum use of these tips. ([Here in Docker container](https://github.com/djoudi5/docker-git-tip)) + +📖 **[Read the interactive GitBook documentation here!](https://git-tips.github.io/tips/)** + +P.S: All these commands are tested on \`git version 2.7.4 (Apple Git-66)\`. + +`; + +let toc = "## Table of Contents\n\n"; +let content = ""; + +const categories = {}; +tips.forEach(tip => { + const cat = tip.category || 'Miscellaneous'; + if (!categories[cat]) categories[cat] = []; + categories[cat].push(tip); +}); + +// Generate TOC and Content +Object.keys(categories).sort().forEach(cat => { + toc += `* [${cat}](#${cat.toLowerCase().replace(/ /g, '-')})\n`; + content += `\n## ${cat}\n`; + categories[cat].forEach(tip => { + let slug = tip.title.toLowerCase().replace(/[^\w\- ]+/g, '').replace(/\s+/g, '-'); + toc += ` * [${tip.title}](#${slug})\n`; + + content += `\n### ${tip.title}\n`; + content += `\`\`\`sh\n${tip.tip}\n\`\`\`\n`; + if (tip.alternatives) { + content += `**Alternatives:**\n`; + let alts = Array.isArray(tip.alternatives) ? tip.alternatives : [tip.alternatives]; + alts.forEach(alt => { + content += `\`\`\`sh\n${alt}\n\`\`\`\n`; + }); + } + }); +}); + +fs.writeFileSync('README.md', header + toc + content); +console.log("README.md generated successfully!"); diff --git a/package-lock.json b/package-lock.json index ff88ee0..09e18d2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,11 +9,6 @@ "version": "1.0.0", "license": "MIT", "devDependencies": { - "doxie": "^0.2.2", - "doxie.append": "^0.1.0", - "doxie.inject": "^0.1.1", - "doxie.output": "^0.3.0", - "doxie.render": "^0.3.0", "honkit": "^6.1.6", "husky": "^5.0.9" } @@ -123,26 +118,6 @@ "lodash": "^4.17.23" } }, - "node_modules/1-liners": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/1-liners/-/1-liners-0.3.6.tgz", - "integrity": "sha1-SDD+eLdTejaZ+IpdQqjtwa9mB/8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/101": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/101/-/101-1.6.3.tgz", - "integrity": "sha512-4dmQ45yY0Dx24Qxp+zAsNLlMF6tteCyfVzgbulvSyC7tCyd3V8sW76sS0tHq8NpcbXfWTKasfyfzU1Kd86oKzw==", - "dev": true, - "dependencies": { - "clone": "^1.0.2", - "deep-eql": "^0.1.3", - "keypather": "^1.10.2" - } - }, "node_modules/a-sync-waterfall": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", @@ -160,24 +135,6 @@ "node": ">=6" } }, - "node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -209,12 +166,6 @@ "dev": true, "license": "MIT Expat" }, - "node_modules/array-find": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", - "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", - "dev": true - }, "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", @@ -263,15 +214,6 @@ "dev": true, "license": "MIT" }, - "node_modules/base64-js": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.2.tgz", - "integrity": "sha1-Ak8Pcq+iW3X5wO5zzU9V7Bvtl4Q=", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/bash-color": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/bash-color/-/bash-color-0.0.4.tgz", @@ -311,16 +253,6 @@ "dev": true, "license": "ISC" }, - "node_modules/bops": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/bops/-/bops-0.0.6.tgz", - "integrity": "sha1-CC0dVfoB5g29wuvC26N/ZZVUzzo=", - "dev": true, - "dependencies": { - "base64-js": "0.0.2", - "to-utf8": "0.0.1" - } - }, "node_modules/brace-expansion": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", @@ -428,22 +360,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/cheerio": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.2.0.tgz", @@ -577,15 +493,6 @@ "node": ">=8" } }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -623,18 +530,6 @@ "dev": true, "license": "MIT" }, - "node_modules/concat-stream": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.2.1.tgz", - "integrity": "sha1-81EAtsRjeL+6i2uA+fDQzN8T3GA=", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "dependencies": { - "bops": "0.0.6" - } - }, "node_modules/continuable-cache": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", @@ -734,24 +629,6 @@ "dev": true, "license": "MIT" }, - "node_modules/deep-eql": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", - "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", - "dev": true, - "dependencies": { - "type-detect": "0.1.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, "node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -873,114 +750,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/doxie": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/doxie/-/doxie-0.2.4.tgz", - "integrity": "sha1-KZltv1dg/OdNvLTXnGAjHYoXu4U=", - "dev": true, - "dependencies": { - "1-liners": "^0.3.2", - "chalk": "^1.0.0", - "doxie-core": "^0.3.1", - "stream-to-json": "^0.0.1", - "tiny-error": "^0.2.1" - }, - "bin": { - "doxie": "bin/doxie.js" - } - }, - "node_modules/doxie-core": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/doxie-core/-/doxie-core-0.3.1.tgz", - "integrity": "sha1-PS+RQ+WF45Cpgwjcnk7zjxPPQss=", - "dev": true, - "dependencies": { - "1-liners": "^0.3.0", - "chalk": "^1.0.0", - "tiny-error": "^0.2.1" - } - }, - "node_modules/doxie.append": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/doxie.append/-/doxie.append-0.1.0.tgz", - "integrity": "sha1-yHRoUEL18wlKTQwzNsPklMNpdOE=", - "dev": true, - "dependencies": { - "object-assign": "^3.0.0" - } - }, - "node_modules/doxie.append/node_modules/object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/doxie.inject": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/doxie.inject/-/doxie.inject-0.1.1.tgz", - "integrity": "sha1-/QNYT4segOZEtcuUdpr+RH94oEc=", - "dev": true, - "dependencies": { - "1-liners": "^0.3.2", - "array-find": "^1.0.0", - "chalk": "^1.0.0", - "defined": "^1.0.0", - "object-assign": "^3.0.0", - "tiny-error": "^0.2.1" - } - }, - "node_modules/doxie.inject/node_modules/object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/doxie.output": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/doxie.output/-/doxie.output-0.3.0.tgz", - "integrity": "sha1-4H4Stn2qX8KLPsZn0HAv1ziZitE=", - "dev": true, - "dependencies": { - "1-liners": "^0.3.0", - "object-assign": "^3.0.0" - } - }, - "node_modules/doxie.output/node_modules/object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/doxie.render": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/doxie.render/-/doxie.render-0.3.2.tgz", - "integrity": "sha1-Mva37g88NSSokT08grn6uqoKGPA=", - "dev": true, - "dependencies": { - "1-liners": "^0.3.1", - "chalk": "^1.0.0", - "object-assign": "^3.0.0", - "tiny-error": "^0.2.1" - } - }, - "node_modules/doxie.render/node_modules/object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -1114,15 +883,6 @@ "dev": true, "license": "MIT" }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -1411,18 +1171,6 @@ "dev": true, "license": "ISC" }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/has-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", @@ -2036,15 +1784,6 @@ "parse5": "^6.0.1" } }, - "node_modules/keypather": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/keypather/-/keypather-1.10.2.tgz", - "integrity": "sha1-4ESWMtSz5RbyHMAUznxWRP3c5hQ=", - "dev": true, - "dependencies": { - "101": "^1.0.0" - } - }, "node_modules/kramed": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/kramed/-/kramed-0.5.6.tgz", @@ -2717,16 +2456,6 @@ "node": ">= 0.6" } }, - "node_modules/stream-to-json": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/stream-to-json/-/stream-to-json-0.0.1.tgz", - "integrity": "sha1-8DDyt47TjkkpPbiFZTarzCZ3FHM=", - "dev": true, - "dependencies": { - "concat-stream": "~1.2.0", - "once": "~1.3.0" - } - }, "node_modules/string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", @@ -2778,27 +2507,6 @@ "node": ">=8" } }, - "node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -2812,16 +2520,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tiny-error": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tiny-error/-/tiny-error-0.2.3.tgz", - "integrity": "sha1-KHas/leFGwcUMTwVNd/HBgp8Cbs=", - "dev": true, - "dependencies": { - "101": "^1.0.0", - "object-assign": "^4.0.1" - } - }, "node_modules/tiny-lr": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz", @@ -2870,12 +2568,6 @@ "node": ">=8.0" } }, - "node_modules/to-utf8": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/to-utf8/-/to-utf8-0.0.1.tgz", - "integrity": "sha1-0Xrqcv8vujm55DYBvns/9y4ImFI=", - "dev": true - }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", @@ -2900,15 +2592,6 @@ "dev": true, "license": "0BSD" }, - "node_modules/type-detect": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", - "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/undici": { "version": "7.22.0", "resolved": "https://registry.npmjs.org/undici/-/undici-7.22.0.tgz", diff --git a/package.json b/package.json index 120efe6..d98e107 100644 --- a/package.json +++ b/package.json @@ -7,9 +7,7 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "precommit": "npm run generate && git add README.md", - "update-readme": "echo 'Updating the readme…'; doxie --render < ./tips.json --inject into README.md && echo '…done!'", - "update-toc": "echo 'Updating the table of contents…'; doxie --render .doxie.render.toc.js < ./tips.json --append '\\n' --inject into README.md as toc && echo '…done!'", - "generate": "npm run update-readme; npm run update-toc", + "generate": "node build-readme.js", "docs:build": "honkit build ./docs" }, "repository": { @@ -29,11 +27,6 @@ }, "homepage": "https://github.com/git-tips/tips#readme", "devDependencies": { - "doxie": "^0.2.2", - "doxie.append": "^0.1.0", - "doxie.inject": "^0.1.1", - "doxie.output": "^0.3.0", - "doxie.render": "^0.3.0", "honkit": "^6.1.6", "husky": "^5.0.9" } From 294040926111e1bcf1243ecb62d5c0539d6bace9 Mon Sep 17 00:00:00 2001 From: hemanth Date: Mon, 9 Mar 2026 12:00:57 -0700 Subject: [PATCH 100/108] Fix CI: Update Node.js to v20 for HonKit build --- .github/workflows/deploy-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 3a74206..c0c620f 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -15,7 +15,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20 - name: Install Dependencies run: npm ci From 049de43d12c669da6154769b92451ae96c1c2716 Mon Sep 17 00:00:00 2001 From: hemanth Date: Mon, 9 Mar 2026 12:06:43 -0700 Subject: [PATCH 101/108] Fix formatting of 'Deploying git tracked subfolder' alternative --- docs/submodules-and-subtrees.md | 176 +------------------------------- tips.json | 4 +- 2 files changed, 4 insertions(+), 176 deletions(-) diff --git a/docs/submodules-and-subtrees.md b/docs/submodules-and-subtrees.md index bb89ed1..d86f4f2 100644 --- a/docs/submodules-and-subtrees.md +++ b/docs/submodules-and-subtrees.md @@ -20,181 +20,7 @@ git subtree push --prefix subfolder_name origin gh-pages ``` **Alternatives:** ```sh -g -``` -```sh -i -``` -```sh -t -``` -```sh - -``` -```sh -s -``` -```sh -u -``` -```sh -b -``` -```sh -t -``` -```sh -r -``` -```sh -e -``` -```sh -e -``` -```sh - -``` -```sh -p -``` -```sh -u -``` -```sh -s -``` -```sh -h -``` -```sh - -``` -```sh -- -``` -```sh -- -``` -```sh -p -``` -```sh -r -``` -```sh -e -``` -```sh -f -``` -```sh -i -``` -```sh -x -``` -```sh - -``` -```sh -s -``` -```sh -u -``` -```sh -b -``` -```sh -f -``` -```sh -o -``` -```sh -l -``` -```sh -d -``` -```sh -e -``` -```sh -r -``` -```sh -_ -``` -```sh -n -``` -```sh -a -``` -```sh -m -``` -```sh -e -``` -```sh - -``` -```sh -o -``` -```sh -r -``` -```sh -i -``` -```sh -g -``` -```sh -i -``` -```sh -n -``` -```sh - -``` -```sh -b -``` -```sh -r -``` -```sh -a -``` -```sh -n -``` -```sh -c -``` -```sh -h -``` -```sh -_ -``` -```sh -n -``` -```sh -a -``` -```sh -m -``` -```sh -e +git subtree push --prefix subfolder_name origin branch_name ``` --- diff --git a/tips.json b/tips.json index 0dc2b67..5b46f75 100644 --- a/tips.json +++ b/tips.json @@ -441,7 +441,9 @@ { "title": "Deploying git tracked subfolder to gh-pages", "tip": "git subtree push --prefix subfolder_name origin gh-pages", - "alternatives": "git subtree push --prefix subfolder_name origin branch_name", + "alternatives": [ + "git subtree push --prefix subfolder_name origin branch_name" + ], "category": "Submodules and Subtrees" }, { From a7488e6deb257f3740198969c05746f5f812f359 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2026 11:39:05 +0000 Subject: [PATCH 102/108] Bump flatted and honkit Bumps [flatted](https://github.com/WebReflection/flatted) to 3.4.2 and updates ancestor dependency [honkit](https://github.com/honkit/honkit). These dependencies need to be updated together. Updates `flatted` from 2.0.2 to 3.4.2 - [Commits](https://github.com/WebReflection/flatted/compare/v2.0.2...v3.4.2) Updates `honkit` from 6.1.6 to 6.1.7 - [Release notes](https://github.com/honkit/honkit/releases) - [Changelog](https://github.com/honkit/honkit/blob/master/CHANGELOG.md) - [Commits](https://github.com/honkit/honkit/compare/v6.1.6...v6.1.7) --- updated-dependencies: - dependency-name: flatted dependency-version: 3.4.2 dependency-type: indirect - dependency-name: honkit dependency-version: 6.1.7 dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- package-lock.json | 371 ++++++++++++++++++---------------------------- package.json | 2 +- 2 files changed, 149 insertions(+), 224 deletions(-) diff --git a/package-lock.json b/package-lock.json index 09e18d2..95c282d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "MIT", "devDependencies": { - "honkit": "^6.1.6", + "honkit": "^6.1.7", "husky": "^5.0.9" } }, @@ -40,7 +40,6 @@ "integrity": "sha512-oozXk7ZO1RAd/KLFLkKOhqTcG4GO3CV44WwOFg2gMcCsqCUTarvMT7xERIoWW2WurKbB0/ce+98r01p8xPOlBw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "asciidoctor-opal-runtime": "0.3.3", "unxhr": "1.0.1" @@ -52,20 +51,20 @@ } }, "node_modules/@honkit/asciidoc": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/@honkit/asciidoc/-/asciidoc-6.1.6.tgz", - "integrity": "sha512-/Oy+noEYyL+yLBLia/vAu7+6XYa00M5ZoE9oqRYVsZOWDd6RLcuBhLC4EfKFZk5HqJ/f4Om09lvJgXbIXY23mg==", + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/@honkit/asciidoc/-/asciidoc-6.1.7.tgz", + "integrity": "sha512-2wn9h6FqxtB6uR2aadh10HPGK34F8ucGmV9WMx+rkAO1irTmKzo0Kllo8QWqNVJ6gOE2nhM1e2HmRX5Qj8jZvQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@honkit/html": "6.1.6", + "@honkit/html": "6.1.7", "asciidoctor": "^2.2.8" } }, "node_modules/@honkit/honkit-plugin-fontsettings": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/@honkit/honkit-plugin-fontsettings/-/honkit-plugin-fontsettings-6.1.6.tgz", - "integrity": "sha512-NExKrTqleTffMDqrdcb268hgQkScVjK9N+bDIxQ63dYmNhtuJ7EcLjijfkOtcS7DEnrR8S5lSjJoVC5oxPzxaQ==", + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/@honkit/honkit-plugin-fontsettings/-/honkit-plugin-fontsettings-6.1.7.tgz", + "integrity": "sha512-pP0apyv3hI0GJ2sS5EFrE/NPlCYnSO/HXF10FElDZ6tCv7bj4lmJ87TZ5+18Y5gE4hhIRE1SAgtAWtia1LABoA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -73,9 +72,9 @@ } }, "node_modules/@honkit/honkit-plugin-highlight": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/@honkit/honkit-plugin-highlight/-/honkit-plugin-highlight-6.1.6.tgz", - "integrity": "sha512-i6JlFWaMNKBAfU7WH+kA0gNa5c2gJABPO4UOd0vlOupEqwT4cvRLWcDBp+oAge6aCiTpsyrt8sGnavcpg0kubA==", + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/@honkit/honkit-plugin-highlight/-/honkit-plugin-highlight-6.1.7.tgz", + "integrity": "sha512-W675g59J2Ur+9LnP109n8yQt2XNiO8nTO/BWAEmSBmDxxZLttZGwWxOVQzgvgeEszqiC/4dWLveggOJJdmpNzw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -86,9 +85,9 @@ } }, "node_modules/@honkit/honkit-plugin-theme-default": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/@honkit/honkit-plugin-theme-default/-/honkit-plugin-theme-default-6.1.6.tgz", - "integrity": "sha512-AhLEEY0aBTgo4MlGcrW/Rlh/lkdsJdI8oqFV5pU+mSAuHi0Yf49EcU+OkzW8ImWvjIZxjjYN3TJD4Agmpqos+Q==", + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/@honkit/honkit-plugin-theme-default/-/honkit-plugin-theme-default-6.1.7.tgz", + "integrity": "sha512-KunA3b46QdLZxqTw5Is2/H2YyzNg2AYSeOhUkF5dz+b6nRCYQNScU4u+ZLe7mfmaAd8HX9+mtTwng1qIIrf5xA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -96,24 +95,24 @@ } }, "node_modules/@honkit/html": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/@honkit/html/-/html-6.1.6.tgz", - "integrity": "sha512-WtWroTzNdx25S3C3zqyWXh0wLCtkFK+uACHUCGrJxijOns0ivlrOk/QcoF+59EfFMCD9N64VQMs18IduDuF+/Q==", + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/@honkit/html/-/html-6.1.7.tgz", + "integrity": "sha512-aHM2FgybyLbO+DxpMrYK1jt8pzv9npcZzlfxiBjuyrgGKPuwHmfp4xC2W2KOidfR7ZgEVSo858cur3NDjt99Zg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "cheerio": "^1.0.0", + "cheerio": "~1.0.0", "lodash": "^4.17.23" } }, "node_modules/@honkit/markdown-legacy": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/@honkit/markdown-legacy/-/markdown-legacy-6.1.6.tgz", - "integrity": "sha512-AgMlVqkwLgbOf7B6mRc0vLRSklYxWovX2GPcKYMcPjkGlB5pMTd76Arb1JEifRdhmRLs5SmZ0Te+TME+Xpb/jw==", + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/@honkit/markdown-legacy/-/markdown-legacy-6.1.7.tgz", + "integrity": "sha512-LLPi7emPv2YaotRfb3IwKC3egQ9nZ4S0E9PV4IurGjfVpSq8dgEXyDMo3Bvgz7pAv/ylo8GN0IAyNVRQtfg4TA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@honkit/html": "6.1.6", + "@honkit/html": "6.1.7", "kramed": "0.5.6", "lodash": "^4.17.23" } @@ -135,6 +134,32 @@ "node": ">=6" } }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -361,26 +386,26 @@ } }, "node_modules/cheerio": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.2.0.tgz", - "integrity": "sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", + "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", "dev": true, "license": "MIT", "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", - "domutils": "^3.2.2", - "encoding-sniffer": "^0.2.1", - "htmlparser2": "^10.1.0", - "parse5": "^7.3.0", - "parse5-htmlparser2-tree-adapter": "^7.1.0", + "domutils": "^3.1.0", + "encoding-sniffer": "^0.2.0", + "htmlparser2": "^9.1.0", + "parse5": "^7.1.2", + "parse5-htmlparser2-tree-adapter": "^7.0.0", "parse5-parser-stream": "^7.1.2", - "undici": "^7.19.0", + "undici": "^6.19.5", "whatwg-mimetype": "^4.0.0" }, "engines": { - "node": ">=20.18.1" + "node": ">=18.17" }, "funding": { "url": "https://github.com/cheeriojs/cheerio?sponsor=1" @@ -438,7 +463,6 @@ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -470,29 +494,6 @@ "wrap-ansi": "^7.0.0" } }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -630,13 +631,13 @@ "license": "MIT" }, "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/destroy": { @@ -780,9 +781,9 @@ "license": "MIT" }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true, "license": "MIT", "engines": { @@ -941,38 +942,23 @@ } }, "node_modules/flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "license": "MIT", "dependencies": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" + "flatted": "^3.2.9", + "keyv": "^4.5.4" }, "engines": { - "node": ">=4" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "node": ">=16" } }, "node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true, "license": "ISC" }, @@ -1208,20 +1194,20 @@ } }, "node_modules/honkit": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/honkit/-/honkit-6.1.6.tgz", - "integrity": "sha512-Id0sy5fXYlYcUDk8paze0OazsRZhdsdo8HsuhkAxiNvxsG+8iL9qK5gfnYqNr7PGsfqW7g79EEPt9+/BDCMFow==", + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/honkit/-/honkit-6.1.7.tgz", + "integrity": "sha512-/o3mojU4wYckkcguTlaCfwJiDPGGx+ndl9MKGCfcVj9sDkrwb3TYdEqI40muE9WTHAWu2JFdd8ymUkixEyPNiQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@honkit/asciidoc": "6.1.6", - "@honkit/honkit-plugin-fontsettings": "6.1.6", - "@honkit/honkit-plugin-highlight": "6.1.6", - "@honkit/honkit-plugin-theme-default": "6.1.6", - "@honkit/html": "6.1.6", - "@honkit/markdown-legacy": "6.1.6", + "@honkit/asciidoc": "6.1.7", + "@honkit/honkit-plugin-fontsettings": "6.1.7", + "@honkit/honkit-plugin-highlight": "6.1.7", + "@honkit/honkit-plugin-theme-default": "6.1.7", + "@honkit/html": "6.1.7", + "@honkit/markdown-legacy": "6.1.7", "bash-color": "^0.0.4", - "cheerio": "^1.0.0", + "cheerio": "~1.0.0", "chokidar": "^3.6.0", "commander": "^5.1.0", "cp": "^0.2.0", @@ -1234,7 +1220,7 @@ "escape-html": "^1.0.3", "escape-string-regexp": "^4.0.0", "extend": "^3.0.2", - "flat-cache": "^2.0.1", + "flat-cache": "^4.0.1", "front-matter": "^2.3.0", "gitbook-plugin-livereload": "^0.0.1", "gitbook-plugin-lunr": "^1.2.0", @@ -1242,9 +1228,9 @@ "github-slugid": "^1.0.1", "i18n-t": "^1.0.1", "ignore": "^5.3.2", - "immutable": "^3.8.2", + "immutable": "^3.8.3", "is": "^3.3.0", - "js-yaml": "^3.14.1", + "js-yaml": "^3.14.2", "json-schema-defaults": "^0.1.1", "jsonschema": "1.1.0", "juice": "^8.1.0", @@ -1260,7 +1246,7 @@ "q": "^1.5.1", "resolve": "^1.22.8", "semver": "^7.6.3", - "send": "^0.17.2", + "send": "^0.19.2", "tiny-lr": "^1.1.1", "tmp": "0.2.4", "urijs": "^1.19.11" @@ -1293,9 +1279,9 @@ "license": "MIT" }, "node_modules/htmlparser2": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", - "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", @@ -1308,14 +1294,14 @@ "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", - "domutils": "^3.2.2", - "entities": "^7.0.1" + "domutils": "^3.1.0", + "entities": "^4.5.0" } }, "node_modules/htmlparser2/node_modules/entities": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", - "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -1326,20 +1312,24 @@ } }, "node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", "dev": true, "license": "MIT", "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" }, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/http-parser-js": { @@ -1588,6 +1578,13 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, "node_modules/json-schema-defaults": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/json-schema-defaults/-/json-schema-defaults-0.1.1.tgz", @@ -1784,6 +1781,16 @@ "parse5": "^6.0.1" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/kramed": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/kramed/-/kramed-0.5.6.tgz", @@ -2035,9 +2042,9 @@ } }, "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, "license": "MIT", "dependencies": { @@ -2315,37 +2322,30 @@ } }, "node_modules/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", "dev": true, "license": "MIT", "dependencies": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "~2.3.0", + "on-finished": "~2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "~2.0.2" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/send/node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==", - "dev": true, - "license": "MIT" - }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -2447,13 +2447,13 @@ "license": "BSD-3-Clause" }, "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/string_decoder": { @@ -2484,17 +2484,7 @@ "node": ">=8" } }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { + "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", @@ -2593,13 +2583,13 @@ "license": "0BSD" }, "node_modules/undici": { - "version": "7.22.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.22.0.tgz", - "integrity": "sha512-RqslV2Us5BrllB+JeiZnK4peryVTndy9Dnqq62S3yYRRTj0tFQCwEniUy2167skdGOy3vqRzEvl1Dm4sV2ReDg==", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.24.1.tgz", + "integrity": "sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==", "dev": true, "license": "MIT", "engines": { - "node": ">=20.18.1" + "node": ">=18.17" } }, "node_modules/unxhr": { @@ -2849,77 +2839,12 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, - "node_modules/write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "license": "MIT", - "dependencies": { - "mkdirp": "^0.5.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/write/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/package.json b/package.json index d98e107..f6a3528 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ }, "homepage": "https://github.com/git-tips/tips#readme", "devDependencies": { - "honkit": "^6.1.6", + "honkit": "^6.1.7", "husky": "^5.0.9" } } From 2beeb0690aaca9c1a127cccf461fd23b50bec465 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 22:17:03 +0000 Subject: [PATCH 103/108] Bump picomatch from 2.3.1 to 2.3.2 Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2. - [Release notes](https://github.com/micromatch/picomatch/releases) - [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2) --- updated-dependencies: - dependency-name: picomatch dependency-version: 2.3.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 09e18d2..25e1e5d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,7 +40,6 @@ "integrity": "sha512-oozXk7ZO1RAd/KLFLkKOhqTcG4GO3CV44WwOFg2gMcCsqCUTarvMT7xERIoWW2WurKbB0/ce+98r01p8xPOlBw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "asciidoctor-opal-runtime": "0.3.3", "unxhr": "1.0.1" @@ -438,7 +437,6 @@ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -2144,9 +2142,9 @@ "license": "MIT" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "dev": true, "license": "MIT", "engines": { From 261ccc182f20c6ead54128357e4845e6e8e5cb20 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Apr 2026 03:25:36 +0000 Subject: [PATCH 104/108] Bump lodash from 4.17.23 to 4.18.1 Bumps [lodash](https://github.com/lodash/lodash) from 4.17.23 to 4.18.1. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.23...4.18.1) --- updated-dependencies: - dependency-name: lodash dependency-version: 4.18.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 09e18d2..c68ad37 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,7 +40,6 @@ "integrity": "sha512-oozXk7ZO1RAd/KLFLkKOhqTcG4GO3CV44WwOFg2gMcCsqCUTarvMT7xERIoWW2WurKbB0/ce+98r01p8xPOlBw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "asciidoctor-opal-runtime": "0.3.3", "unxhr": "1.0.1" @@ -438,7 +437,6 @@ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -1802,9 +1800,9 @@ "license": "MIT" }, "node_modules/lodash": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", - "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", "dev": true, "license": "MIT" }, From af293beba06527917144122f7059c1c83df42988 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 23 May 2026 13:33:33 +0000 Subject: [PATCH 105/108] Bump qs from 6.15.0 to 6.15.2 Bumps [qs](https://github.com/ljharb/qs) from 6.15.0 to 6.15.2. - [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md) - [Commits](https://github.com/ljharb/qs/compare/v6.15.0...v6.15.2) --- updated-dependencies: - dependency-name: qs dependency-version: 6.15.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 09e18d2..7587fab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,7 +40,6 @@ "integrity": "sha512-oozXk7ZO1RAd/KLFLkKOhqTcG4GO3CV44WwOFg2gMcCsqCUTarvMT7xERIoWW2WurKbB0/ce+98r01p8xPOlBw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "asciidoctor-opal-runtime": "0.3.3", "unxhr": "1.0.1" @@ -438,7 +437,6 @@ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -2169,9 +2167,9 @@ } }, "node_modules/qs": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.0.tgz", - "integrity": "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==", + "version": "6.15.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.2.tgz", + "integrity": "sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { From aef050d3cac1d1f27950713eedcf04ce9c5048ce Mon Sep 17 00:00:00 2001 From: MahboubehSeyedpour Date: Wed, 22 Jul 2026 15:53:45 +0330 Subject: [PATCH 106/108] Add git restore as alternative to git checkout -- --- tips.json | 1 + 1 file changed, 1 insertion(+) diff --git a/tips.json b/tips.json index 5b46f75..4297fcf 100644 --- a/tips.json +++ b/tips.json @@ -135,6 +135,7 @@ { "title": "Undo local changes with the content in index(staging)", "tip": "git checkout -- ", + "alternatives": ["git restore "], "category": "Basic Operations" }, { From 973568a529a045cf27387238345b44f35156407b Mon Sep 17 00:00:00 2001 From: hemanth Date: Sun, 9 Aug 2026 23:00:45 -0700 Subject: [PATCH 107/108] feat: add 25 modern Git tips and auto-update README workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add tips for sparse-checkout, git maintenance, range-diff, SSH signing, git bundle, bisect automation, rerere, partial clones, worktree management, stash enhancements, and more (175 → 200 tips) - Add GitHub Actions workflow to auto-regenerate README.md when tips.json changes --- .github/workflows/update-readme.yml | 40 ++++++ README.md | 202 ++++++++++++++++++++++++++++ tips.json | 164 ++++++++++++++++++++++ 3 files changed, 406 insertions(+) create mode 100644 .github/workflows/update-readme.yml diff --git a/.github/workflows/update-readme.yml b/.github/workflows/update-readme.yml new file mode 100644 index 0000000..e4e335a --- /dev/null +++ b/.github/workflows/update-readme.yml @@ -0,0 +1,40 @@ +name: Update README + +on: + push: + branches: + - master + paths: + - 'tips.json' + +jobs: + update-readme: + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + + - name: Install Dependencies + run: npm ci + + - name: Generate README + run: node build-readme.js + + - name: Check for changes + id: diff + run: | + git diff --quiet README.md docs/ || echo "changed=true" >> $GITHUB_OUTPUT + + - name: Commit and push updated README + if: steps.diff.outputs.changed == 'true' + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add README.md docs/ + git commit -m "docs: auto-generate README and docs from tips.json [skip ci]" + git push diff --git a/README.md b/README.md index d3e54d9..7ebaace 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,10 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Push a new local branch to remote repository and track](#push-a-new-local-branch-to-remote-repository-and-track) * [Update a submodule to the latest commit](#update-a-submodule-to-the-latest-commit) * [Duplicating a repository](#duplicating-a-repository) + * [Sparse checkout: clone only specific directories](#sparse-checkout-clone-only-specific-directories) + * [Show output in columns](#show-output-in-columns) + * [List worktrees](#list-worktrees) + * [Remove a worktree](#remove-a-worktree) * [Branching](#branching) * [List all branches that are already merged into master](#list-all-branches-that-are-already-merged-into-master) * [Remove branches that have already been merged with master](#remove-branches-that-have-already-been-merged-with-master) @@ -118,6 +122,15 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Exclude author from logs](#exclude-author-from-logs) * [View expanded details of changes in last commit](#view-expanded-details-of-changes-in-last-commit) * [Visualize each position of HEAD in the last 30 days](#visualize-each-position-of-head-in-the-last-30-days) + * [Compare two versions of a rebased branch](#compare-two-versions-of-a-rebased-branch) + * [Automate bisect with a test script](#automate-bisect-with-a-test-script) + * [Blame with line range](#blame-with-line-range) + * [Detect moved or copied lines in blame](#detect-moved-or-copied-lines-in-blame) + * [Log with graph in oneline format](#log-with-graph-in-oneline-format) + * [Find commits where a file was deleted](#find-commits-where-a-file-was-deleted) + * [Show commit count per author per time period](#show-commit-count-per-author-per-time-period) + * [Verify commit signatures](#verify-commit-signatures) + * [Show diff with word-level granularity using color](#show-diff-with-word-level-granularity-using-color) * [Merging and Rebasing](#merging-and-rebasing) * [Rebases 'feature' to 'master' and merges it in to master ](#rebases-feature-to-master-and-merges-it-in-to-master-) * [Stash changes before rebasing](#stash-changes-before-rebasing) @@ -125,6 +138,8 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Change previous two commits with an interactive rebase.](#change-previous-two-commits-with-an-interactive-rebase) * [Find common ancestor of two branches](#find-common-ancestor-of-two-branches) * [Change a branch base](#change-a-branch-base) + * [Create a fixup commit and auto-squash](#create-a-fixup-commit-and-auto-squash) + * [Rebase interactively from the root commit](#rebase-interactively-from-the-root-commit) * [Miscellaneous](#miscellaneous) * [Everyday Git in twenty commands or so](#everyday-git-in-twenty-commands-or-so) * [Untrack files without deleting](#untrack-files-without-deleting) @@ -144,6 +159,9 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [List all currently configured remotes](#list-all-currently-configured-remotes) * [List references in a remote repository](#list-references-in-a-remote-repository) * [Refresh the list of remote branches](#refresh-the-list-of-remote-branches) + * [Create a bundle file for offline sharing](#create-a-bundle-file-for-offline-sharing) + * [Clone from a bundle file](#clone-from-a-bundle-file) + * [Partial clone: clone without blobs for faster fetch](#partial-clone-clone-without-blobs-for-faster-fetch) * [Setup and Config](#setup-and-config) * [Remove sensitive data from history, after a push](#remove-sensitive-data-from-history-after-a-push) * [Reset author, after author has been changed in the global config.](#reset-author-after-author-has-been-changed-in-the-global-config) @@ -165,6 +183,10 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Use SSH instead of HTTPs for remotes](#use-ssh-instead-of-https-for-remotes) * [Prevent auto replacing LF with CRLF](#prevent-auto-replacing-lf-with-crlf) * [Edit config for each level](#edit-config-for-each-level) + * [Enable background maintenance for faster operations](#enable-background-maintenance-for-faster-operations) + * [Sign commits with SSH key instead of GPG](#sign-commits-with-ssh-key-instead-of-gpg) + * [Enable rerere to auto-resolve recurring merge conflicts](#enable-rerere-to-auto-resolve-recurring-merge-conflicts) + * [Set default branch name for new repos](#set-default-branch-name-for-new-repos) * [Stashing](#stashing) * [Saving current state of tracked files without committing](#saving-current-state-of-tracked-files-without-committing) * [Saving current state of unstaged changes to tracked files](#saving-current-state-of-unstaged-changes-to-tracked-files) @@ -176,6 +198,9 @@ P.S: All these commands are tested on `git version 2.7.4 (Apple Git-66)`. * [Apply any stash without deleting from the stashed list](#apply-any-stash-without-deleting-from-the-stashed-list) * [Apply last stashed state and delete it from stashed list](#apply-last-stashed-state-and-delete-it-from-stashed-list) * [Delete all stored stashes](#delete-all-stored-stashes) + * [Stash only unstaged changes](#stash-only-unstaged-changes) + * [Stash specific files](#stash-specific-files) + * [Show a diffstat summary of a stash](#show-a-diffstat-summary-of-a-stash) * [Submodules and Subtrees](#submodules-and-subtrees) * [Update all the submodules](#update-all-the-submodules) * [Deploying git tracked subfolder to gh-pages](#deploying-git-tracked-subfolder-to-gh-pages) @@ -493,6 +518,34 @@ git clone --bare https://github.com/exampleuser/old-repository.git git push --mirror https://github.com/exampleuser/new-repository.git ``` +### Sparse checkout: clone only specific directories +```sh +git clone --filter=blob:none --sparse && cd && git sparse-checkout set +``` + +### Show output in columns +```sh +git branch --column +``` +**Alternatives:** +```sh +git tag --column +``` + +### List worktrees +```sh +git worktree list +``` + +### Remove a worktree +```sh +git worktree remove +``` +**Alternatives:** +```sh +git worktree prune +``` + ## Branching ### List all branches that are already merged into master @@ -824,6 +877,79 @@ git show git reflog ``` +### Compare two versions of a rebased branch +```sh +git range-diff .. .. +``` +**Alternatives:** +```sh +git range-diff ... +``` + +### Automate bisect with a test script +```sh +git bisect start && git bisect run