Je viens de cloné un projet en utilisant Git et a ouvert une nouvelle succursale. Après avoir changé seulement 1 fichier, j'ai essayé de commettre les changements, mais cela me montre que je les acheminez comme plus de 3000 fichiers. Après avoir cliqué sur n'importe quel fichier pour voir les différences, le phpstorm dit "Aucune différence". P>
J'ai entendu dire que cela pourrait être une erreur liée aux fins de la ligne, mais je ne sais pas quoi faire en ce moment. Pourriez-vous m'aider s'il vous plait? Il est impossible de vérifier 3000 fichiers en ce moment, et je ne veux pas détruire le projet en poussant quelque chose de fou. P>
J'ai essayé de changer les fins de ligne dans PHPStorm vers LF (UNIX) et CRLF (Windows), mais cela ne vous aide pas du tout. J'ai entendu dire qu'il serait peut-être nécessaire de le changer également dans Git, j'ai donc essayé d'exécuter des commandes recommandées au hasard, mais aucun résultat du tout. P>
Edit: Ajouté 100 Bounty de réputation. Je ne peux pas résoudre ce problème p>
Solution: D'accord, on dirait que c'était un problème de privilège. J'ai donné Chmod 777 sur tous les annuaires et c'était trop. P>
9 Réponses :
Vous devrez peut-être ajouter une ligne ou deux à votre fichier .gitignore code>. Voici un exemple de certains des fichiers de projet créés par mon IDE et OS que je ne veux pas commettre. Ces lignes sont répertoriées dans mon fichier
.gitignore code>.
Annulez le commit, ou engagez-vous dans une succursale distincte, puis faites une demande de retrait à maîtriser. P>
Mais ce comportement normal est-il que je confie 1400 fichiers que je n'ai jamais changé moi-même? Je fais des commentaires sur ma succursale en ce moment mais c'est à travers tous ces fichiers, c'est fou
Vous pouvez vérifier si votre projet utilise un outil de peluche ou non. Si vous êtes dans un environnement em> javascript em>, vous pouvez exploiter Eslint ou JSlint. Dans le fichier de configuration de votre outil de pelutage, vérifiez que le type de terminaison de ligne est défini. P>
pour windows em>, pour Unix em>, Assurez-vous que les terminaisons de ligne appropriées sont configurées dans votre projet car elles peuvent conduire au problème que vous rencontrez. p>
dans phpsorm strud> Vous pouvez également aller à éditeur> style de code em> et voir quel type de paramètres que vous avez définis sous séparateur de ligne em>. EM>. p>
Un écart dans le schéma de fin de ligne entre la branche distante et votre environnement local peut entraîner une modification de plusieurs fichiers indésirables que vous n'avez pas modifiés. P> \ r \ n code> est défini pour le CRLF. p>
\ n code> est défini pour LF. P>
Si vous avez fait une git init dans la section locale et que vous avez effectué un clone git dans le dossier où vous avez effectué Git Init, il affichera tous les fichiers comme non non engagés et non traqués car votre git local n'est pas au courant de ces fichiers. P>
Ceci est arrivé à de nombreux développeurs qui font git init ainsi que Clone Git. P>
solution: p>
devrait fonctionner. Je ne sais pas si vous avez fait la même chose, mais c'est celui de l'affaire. P>
Vous pouvez vérifier puis annulera (réinitialisation matérielle: serait supprimé tous les changements) Votre dernier commit. P>
puis remplacez le fichier avec le fichier modifié. (Utilisation de l'interface graphique du terminal ou du système d'exploitation) p> li>
puis html code>,
CSS code>,
JS code> formatage de code qui peut être automatiquement formaté par votre IDE (par exemple,
4 -> 2 espace code> ou inverser). Vérifiez également
ligne de ligne pour Windows / Linux code> machine.
un fichier change code> (fichier modifié) quelque part. li>
$ git status # see difference between working directory and the index
$ git commit -am 'message' # add & commit
git add & valte code> p>
$ git reset --hard HEAD~1
Faites-vous quelque chose avec les autorisations de fichier? Je pense que cela peut être le problème.
essayez de comparer un fichier unique: p> Si ce sera le problème de l'autorisation, vous obtiendrez quelque chose comme ceci: p> < Pré> xxx pré> p>
Si cela s'avère être le problème, le correctif est fourni par VONC ci-dessus. (régler filemode)
Vérifiez la nature du diff.
pour eol, essayez : p> si c'est Le boîtier, clone à nouveau votre repo après un p> Vérifier également Pour tout Pour le mode d'autorisation de fichier , clone à nouveau votre repo après: p> Vous pouvez voir la différence avec texte = auto code> directive dans un
.gitattributes code> fichier. p>
git d diff code >, comme je l'ai mentionné dans Cette réponse .
Notez que Depuis GIT 2.9.1 , vous pouvez modifier l'autorisation d'un fichier avec P> git add --chmod=+x -- yourFile
Lucio montre comment savoir s'il s'agit du problème de permission (ci-dessous) Git Diff MyBranch Master - myfile.cs
Il peut y avoir quelque chose de magique, vous devez donc tout ce que vous avez à faire est après avoir vérifié cette succursale d'abord de cette branche à la commande git. code> et
git propre -f. code> puis appliquez vos modifications . p>
git checkout . git clean -f git reset --hard git clone ORYour editor indentation configs must be different, like space/tabs or tab size, or html/css preferences and hence showing differences caused by a different indentation.
Que dit-il que les changements sont ...
Ceci est généralement causé par des autorisations modifiées ou des terminaisons de ligne. Regardez un coup d'œil sur
git diff code> pour voir quels sont les modifications.
@MIKEB, question auteur déjà mentionné que
le phpstorm dit "Aucune différence" code>.
Avez-vous exécuté
git Ajouter. Code> du terminal avant d'essayer de commettre? (Ou comment avez-vous organisé les modifications? Est-ce que Phpstorm le fait automatiquement pour vous?)
Essayez-vous de vous engager dans le même référentiel ou un nouveau référentiel?
Ok, on dirait que c'était une question de privilège. J'ai donné Chmod 777 sur tous les annuaires et c'était une erreur.