Ссылки: - Git курс (playlist): ruclips.net/video/W4hoc24K93E/видео.html - Git разное (playlist): ruclips.net/video/8HxTHPkdedA/видео.html - Учебник и курсы по JavaScript и смежных технологиям: learn.javascript.ru
Это дейтсвительно сейчас, наверное, лучший курс, который эффективно может научить использовать гит в 99% случаев, с которыми сталкивается типичный разработчик. Но, к сожалению, он не дает понимания того что такое гит. Более того, в некоторых случаях неверно интерпретирует его части, что совершенно не мешает преподать верные модели поведения с ним. И конечно нисколько не уменьшает его ценности. В конечно итоге для многих важен результат. Но если есть желание понять всю сермяжную правду git то рекомендую найти на просторах интернета лекции Сергея Сергеева. Они не дадут вам того опыта использования Git как это сделано в этом курсе. Этому курсу, лишний раз подчеркну, действительно нет равных, но они дадут четкое понимание того что такое Git и как он работает. И уже через эту призму станут очевидными многие вопросы относительно того - почему это делается так или как это можно сделать иначе. Как пример - в Git нет никаких веток. То что многие привыкли считать ветками, это всего лишь указатель на определенный комит. И все. В гите нет никакой возможности сказать что вот этот набор коммитов принадлежит вот этой так называемой ветке. Или вот этой. Потому что всегда можно создать ситуацию, где цепочка связанных комитов будет допускать ветвления, и никакой информации о том, куда нам - налево или направо в гите не существует. Да и ненужно ему это. Ну и самое главное, комит это не единственный обьект в гите. И если я ничего не забыл такие команды как коммит или бранч и тд, появились совсем недавно. Иначе говоря их не было в первых версиях. Как же тогда этим всем пользовались? Вот лекции Сергеева дают ответ на этот вопрос. Гит прекрасен хотябы потому, что им можно пользоваться не зная ни одной git комманды.
5:20 сравнение командой diff с тремя точками 6:30 демонстрация 8:51 9:39 схема работы разных команд git diff на картинке 9:46 git diff -v 10:50 11:05 11:53 флаг --name-only 12:03 двойной дефис перед путями 12:46 Итог 15:53 сравнение вообще любых файлов, независимо от git
С одной стороны полезно знать эти команды, но, как же круто что расширение ESLint для VSCode показывает все варианты диффов супер-наглядно + далеко лезть для этого не приходится
🎯 Key points for quick navigation: 00:14 *📊 Git diff command overview* - Overview of `git diff` command for comparing commits or files. - Explanation of comparing project states using identifiers or references like branch names. - Detailed breakdown of output structure and its components. 00:58 *📄 Structure and details in `git diff` output* - Each file comparison in `git diff` has a distinct block structure. - Explanation of headers and their significance in showing file changes. - Insight into how differences within files are displayed using deletion and addition markers. 03:40 *🔄 Handling script file comparisons in `git diff`* - Analysis of script file comparisons using `git diff`. - Explanation of line-by-line changes and their impact on script functionality. - Introduction to the concept of "hunks" and their role in summarizing script modifications. 04:37 *🔍 Regular expressions in `git diff`* - Explanation of the limitations of regular expressions in programming languages. - Usage of headers in `git diff` output to provide additional context. - Insight into how changes are listed and potential scenarios where no changes are present. 05:17 *🔄 Syntax variations in `git diff`* - Comparison of syntax options (`git diff master..feature` vs `git diff master...feature`) and their identical functionality. - Explanation of how to use these commands effectively to track changes between branches. - Practical examples demonstrating comparisons between branches and commits. 06:29 *🔄 Comparing working directory with index in `git diff`* - Differentiation between `git diff` and `git diff --cached` (or `git diff --staged`) commands. - Use cases for comparing changes in the working directory against the index. - Illustration of how each command handles tracked and untracked files differently. 09:00 *🔄 Comparing changes with `git diff --cached`* - Demonstrates how to compare the working directory with the index using `git diff --cached` or `git diff --staged`. - Explains the practical application of specifying a commit for comparison and its typical omission. - Shows a visual representation of differences using the staging area and its impact on the commit message editing process. 10:08 *📝 Commit message editing with `git commit`* - Details how to edit commit messages using the `-v` flag in `git commit`. - Discusses the usage of comments in commit messages and their handling by Git. - Shows how to configure Git to always display changes in the commit message editor. 11:16 *📄 Limiting `git diff` to specific files or directories* - Explains how to restrict `git diff` output to specific files (`index.html`, `news`) or the current directory. - Introduces usage scenarios for comparing only specified files or directories, enhancing focus on relevant changes. - Highlights the use of double dashes (`--`) for safer path specification to avoid ambiguity in Git commands. 13:33 *🔄 Understanding different uses of `git diff`* - Explores various forms of `git diff`, including `git diff --cached`, which compares the working directory with the index. - Introduces `git diff HEAD`, commonly used to review changes since the last commit. - Discusses the flexibility of specifying paths in `git diff` commands and the use of `--` to avoid conflicts with branch names or options. 14:30 *📊 Advanced options in `git diff`* - Details how to limit `git diff` output to specific directories or files using path specifications. - Highlights the use of `--` for disambiguating paths and preventing conflicts with Git identifiers. - Introduces the `--name-only` flag to list paths without showing actual differences, facilitating selective review of changes. 15:41 *📄 Specialized comparisons with `git diff`* - Explores specialized comparisons in `git diff`, such as comparing individual files across different commits. - Introduces the `git diff --no-index` option for comparing files outside the Git repository structure. - Demonstrates the syntax for comparing specific file paths between commits, offering precise control over comparison targets. Made with HARPA AI
Не совсем понятна ситуация с git diff. Если мы сравниваем рабочую директорию и индекс, то почему упоминается сам Repository (HEAD) и приводится сравнение, что "если индекс и Repository (HEAD) одинаковы, то git diff HEAD это то же самое, что и git diff"?
Реально как в кружок по выразительному чтению попал. Пытаешься слушать объяснение а слышишь какие-то полоумные возгласы. Даже цыгане так не делают когда втюхивают свой фуфел а тут казалось бы нечего втюхивать но подается как стремнейший фуфел.
Ссылки:
- Git курс (playlist): ruclips.net/video/W4hoc24K93E/видео.html
- Git разное (playlist): ruclips.net/video/8HxTHPkdedA/видео.html
- Учебник и курсы по JavaScript и смежных технологиям: learn.javascript.ru
Кто дизлайк поставил? По мне так это самый понятный курс по гит, который я встречал. Каждый раз пересматривая, убеждаюсь в этом.
Абсолютно согласен! Лучший курс по git!
Спасибо! Узнал для себя очень много нового, хотя в своих проектах использую git уже несколько лет. Пожалуй, лучший курс по git!
Это дейтсвительно сейчас, наверное, лучший курс, который эффективно может научить использовать гит в 99% случаев, с которыми сталкивается типичный разработчик.
Но, к сожалению, он не дает понимания того что такое гит. Более того, в некоторых случаях неверно интерпретирует его части, что совершенно не мешает преподать верные модели поведения с ним. И конечно нисколько не уменьшает его ценности.
В конечно итоге для многих важен результат.
Но если есть желание понять всю сермяжную правду git то рекомендую найти на просторах интернета лекции Сергея Сергеева.
Они не дадут вам того опыта использования Git как это сделано в этом курсе. Этому курсу, лишний раз подчеркну, действительно нет равных, но они дадут четкое понимание того что такое Git и как он работает. И уже через эту призму станут очевидными многие вопросы относительно того - почему это делается так или как это можно сделать иначе.
Как пример - в Git нет никаких веток. То что многие привыкли считать ветками, это всего лишь указатель на определенный комит. И все. В гите нет никакой возможности сказать что вот этот набор коммитов принадлежит вот этой так называемой ветке. Или вот этой. Потому что всегда можно создать ситуацию, где цепочка связанных комитов будет допускать ветвления, и никакой информации о том, куда нам - налево или направо в гите не существует. Да и ненужно ему это.
Ну и самое главное, комит это не единственный обьект в гите. И если я ничего не забыл такие команды как коммит или бранч и тд, появились совсем недавно. Иначе говоря их не было в первых версиях. Как же тогда этим всем пользовались? Вот лекции Сергеева дают ответ на этот вопрос.
Гит прекрасен хотябы потому, что им можно пользоваться не зная ни одной git комманды.
5:20 сравнение командой diff с тремя точками
6:30 демонстрация
8:51
9:39 схема работы разных команд git diff на картинке
9:46 git diff -v 10:50
11:05
11:53 флаг --name-only
12:03 двойной дефис перед путями
12:46 Итог
15:53 сравнение вообще любых файлов, независимо от git
Спасибо большое за простое и понятное объяснение)
Спасибо! Очень структурировано и информативно
Спасибо! Шикарные видео по git!
С одной стороны полезно знать эти команды, но, как же круто что расширение ESLint для VSCode показывает все варианты диффов супер-наглядно + далеко лезть для этого не приходится
🎯 Key points for quick navigation:
00:14 *📊 Git diff command overview*
- Overview of `git diff` command for comparing commits or files.
- Explanation of comparing project states using identifiers or references like branch names.
- Detailed breakdown of output structure and its components.
00:58 *📄 Structure and details in `git diff` output*
- Each file comparison in `git diff` has a distinct block structure.
- Explanation of headers and their significance in showing file changes.
- Insight into how differences within files are displayed using deletion and addition markers.
03:40 *🔄 Handling script file comparisons in `git diff`*
- Analysis of script file comparisons using `git diff`.
- Explanation of line-by-line changes and their impact on script functionality.
- Introduction to the concept of "hunks" and their role in summarizing script modifications.
04:37 *🔍 Regular expressions in `git diff`*
- Explanation of the limitations of regular expressions in programming languages.
- Usage of headers in `git diff` output to provide additional context.
- Insight into how changes are listed and potential scenarios where no changes are present.
05:17 *🔄 Syntax variations in `git diff`*
- Comparison of syntax options (`git diff master..feature` vs `git diff master...feature`) and their identical functionality.
- Explanation of how to use these commands effectively to track changes between branches.
- Practical examples demonstrating comparisons between branches and commits.
06:29 *🔄 Comparing working directory with index in `git diff`*
- Differentiation between `git diff` and `git diff --cached` (or `git diff --staged`) commands.
- Use cases for comparing changes in the working directory against the index.
- Illustration of how each command handles tracked and untracked files differently.
09:00 *🔄 Comparing changes with `git diff --cached`*
- Demonstrates how to compare the working directory with the index using `git diff --cached` or `git diff --staged`.
- Explains the practical application of specifying a commit for comparison and its typical omission.
- Shows a visual representation of differences using the staging area and its impact on the commit message editing process.
10:08 *📝 Commit message editing with `git commit`*
- Details how to edit commit messages using the `-v` flag in `git commit`.
- Discusses the usage of comments in commit messages and their handling by Git.
- Shows how to configure Git to always display changes in the commit message editor.
11:16 *📄 Limiting `git diff` to specific files or directories*
- Explains how to restrict `git diff` output to specific files (`index.html`, `news`) or the current directory.
- Introduces usage scenarios for comparing only specified files or directories, enhancing focus on relevant changes.
- Highlights the use of double dashes (`--`) for safer path specification to avoid ambiguity in Git commands.
13:33 *🔄 Understanding different uses of `git diff`*
- Explores various forms of `git diff`, including `git diff --cached`, which compares the working directory with the index.
- Introduces `git diff HEAD`, commonly used to review changes since the last commit.
- Discusses the flexibility of specifying paths in `git diff` commands and the use of `--` to avoid conflicts with branch names or options.
14:30 *📊 Advanced options in `git diff`*
- Details how to limit `git diff` output to specific directories or files using path specifications.
- Highlights the use of `--` for disambiguating paths and preventing conflicts with Git identifiers.
- Introduces the `--name-only` flag to list paths without showing actual differences, facilitating selective review of changes.
15:41 *📄 Specialized comparisons with `git diff`*
- Explores specialized comparisons in `git diff`, such as comparing individual files across different commits.
- Introduces the `git diff --no-index` option for comparing files outside the Git repository structure.
- Demonstrates the syntax for comparing specific file paths between commits, offering precise control over comparison targets.
Made with HARPA AI
Спасибо за урок
Не совсем понятна ситуация с git diff. Если мы сравниваем рабочую директорию и индекс, то почему упоминается сам Repository (HEAD) и приводится сравнение, что "если индекс и Repository (HEAD) одинаковы, то git diff HEAD это то же самое, что и git diff"?
спасибо
OK!
Реально как в кружок по выразительному чтению попал. Пытаешься слушать объяснение а слышишь какие-то полоумные возгласы. Даже цыгане так не делают когда втюхивают свой фуфел а тут казалось бы нечего втюхивать но подается как стремнейший фуфел.