В интерфейсе PR на GitHub я вижу новые изменения, которые я внес в свою ветку в качестве сравнения с основной веткой.
Я хотел бы получить список этих файлов откомандная строка.
Проблема (в командной строке) возникает, когда файл был удален в целевой ветви, с которой я обращаюсь (например, master
), но моя ветвь не знает об этом изменении.
- Создание репозитория git и добавление файла
a
в master
. - Создание ветки
add-b
из master
и добавление файла b
.Не объединяйте. - Переключитесь обратно на
master
и удалите a
.Commit. - Переключитесь обратно на ветку
add-b
и запустите git diff --name-only --diff-filter=A master
, который показывает как a
и b
как добавленные.
Учитывая, что git checkout master && git merge add-b
повторно не добавит файл a
в репозиторий, я понимаю, что должен быть какой-то механизм, с помощью которого git это выяснит и представит, что есть способ получить эту информацию.
Какую команду (команды) я должен выполнить, чтобы показывать только добавленные / измененные файлы и избегать тех, которые были удалены в целевой ветви?
Редактировать - пример дляясность
• ~/src/git-testing $$$ git init
Initialized empty Git repository in /Users/ryan.tuck/src/git-testing/.git/
• ~/src/git-testing $$$ touch a && git add . && git commit -m 'add a'
[master (root-commit) f65661b] add a
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a
• ~/src/git-testing $$$ git checkout -b add-b
Switched to a new branch 'add-b'
• ~/src/git-testing $$$ touch b
• ~/src/git-testing $$$ git add . && git commit -m 'add b'
[add-b 588960f] add b
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 b
• ~/src/git-testing $$$ ls
a b
• ~/src/git-testing $$$ git checkout master
Switched to branch 'master'
• ~/src/git-testing $$$ ls
a
• ~/src/git-testing $$$ rm a && git add . && git commit -m 'remove a'
[master 2b4d9f8] remove a
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 a
• ~/src/git-testing $$$ ls
• ~/src/git-testing $$$ git checkout add-b
Switched to branch 'add-b'
• ~/src/git-testing $$$ git diff --name-only --diff-filter=A master
a
b