GIT - Найти все файлы, зафиксированные в локальной ветке - PullRequest
0 голосов
/ 10 апреля 2020

Я работаю над проектом, и мне нужно идентифицировать все файлы, измененные / зафиксированные в локальной ветке в GIT. Ищете простой способ, который может go пройти через все коммиты и извлечь файлы, зафиксированные в ветке.

Ответы [ 4 ]

1 голос
/ 10 апреля 2020

Вы ищете git diff --name-only.

Требуется два параметра. Первым будет название вашей ветки. Вторым будет SHA в точке, где ветвь ответвляется от родительской ветки. Если вы не знаете, что это такое, git merge-base скажет вам.

Пример (здесь develop - это общая рабочая ветвь, mybranch - моя собственная):

$ git merge-base mybranch develop
4e5e735e9656dcf34a99827af6c2660a6c796d6f
$ git diff --name-only mybranch 4e5e73

Вы увидите список имен, которые вы ищете.

0 голосов
/ 10 апреля 2020

Это может сработать. Пожалуйста, попробуйте это:

git log| grep commit | tr 'commit' ' ' | while read -r line ; do  echo "Processing $line"; git show --pretty="" --name-only $line; done

PS: Игнорировать фатальные строки, которые поступают из журнала git с ответом типа «Первоначальная фиксация», а не с идентификаторами коммитов, которые здесь не имеют значения.

0 голосов
/ 10 апреля 2020

Если я понимаю ваше требование, вам понадобится разница между локальным репо и удаленным репо.

Давайте посмотрим, что отличается от нашего последнего коммита локального репо с удаленного репо, используя git Команда diff (diff локального репо с удаленным репо).

$ git diff HEAD origin/HEAD

Редактировать 1: В соответствии с вашим комментарием к этому ответу, попробуйте это, если вас интересует только список имен.

git diff --name-only HEAD origin/master
0 голосов
/ 10 апреля 2020

Вы можете использовать следующую команду

git log

Это покажет вам историю коммитов ветки, в которой вы находитесь, например:

commit a1b2c3d4e5 (feature/example-branch)
Author: exampleauthor <example@gmail.com>
Date:   Thu Mar 26 10:23:31 2020 -0300

    [REPO-3333] Example pull request (#333)

После этого вы можете использовать git cherry-pick (код коммита) для извлечения коммитов в новую ветку. Я использую это, когда я что-то сломал, и я не знаю где.

Надеюсь, это поможет вам :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...