web-dev-qa-db-fra.com

git Push n'envoie pas les modifications au référentiel git distant

J'apporte des modifications à certains fichiers de mon référentiel git local, puis je souhaite les envoyer au référentiel git distant à partir duquel le local a été cloné via ssh. 

Après avoir exécuté "git commit -a" de mon côté local, pour envoyer les modifications à la télécommande, je lance

$ git Push
Everything up-to-date

Cependant, j'ai vérifié les fichiers distants et ils ne sont pas modifiés! Une idée?

Merci et salutations!

40
Tim

Vous avez probablement inséré dans un référentiel non-nu, c’est-à-dire un référentiel auquel une copie de travail est attachée. Vous n’auriez pas dû ignorer l’avertissement que git Push vous a donné s’il le remarquait.

Quoi qu’il en soit, connectez-vous à la machine distante, accédez au référentiel et faites

git checkout <whatever branch you’re on>

Voilà. La prochaine fois seulement Poussez dans des dépôts nus. :)

18
Bombe

avez-vous essayé le suivant?

 $ git Push Origin master:master
22
knittl

J'ai constaté que le problème était que je n'avais pas ajouté les fichiers à la mise à jour, ainsi qu'un message. J'ai corrigé cela en utilisant les commandes suivantes:

git add .

et alors 

git commit -m "updates done by..."

et alors

git Push Origin <repo_name>

J'espère que cela aide quelqu'un;)

10
rupert_b
git commit --amend

Va changer le commit ID et faire en sorte que le référentiel distant "pense" que de nouvelles modifications ont été apportées.

2
Andro Secy

tapez "git log" dans votre référentiel distant pour voir s'il contient le dernier commit . Sinon, vérifiez la configuration de votre référentiel local pour voir les paramètres distants.

Pour voir les modifications dans différents types de votre référentiel distant:

R. Si votre référentiel distant est vide, vous pouvez trouver les fichiers dans le référentiel distant Branches/ Config Description HEAD refs /

après que le nouveau commit soit poussé, les fichiers dans objets/directory seraient changés.

B. Si votre référentiel distant est non-nu, tapez Dans "git checkout master" Et "git status" dans votre référentiel distant pour afficher l'état du fichier. Voir si certains fichiers ont été modifiés ou supprimés.

1
Chen-Han Hsiao

Aucune de ces solutions ne fonctionnait pour moi et les commits n'apparaissent sur mon site Web en direct qu'après l'exécution de GIT_WORK_TREE=/path/to/website git checkout -f. Si c'est votre cas, vous devez ajouter un "crochet" à votre configuration git. 

  1. Allez dans le dossier the hooks dans votre dossier git:

    cd ~/path/.git

    cd hooks

    nano post-receive

  2. Écrivez cette ligne dans le fichier de post-réception:

    GIT_WORK_TREE=/path/to/your/website/or/project/ git checkout -f

  3. Enfin, vous devez modifier les autorisations du fichier de post-réception:

    chmod a+x post-receive

Cela exécutera cette commande à chaque fois que vous appuyez sur Push, mettant à jour vos commits sur votre projet distant.

Je vous suggère d’envisager d’utiliser gitosis pour héberger ces dépôts git bare . C'est vraiment facile à utiliser après la configuration initiale.

1
Luis

Je viens tout juste de constater une frustration similaire de ne pas voir mon changement répliqué sur github . En tant que nouvel utilisateur de git, juste habitué à utiliser le système, j’ai créé un dossier sur mon ordinateur, je l’ai ajouté, je l’ai validé, je l’ai poussé - pas de changement . J'ai envisagé la possibilité que je ne puisse pas pousser un répertoire vide, alors j'ai créé un fichier vide dans le répertoire, puis répété les étapes ci-dessus . Mieux, le changement a été immédiatement reflété dans mon dépôt github .

0
user6614905