Git локальные изменения / diff / JGIT

Я застрял в следующей проблеме:

Это то, что я хочу:

  • команда git, которую я могу использовать, чтобы показать изменения 'US'
  • он должен работать как статус, (показать, что я сделал) в сравнении с удаленным

Вот что я попробовал:

  1. git diff [в JGit -> diffentry] со множеством опций, например, master.branchName
  2. Я попытался найти команду git status, которая работает с 2 коммитами.
  3. Я просмотрел все методы diffEntry[JGIT], чтобы найти метод для получения желаемого результата.
  4. Я погуглил методы JGit, которые покажут мне желаемый результат

    To 1. -> Проблема в том, что: когда я изменяю файл на удаленном компьютере, команда git diff показывает файл как 'M' для измененного, но пользователь не изменил его, это может быть правдой, но это не то, что я ищу

    Для 2. -> git Status - это то, что я хотел бы использовать, потому что он показывает именно то, что я хочу.... но только от индекса к голове...

Для чего?

Мне нужен список из всех файлов, которые Пользователь изменил / добавил / удалил, чтобы я мог перебирать его и помещать информацию заголовка в каждый файл, непосредственно перед тем, как он нажмет на файл.

Как рабочий процесс?

Я клонирую ветку, делаю N-коммиты и теперь хочу нажать. Каждый файл в этом N-коммитах должен быть изменен. (и это проблема с этим измененным, если он изменен в удаленной ветке, но не локально, чем я не должен касаться его своим сценарием, но у меня нет способа провести различие между этими двумя)

€ dit: дополнительная информация

git diff-index делает почти то, что я хочу. Проблема: мне нужно отфильтровать только "наши" изменения. Так что, если файл изменен на удаленном компьютере, я не хочу его видеть. Я хочу увидеть мои измененные файлы.

1 ответ

Если вы хотите видеть изменения только на своей стороне, вы должны обновить индекс до того, как начнете сравнивать, поэтому запустите git fetch <remote> <branch> и ваше дерево индексов будет обновлено, после этого вы можете запустить git diff-index <branch>

Вы можете добавить --diff-filter=ADM если вы хотите выбрать только те файлы, которые добавлены (A), удалены (D), изменены (M)

Другие вопросы по тегам