web-dev-qa-db-fra.com

Liste tous les fichiers modifiés dans une demande de pull dans Git / GitHub

Existe-t-il un moyen (à partir de la ligne de commande) de répertorier les noms de tous les fichiers modifiés dans un PR dans Git/GitHub? Cela serait utilisé pour trouver quels tests doivent être exécutés dans une build Travis CI pour ce PR.

La génération CI exécute ces commandes avant d'appeler notre script:

git clone --depth=50 git://github.com/jekyll/jekyll.git jekyll/jekyll
cd jekyll/jekyll
git fetch Origin +refs/pull/2615/merge
git checkout -qf FETCH_HEAD
20
Alfred Xing

En général, vous pouvez répertorier les fichiers modifiés entre deux validations avec git diff --name-only:

Comment lister uniquement les noms de fichiers qui ont changé entre deux validations?

Le problème ici semble être de déterminer la "base de fusion". Si toutes les branches proviennent de master, vous pouvez faire:

git --no-pager diff --name-only FETCH_HEAD $(git merge-base FETCH_HEAD master)

Cela vous montrera les changements entre le point auquel le FETCH_HEAD A été ramifié de master au FETCH_HEAD Actuel. J'ai testé cela localement, et les branches PR sont coupées de master je crois que cela devrait fonctionner.

29
zanerock

Je ne pouvais pas trouver un moyen de voir juste la liste des fichiers modifiés dans GitHub (c'est-à-dire sans le diff et les commentaires), mais cela peut être fait avec ce one-liner dans la console du navigateur:

Array.from(document.getElementsByClassName('js-details-target')).forEach((e) => {e.click();})

Cela réduira tous les blocs de diff en ne laissant que les noms de fichiers.

1
laurent

Console Chrome ...

Remarque: Cela se cassera si Github modifie les balises/classes/ID de la page.

const fileElems = document.querySelectorAll('#files div.file-info a.link-gray-dark');
const filePaths = [];

for (let a of fileElems) {
    filePaths.Push(a.title);
}

const filePathsStr = filePaths.join('\n');
console.log(filePathsStr);
copy(filePathsStr);
console.log('Copied to the clipboard as well ????');
0
AdamHickey

La recherche Google m'a envoyé ici, mais c'est une question légèrement différente.

Cette question [détails] a une ligne de commande. Cependant, j'avais besoin de la liste des fichiers, c'est ok si je peux voir dans l'interface graphique

Voici un moyen de voir la liste des fichiers dans l'interface graphique:

  1. ouvrir la demande de tirage

  2. cliquez sur l'onglet [Fichiers modifiés]

    Conversation 0 valide 3 [fichiers modifiés] 8

  3. cliquez sur le menu déroulant après "n fichiers" dans la ligne ci-dessous de [Fichiers modifiés]

    Modifications de toutes les validations v ... [8 fichiers v] ... +638 −266

(cliquez sur le v, déroulant, après les fichiers dans la ligne ci-dessus)

0