From b3cb087c3462d724dc3e8cf3a7ef7ece6f7d76b9 Mon Sep 17 00:00:00 2001 From: alizduwal Date: Wed, 20 Mar 2019 13:48:45 +0545 Subject: [PATCH 01/29] 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 02/29] 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 03/29] 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 04/29] 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 05/29] [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 06/29] 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 07/29] 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 08/29] 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 09/29] 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 10/29] 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 11/29] 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 12/29] 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 13/29] 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 14/29] 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 15/29] 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 16/29] 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 17/29] 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 18/29] 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 19/29] 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 20/29] 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 21/29] 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 22/29] 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 23/29] 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 24/29] 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 25/29] 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 26/29] 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 27/29] 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 28/29] 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 29/29] 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" }, {