Alors j'ai apporté un changement dans un fichier, le poussé à notre repo principal, l'a vu là-bas. David tira de ce repo et a fait - bien, quelque chose - et ne pouvait pas voir mon changement. Puisque David est une victime de Microsoft typique, je lui ai demandé de pousser ce qu'il avait revenu au repo et je l'examinerais là-bas.
mais donc selon git, Git journal-nom-nom - nom code> produit P > backend de journal git / theimportantfile.js code> produit p> Backend / theimportantfile.js code> n'a pas été touché depuis des semaines, mais il a également été changé il y a deux heures avec l'AFC2Dec commettre. Comment puis-je suivre ce qui s'est passé? P> p>
3 Réponses :
Il apparaît que la fusion de David est qu'est-ce que vous avez eu? Je dis cela parce que la fusion semble avoir "retourné" vos modifications. Si cette commande ne donne aucune sortie intéressante, alors David peut-être fusionné avec une stratégie de "nôtre" ou l'intelligent 'cp est-il mes fichiers à un emplacement temporaire; git fusion; écrase les fichiers contradictoires; Git commit 'Workflow. P> Quelle que soit la manière dont cet état a été arrivé à la fusion doit être jeté et refaire tel qu'il est évidemment défectueux. Vous pouvez également envisager de changer votre flux de travail telle que David n'a plus besoin de fusionner, mais plutôt de soumettre des demandes de tirage informelles (ou formelles) et que vous prenez soin de la fusion. P> p>
David utilise une interface graphique de Windows très simple sur Git. Il certainement i> n'a pas spécifié de stratégie étrange.
Il suffit de remplacer un fichier avec une copie quelque part le ferait? Utilisation de 'Git Checkout
On dirait qu'il a peut-être eu un conflit de fusion et le résolu en acceptant sa version (qui était probablement un fichier non existant) au lieu de la vôtre. Vous pouvez ramener le fichier. Voir Comment résoudre un fichier ou un dossier P>
Je ne suis pas sûr que ce soit la nature de votre problème, mais par défaut, Parfois, vous n'êtes parfois intéressé que par des parties de l'historique, par exemple les commits modifiant un Les options suivantes affectent la manière dont la simplification est effectuée: p>
au lieu d'utiliser le mode par défaut, vous pouvez passer dans le drapeau à partir du journal code> DOCS: P> Je sais que cela fonctionne parfois parce que j'ai eu une situation où j'avais un commit lorsque nous avons fait p> seulement alors alors que Git journal code> filtrera parfois commettrait qu'il ne pense pas "utile" ou "intéressant" dans l'ordre comprendre l'état final d'un arbre de validation. De Le Git Journal Code> Docs :
mode par défaut code> strong>
Simplifie l'historique à l'histoire la plus simple expliquant l'état final de l'arbre. Plus simple parce qu'il pruneaux des branches latérales si le résultat final est le même (c'est-à-dire des branches de fusion avec le même contenu). P>
blockQquote> - Historique intégral CODE> dans votre fichier et voyez si le commit "manquant" apparaît de cette façon: p>
- Historique complet code> strong>
Comme le mode par défaut, mais ne prune pas de l'histoire. P>
blockQuote> edit h3>
x code> dans maître code> qui contenait une Passez à un fichier thefile code>. COMMENTEZ X CODE> Cherry-Christine dans Un autrebranch code> par un collègue, appelons donc le nouveau commit y code>. Alors un autrebranch code> a été fusionné dans maître code>. P> y code> dans la liste des commits, juste x code>, mais quand nous avons utilisé p> X code> et y code> apparaît. Je suppose que git n'a pas montré y code> par défaut car il a introduit un changement identique à l'état final de l'arbre de validation, car il était choisi Cherry à partir de x code>. p> p>
C'est étrange, David a-t-il fait un
push -force code>?Que dit le diff pour la dernière modification du fichier? Était-ce réellement changé?
Essayez
Git journal --Decorate = complet code> au cas où il y a une balise ou une branche nomméebackend / theimportantfile.js code>. Ça ne serait pas drôle?@rodrigo - Ce ne serait pas drôle, mais en fait, le nom réel était beaucoup plus long et il y avait plusieurs fichiers dans la même situation.
Le journal a déclaré que le changement avait été fabriqué dans AFC2Dec puis reventé en 194B7F (ce qui a du sens).
Git Log --CC CODE> aide-t-il? Ou mêmeGit Diff-Tree -C | --cc code>? Ou peut-être git blâme code>? Vous voulez essayer de trouver où les bons changements ont été introduits à votre extrémité et où l'autre extrémité les a révélées (ou si l'histoire a été réécrite, elles n'étaient jamais là). Vous pouvez également essayer git log -g -g | -s code> (voir le manuel).