Git diff: ignore lines starting with a word
As I have learned here, we can tell git diff
to ignore lines starting with a *
using:
git diff -G '^[[:space:]]*[^[:space:]*]'
How do I tell git to ignore lines starting with a word, or more (for example: * Generated at
), not just a character?
This file shall be ignored, it contains only trivial changes:
- * Generated at 2018-11-21
+ * Generated at 2018-11-23
This file shall NOT be ignored, it contains NOT only trivial changes:
- * Generated at 2018-11-21
+ * Generated at 2018-11-23
+ * This line is important! Although it starts with a *
regex git git-diff
add a comment |
As I have learned here, we can tell git diff
to ignore lines starting with a *
using:
git diff -G '^[[:space:]]*[^[:space:]*]'
How do I tell git to ignore lines starting with a word, or more (for example: * Generated at
), not just a character?
This file shall be ignored, it contains only trivial changes:
- * Generated at 2018-11-21
+ * Generated at 2018-11-23
This file shall NOT be ignored, it contains NOT only trivial changes:
- * Generated at 2018-11-21
+ * Generated at 2018-11-23
+ * This line is important! Although it starts with a *
regex git git-diff
Probably a dupe of ignoring changes matching a string in git diff
– Wiktor Stribiżew
Nov 23 '18 at 18:30
add a comment |
As I have learned here, we can tell git diff
to ignore lines starting with a *
using:
git diff -G '^[[:space:]]*[^[:space:]*]'
How do I tell git to ignore lines starting with a word, or more (for example: * Generated at
), not just a character?
This file shall be ignored, it contains only trivial changes:
- * Generated at 2018-11-21
+ * Generated at 2018-11-23
This file shall NOT be ignored, it contains NOT only trivial changes:
- * Generated at 2018-11-21
+ * Generated at 2018-11-23
+ * This line is important! Although it starts with a *
regex git git-diff
As I have learned here, we can tell git diff
to ignore lines starting with a *
using:
git diff -G '^[[:space:]]*[^[:space:]*]'
How do I tell git to ignore lines starting with a word, or more (for example: * Generated at
), not just a character?
This file shall be ignored, it contains only trivial changes:
- * Generated at 2018-11-21
+ * Generated at 2018-11-23
This file shall NOT be ignored, it contains NOT only trivial changes:
- * Generated at 2018-11-21
+ * Generated at 2018-11-23
+ * This line is important! Although it starts with a *
regex git git-diff
regex git git-diff
edited Nov 23 '18 at 18:40
sergej
asked Nov 23 '18 at 18:26
sergejsergej
9,86042157
9,86042157
Probably a dupe of ignoring changes matching a string in git diff
– Wiktor Stribiżew
Nov 23 '18 at 18:30
add a comment |
Probably a dupe of ignoring changes matching a string in git diff
– Wiktor Stribiżew
Nov 23 '18 at 18:30
Probably a dupe of ignoring changes matching a string in git diff
– Wiktor Stribiżew
Nov 23 '18 at 18:30
Probably a dupe of ignoring changes matching a string in git diff
– Wiktor Stribiżew
Nov 23 '18 at 18:30
add a comment |
2 Answers
2
active
oldest
votes
Considering you are ignoring changes that does NOT match your regex, you just have to put the words you want inside the expression within a lookahead capture group, like this:
git diff -G '^(?=.*Generated at)[[:space:]]*[^[:space:]*]'
Note that if you want to keep adding words to ignore, just keep adding these groups (don't forget the .*
):
However, if the string contains a "Generated at" anywhere in their whole, it shall be ignored. If you want to define exactly how it should start, then replace the .
with a [^[:word:]]
.
git diff -G '^(?=[^[:word:]]*Generated at)[[:space:]]*[^[:space:]*]'
You can have a look at it's behaviour at
Version 1: .*
https://regex101.com/r/kdv4V0/1
Version 2: [^[:word:]]*
https://regex101.com/r/kdv4V0/2
Thanks for your answer. However, git version 2.7.4 seems not to support this regex, I am gettingfatal: invalid regex: Invalid preceding regular expression
.
– sergej
Nov 24 '18 at 10:20
add a comment |
Git is using POSIX regular expressions which seem not to support lookarounds. That is the reason why @Myys 3's approach does not work. A not so elegant workaround could be something like this:
git diff -G '^s*([^s*]|*s*[^sG]|*sG[^e]|*sGe[^n]|*sGen[^e]|*sGene[^r]|*sGener[^a]|*sGenera[^t]|*sGenerat[^e]|*sGenerate[^d]).*'
This will filter out all changes starting with "* Generated
".
Test: https://regex101.com/r/kdv4V0/3
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53451455%2fgit-diff-ignore-lines-starting-with-a-word%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Considering you are ignoring changes that does NOT match your regex, you just have to put the words you want inside the expression within a lookahead capture group, like this:
git diff -G '^(?=.*Generated at)[[:space:]]*[^[:space:]*]'
Note that if you want to keep adding words to ignore, just keep adding these groups (don't forget the .*
):
However, if the string contains a "Generated at" anywhere in their whole, it shall be ignored. If you want to define exactly how it should start, then replace the .
with a [^[:word:]]
.
git diff -G '^(?=[^[:word:]]*Generated at)[[:space:]]*[^[:space:]*]'
You can have a look at it's behaviour at
Version 1: .*
https://regex101.com/r/kdv4V0/1
Version 2: [^[:word:]]*
https://regex101.com/r/kdv4V0/2
Thanks for your answer. However, git version 2.7.4 seems not to support this regex, I am gettingfatal: invalid regex: Invalid preceding regular expression
.
– sergej
Nov 24 '18 at 10:20
add a comment |
Considering you are ignoring changes that does NOT match your regex, you just have to put the words you want inside the expression within a lookahead capture group, like this:
git diff -G '^(?=.*Generated at)[[:space:]]*[^[:space:]*]'
Note that if you want to keep adding words to ignore, just keep adding these groups (don't forget the .*
):
However, if the string contains a "Generated at" anywhere in their whole, it shall be ignored. If you want to define exactly how it should start, then replace the .
with a [^[:word:]]
.
git diff -G '^(?=[^[:word:]]*Generated at)[[:space:]]*[^[:space:]*]'
You can have a look at it's behaviour at
Version 1: .*
https://regex101.com/r/kdv4V0/1
Version 2: [^[:word:]]*
https://regex101.com/r/kdv4V0/2
Thanks for your answer. However, git version 2.7.4 seems not to support this regex, I am gettingfatal: invalid regex: Invalid preceding regular expression
.
– sergej
Nov 24 '18 at 10:20
add a comment |
Considering you are ignoring changes that does NOT match your regex, you just have to put the words you want inside the expression within a lookahead capture group, like this:
git diff -G '^(?=.*Generated at)[[:space:]]*[^[:space:]*]'
Note that if you want to keep adding words to ignore, just keep adding these groups (don't forget the .*
):
However, if the string contains a "Generated at" anywhere in their whole, it shall be ignored. If you want to define exactly how it should start, then replace the .
with a [^[:word:]]
.
git diff -G '^(?=[^[:word:]]*Generated at)[[:space:]]*[^[:space:]*]'
You can have a look at it's behaviour at
Version 1: .*
https://regex101.com/r/kdv4V0/1
Version 2: [^[:word:]]*
https://regex101.com/r/kdv4V0/2
Considering you are ignoring changes that does NOT match your regex, you just have to put the words you want inside the expression within a lookahead capture group, like this:
git diff -G '^(?=.*Generated at)[[:space:]]*[^[:space:]*]'
Note that if you want to keep adding words to ignore, just keep adding these groups (don't forget the .*
):
However, if the string contains a "Generated at" anywhere in their whole, it shall be ignored. If you want to define exactly how it should start, then replace the .
with a [^[:word:]]
.
git diff -G '^(?=[^[:word:]]*Generated at)[[:space:]]*[^[:space:]*]'
You can have a look at it's behaviour at
Version 1: .*
https://regex101.com/r/kdv4V0/1
Version 2: [^[:word:]]*
https://regex101.com/r/kdv4V0/2
answered Nov 23 '18 at 20:06
Myys 3Myys 3
213
213
Thanks for your answer. However, git version 2.7.4 seems not to support this regex, I am gettingfatal: invalid regex: Invalid preceding regular expression
.
– sergej
Nov 24 '18 at 10:20
add a comment |
Thanks for your answer. However, git version 2.7.4 seems not to support this regex, I am gettingfatal: invalid regex: Invalid preceding regular expression
.
– sergej
Nov 24 '18 at 10:20
Thanks for your answer. However, git version 2.7.4 seems not to support this regex, I am getting
fatal: invalid regex: Invalid preceding regular expression
.– sergej
Nov 24 '18 at 10:20
Thanks for your answer. However, git version 2.7.4 seems not to support this regex, I am getting
fatal: invalid regex: Invalid preceding regular expression
.– sergej
Nov 24 '18 at 10:20
add a comment |
Git is using POSIX regular expressions which seem not to support lookarounds. That is the reason why @Myys 3's approach does not work. A not so elegant workaround could be something like this:
git diff -G '^s*([^s*]|*s*[^sG]|*sG[^e]|*sGe[^n]|*sGen[^e]|*sGene[^r]|*sGener[^a]|*sGenera[^t]|*sGenerat[^e]|*sGenerate[^d]).*'
This will filter out all changes starting with "* Generated
".
Test: https://regex101.com/r/kdv4V0/3
add a comment |
Git is using POSIX regular expressions which seem not to support lookarounds. That is the reason why @Myys 3's approach does not work. A not so elegant workaround could be something like this:
git diff -G '^s*([^s*]|*s*[^sG]|*sG[^e]|*sGe[^n]|*sGen[^e]|*sGene[^r]|*sGener[^a]|*sGenera[^t]|*sGenerat[^e]|*sGenerate[^d]).*'
This will filter out all changes starting with "* Generated
".
Test: https://regex101.com/r/kdv4V0/3
add a comment |
Git is using POSIX regular expressions which seem not to support lookarounds. That is the reason why @Myys 3's approach does not work. A not so elegant workaround could be something like this:
git diff -G '^s*([^s*]|*s*[^sG]|*sG[^e]|*sGe[^n]|*sGen[^e]|*sGene[^r]|*sGener[^a]|*sGenera[^t]|*sGenerat[^e]|*sGenerate[^d]).*'
This will filter out all changes starting with "* Generated
".
Test: https://regex101.com/r/kdv4V0/3
Git is using POSIX regular expressions which seem not to support lookarounds. That is the reason why @Myys 3's approach does not work. A not so elegant workaround could be something like this:
git diff -G '^s*([^s*]|*s*[^sG]|*sG[^e]|*sGe[^n]|*sGen[^e]|*sGene[^r]|*sGener[^a]|*sGenera[^t]|*sGenerat[^e]|*sGenerate[^d]).*'
This will filter out all changes starting with "* Generated
".
Test: https://regex101.com/r/kdv4V0/3
answered Nov 25 '18 at 21:04
sergejsergej
9,86042157
9,86042157
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53451455%2fgit-diff-ignore-lines-starting-with-a-word%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Probably a dupe of ignoring changes matching a string in git diff
– Wiktor Stribiżew
Nov 23 '18 at 18:30