web-dev-qa-db-fra.com

Comment savoir dans quel commit un code particulier a été ajouté?

Je veux savoir dans quel commit j'ai ajouté le code ci-dessous:

if (getListView().getChildCount() == 0)
                getActivity().findViewById(Android.R.id.empty).setVisibility(View.VISIBLE);

Comment puis-je y parvenir?

52

Courir git blame sur le fichier. Il vous montrera l'ID de validation, la date et l'heure, et qui l'a validé - pour chaque ligne. Ensuite, copiez simplement l'identifiant de validation et vous pouvez l'utiliser dans git log <commit> ou git show <commit>.

Par exemple, j'ai un fichier, appelé test.txt, avec des lignes ajoutées sur différents commits:

$ cat test.txt
First line.
Second line.

Exécuter le git blame:

$ git blame test.txt
^410c3dd (Leigh 2013-11-09 12:00:00 1) First line.
2365eb7d (Leigh 2013-11-09 12:00:10 2) Second line.

Le premier bit est l'ID de validation, puis le nom, puis la date, l'heure, le fuseau horaire et enfin le numéro de ligne et le contenu de la ligne.

52
Leigh
git log -S searchTerm

vous donne les commits dans lesquels le terme de recherche a été introduit.

52
Rahil Ahmad

Il y a quelque chose de plus rapide que de blâmer le dossier complet. Si la ligne est ${lineno} et le fichier est ${filename} vous pouvez:

git blame -L ${lineno},${lineno} ${filename}

Exemple:

git blame -L 2,2 test.txt
38
cforbish
git log -S "mention here line of code" [file-path]    

Par exemple:

git log -S "First line" test.txt         

Il est évident de fournir le nom du fichier avec son chemin parce que, la plupart du temps, nous voulons savoir qui a introduit un segment de code particulier dans un fichier particulier.

9
anshul