6
votes

Projet engage trop de fichiers

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".

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.

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.

Edit: Ajouté 100 Bounty de réputation. Je ne peux pas résoudre ce problème

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.


6 commentaires

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 pour voir quels sont les modifications.


@MIKEB, question auteur déjà mentionné que le phpstorm dit "Aucune différence" .


Avez-vous exécuté git Ajouter. 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.


9 Réponses :


0
votes

Vous devrez peut-être ajouter une ligne ou deux à votre fichier .gitignore . 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 . xxx


0 commentaires

0
votes

Annulez le commit, ou engagez-vous dans une succursale distincte, puis faites une demande de retrait à maîtriser.


1 commentaires

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



3
votes

Vous pouvez vérifier si votre projet utilise un outil de peluche ou non. Si vous êtes dans un environnement javascript , 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.

pour windows , \ r \ n est défini pour le CRLF.

pour Unix , \ n est défini pour LF.

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.

dans phpsorm Vous pouvez également aller à éditeur> style de code et voir quel type de paramètres que vous avez définis sous séparateur de ligne . .

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.


0 commentaires

0
votes

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.

Ceci est arrivé à de nombreux développeurs qui font git init ainsi que Clone Git.

solution:

    • Supprimer GIT INIT
      • clone l'URL

        devrait fonctionner. Je ne sais pas si vous avez fait la même chose, mais c'est celui de l'affaire.


0 commentaires

2
votes

Vous pouvez vérifier 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.

  1. Une solution consiste à enregistrer votre fichier un fichier change code> (fichier modifié) quelque part. li>
  2. Fermez votre IDE. Utilisez le terminal. LI>
  3. puis annulera (réinitialisation matérielle: serait supprimé tous les changements) Votre dernier commit. P>

    $ git status                  # see difference between working directory and the index
    $ git commit -am 'message'    # add & commit 
    
  4. puis remplacez le fichier avec le fichier modifié. (Utilisation de l'interface graphique du terminal ou du système d'exploitation) p> li>

  5. puis git add & valte code> p>

    $ git reset --hard HEAD~1
    


0 commentaires

2
votes

Faites-vous quelque chose avec les autorisations de fichier? Je pense que cela peut être le problème.

essayez de comparer un fichier unique: xxx

Si ce sera le problème de l'autorisation, vous obtiendrez quelque chose comme ceci: < Pré> xxx


1 commentaires

Si cela s'avère être le problème, le correctif est fourni par VONC ci-dessus. (régler filemode)



5
votes

Vérifiez la nature du diff.

pour eol, essayez : p> xxx pré>

si c'est Le boîtier, clone à nouveau votre repo après un p> xxx pré>

Vérifier également Pour tout texte = auto code> directive dans un .gitattributes code> fichier. p>


Pour le mode d'autorisation de fichier , clone à nouveau votre repo après: p> xxx pré>

Vous pouvez voir la différence avec 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


1 commentaires

Lucio montre comment savoir s'il s'agit du problème de permission (ci-dessous) Git Diff MyBranch Master - myfile.cs



0
votes

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. et git propre -f. puis appliquez vos modifications .


0 commentaires

0
votes
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.

0 commentaires