Git — как мне узнать, какой файл или код не существует ТОЛЬКО В 1 ВЕТКЕ при сравнении 2 ветки в git?

#git #git-diff

#мерзавец #git-разница

Вопрос:

Я хочу сравнить две ветви ( master и live ) с конкретным результатом, как показано ниже

Текущая проблема:

Допустим, у меня есть 2 file в master :

  • foo.js:

    значение внутри foo.js :

    console.log('inital foo')

  • bar.js:

    значение внутри bar.js :

     console.log('bar')
     

в live ветке у меня есть два файла:

  • bar.js

    значение внутри bar.js :

     //another code that should
    //exist only in live branch
    ...
    console.log('bar')
     
  • Constants.js

    значение внутри Constants.js :

     BaseURL = 'http://'
    Version = '1.0.1'
     

теперь я хочу сравнить, есть ли какой-то файл / код, master который не существует в live ветке

Текущий результат:

git diff live master --name-only выходной результат:

 foo.js
bar.js
Constant.js
 

Ожидаемый результат:

просто проверьте в master ветке любые изменения / новый файл, который не существует в live ветке

любая команда, которая должна выдавать результат:

 foo.js
 

Причина:

bar.js in live имеет другой код, который должен существовать только в live , и поскольку master и live имеет console.log('bar') , не должен показывать результат

Constant.js не должен отображаться в результате, так как он в live

есть ли способ достичь этого?

Ответ №1:

Я думаю, вы ищете эту команду:

 git diff live...master --name-only
 

Что он делает, так это сравнивает изменения, которые произошли в master ветке с момента запуска live ветки. Вы можете найти это в документации.

Комментарии:

1. Я думаю git diff live...master --name-only , решено Constants.js не показывать live , но как насчет bar.js ? 1 в любом случае 🙂

2. @flix Когда был bar.js добавлен в каждую ветку?

3. при извлечении из master live или создании вручную это условие для моего случая, иногда мне нужно извлечь его master (из-за кода) или просто вручную изменить (например, изменить только номер версии, поэтому я не извлекал из «master», а просто вводил вручную из live ветки, чтобы соответствовать, какномер master версии)