web-dev-qa-db-fra.com

Comment ne valider que quelques fichiers?

J'ai deux projets. Le premier est le projet "officiel" et le second est une légère modification (ajout de fichiers). J'ai créé une nouvelle branche et je leur ai mis de nouveaux fichiers. Mais au cours du développement, certains fichiers communs aux deux branches sont modifiés.

Comment ne valider que ces fichiers?

218
Nips

Je suppose que vous souhaitez appliquer les modifications à une branche, puis les rendre visibles dans l’autre branche. Dans git, vous ne devriez avoir aucun changement au dessus de HEAD lors du changement de branche.

Vous ne validez que les fichiers modifiés par:

git commit [some files]

Ou si vous êtes sûr de disposer d’une zone de stockage propre, vous pouvez

git add [some files]       # add [some files] to staging area
git add [some more files]  # add [some more files] to staging area
git commit                 # commit [some files] and [some more files]

Si vous voulez rendre ce commit disponible sur les deux branches, vous le faites

git stash                     # remove all changes from HEAD and save them somewhere else
git checkout <other-project>  # change branches
git cherry-pick <commit-id>   # pick a commit from ANY branch and apply it to the current
git checkout <first-project>  # change to the other branch
git stash pop                 # restore all changes again
226
Alex

Obtenir une liste des fichiers que vous voulez valider

$ git status

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

modified:   file1
modified:   file2
modified:   file3
modified:   file4

Ajouter les fichiers à la mise en scène

$ git add file1 file2

Cochez pour voir ce que vous commettez

$ git status

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    modified:   file1
    modified:   file2

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   file3
    modified:   file4

Commit les fichiers avec un message de commit

$ git commit -m "Fixed files 1 and 2"

Si vous commettez accidentellement les mauvais fichiers

$ git reset --soft HEAD~1

Si vous voulez décompresser les fichiers et recommencer

$ git reset

Unstaged changes after reset:
M file1
M file2
M file3
M file4
129
Abram

Vous pouvez valider des fichiers mis à jour, comme ceci:

git commit file1 file2 file5 -m "commit message"
69
Adriano Rivolli

Une partie de cela semble "incomplète"

Les groupes de personnes ne vont PAS savoir s'ils doivent utiliser des guillemets, etc.

Ajouter 1 fichier spécifique indiquant également les chemins d'accès

git add JobManager/Controllers/APIs/ProfileApiController.cs

Commit (rappelez-vous que la validation est locale uniquement, elle n'affecte aucun autre système)

git commit -m "your message"  

Push to repo distant

git Push  (this is after the commit and this attempts to Merge INTO the remote location you have instructed it to merge into)

Autre (s) réponse (s) montre le caché etc. que vous voudrez parfois faire

20
Tom Stickel

Si vous avez déjà mis en scène des fichiers, il suffit de les décomposer:

git reset HEAD [file-name-A.ext] [file-name-B.ext]

Puis ajoutez-les peu à peu dans po.

10
kaiser

Supposons que vous apportiez des modifications à plusieurs fichiers, tels que: Fichier1 Fichier2 Fichier3 Fichier4 Fichier5

Mais vous ne voulez valider que les modifications de File1 et File3.

Il y a deux façons de faire cela: 1> Ne mettez en scène que ces deux fichiers, en utilisant: git add file1 file2

puis commettez git commit -m "votre message"

puis Push git Push

2> commit direct

git commit file1 fichier3 -m "mon message"

puis Push, git Push

En fait, la première méthode est utile dans le cas où nous modifions régulièrement des fichiers et les organisons -> Grands projets, généralement des projets Live. Mais si nous modifions des fichiers et ne les organisons pas, nous pouvons faire des commit directs -> Petits projets

8
KamalDeep