Git локальные изменения / diff / JGIT
Я застрял в следующей проблеме:
Это то, что я хочу:
- команда git, которую я могу использовать, чтобы показать изменения 'US'
- он должен работать как статус, (показать, что я сделал) в сравнении с удаленным
Вот что я попробовал:
- git diff [в JGit -> diffentry] со множеством опций, например, master.branchName
- Я попытался найти команду git status, которая работает с 2 коммитами.
- Я просмотрел все методы diffEntry[JGIT], чтобы найти метод для получения желаемого результата.
Я погуглил методы 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)