648 votes

Comment marquer git un fichier supprimé et un nouveau fichier comme un fichier?

J'ai déplacé un fichier manuellement, puis je l'ai modifié. Selon Git, c'est un nouveau fichier et un fichier supprimé. Existe-t-il un moyen de forcer Git à le traiter comme un fichier?

537voto

Bombe Points 34185

Git détectera automatiquement le mouvement / renommer si votre modification n'est pas trop sévère. Juste git add le nouveau fichier, et git rm l'ancien fichier. git status montrera ensuite s'il a détecté le changement de nom. Si ce n'est pas vous avez besoin de suivre les conseils de Hank Gay et faire le déménagement et modifier dans deux commits distincts.

148voto

Hank Gay Points 36173

Faites le déplacement et le modifier dans des commits séparés.

46voto

Kent Fredric Points 35592

Sa tous une perception chose. Git est généralement plutôt bon à reconnaissance de mouvements, parce que GIT est un traqueur de contenu

Tout ce qui dépend vraiment est comment votre « stat » l’affiche. La seule différence ici est l’indicateur - M.

git log--stat - M

git log--stat

Journal d’aide git

11voto

Giles Roberts Points 1448

Si vous utilisez TortoiseGit il est important de noter que Git automatique de renommer la détection se produit au cours de commettre, mais le fait que cela va arriver n'est pas toujours affichées par le logiciel à l'avance. J'avais déménagé deux fichiers dans un répertoire différent et effectué quelques légères modifications. J'utilise TortoiseGit que mon commit outil et les Modifications apportées à la liste a montré que les fichiers sont supprimés et ajoutés, pas bougé. L'exécution de git status de la ligne de commande a montré une situation similaire. Cependant, après avoir commis les fichiers, ils ont montré une renommée dans le journal. Donc la réponse à votre question est que, aussi longtemps que vous n'avez rien fait de trop drastique, Git, doit reprendre les renommer automatiquement.

Edit: Apparemment, si vous ajoutez de nouveaux fichiers et ensuite faire un git status de la ligne de commande, le changement de nom doit apparaître avant de s'engager.

Edit 2: En outre, en TortoiseGit, ajouter les nouveaux fichiers dans la boîte de dialogue de livraison, mais ne pas les commettre. Alors si vous passez dans le Journal de commandement et de regarder le répertoire de travail, vous verrez si Git a détecté le renommer avant de s'engager.

La même question a été posée ici: https://code.google.com/p/tortoisegit/issues/detail?id=1389 et a été enregistré comme un bug à corriger ici: https://code.google.com/p/tortoisegit/issues/detail?id=1440 Il s'avère que c'est un problème d'affichage avec TortoiseGit de la boîte de dialogue de livraison et aussi le type de existe dans git status si vous n'avez pas ajouté les nouveaux fichiers.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X