2017-06-09 2 views
2

Wenn ich auf einen Funktionszweig Feature123 in meinem lokalen Repository war, habe ich ein begehen, und schob es auf Github:Warum ist das Arbeitsverzeichnis des Masters nach dem Ziehen nicht sauber?

$ git commit -m "Feature123 add unit tests" 
[Feature123 53ad59a] Feature123 add unit tests 
2 files changed, 94 insertions(+), 2 deletions(-) 

$ git push origin Feature123 
Counting objects: 10, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (9/9), done. 
Writing objects: 100% (10/10), 1.23 KiB | 0 bytes/s, done. 
Total 10 (delta 8), reused 0 (delta 0) 
remote: Resolving deltas: 100% (8/8), completed with 8 local objects. 
To https://github-repo-url 
93f285a..53ad59a Feature123 -> Feature123 

auf GitHub, ich sah, ist es Konflikte zusammenführen, wenn die Funktion Verzweigung zu einem Zweig verschmelzenden genannt master, also musste ich den Konflikt lokal lösen.

  1. schalte ich zuerst master und ziehen:

    $ git checkout master 
    Switched to branch 'master' 
    Your branch is up-to-date with 'origin/master' 
    
    $ git pull 
    remote: Counting objects: 931, done. 
    remote: Compressing objects: 100% (307/307), done. 
    remote: Total 931 (delta 634), reused 473 (delta 471), pack-reused 132 
    Receiving objects: 100% (931/931), 707.48 KiB | 0 bytes/s, done. 
    Resolving deltas: 100% (683/683), completed with 329 local objects. 
    From https://github-repo-url 
    e30f5fd..64f0158 master -> origin/master 
    12a9754..ab3ff99 B01312  -> origin/B01312 
    bbbb9cc..d729e42 B02481_6 -> origin/B02481_6 
    * [new branch]  B02523  -> origin/B02523 
    550ca90..760be6b B03395  -> origin/B03395 
    fd54149..2559131 B03616  -> origin/B03616 
    Updating e30f5fd..64f0158 
    error: unable to create file dir1/file1: Permission denied 
    error: unable to create file dir2/file2: Permission denied 
    Checking out files: 100% (469/469), done. 
    

    Was die Fehlermeldungen Sie "Fehler: Kann nicht Datei dir1/file1 erstellen: Permission denied" bedeuten?

  2. Dann wollte ich auf den Funktionszweig wechseln, und fusionieren, aber

    $ git checkout Feature123 
    error: Your local changes to the following files would be overwritten by checkout: 
    dir3/file3 
    dir4/file4 
    Please commit your changes or stash them before you can switch branches. 
    Aborting 
    

    Warum ist das Arbeitsverzeichnis von master nicht sauber, da ich auf meinem Zweig begangen habe?

    Was soll ich jetzt tun, um Master in meinen Feature-Zweig zu integrieren?

+0

Der gemeldete Fehler ist höchstwahrscheinlich ein Ergebnis der 'open()' syscall fehlgeschlagen. Möglicherweise gibt es ein Problem mit Benutzer-/Gruppenberechtigungen, einer Emulations-/Virtualisierungsebene, dem Dateisystem oder dem Festplattenspeicher. Angenommen, Sie haben an den fraglichen Dateien noch keine Arbeit geleistet, wird 'reset -hard' Ihren Arbeitsbaum wiederherstellen, um' HEAD' widerzuspiegeln. An diesem Punkt sollten Sie erneut "ziehen", um zu sehen, ob Sie in einen konsistenten Zustand kommen können . – Pockets

+0

sollten Sie die Berechtigungen für diese Verzeichnisse und Dateien überprüfen? Kann der Benutzer den 'git pull' in diesen Pfad schreiben? Problem 2 scheint mit 1 verwandt zu sein, da 'git pull' versucht, Ihren Remote-Master-Zweig mit Ihrem lokalen Master zu verbinden; Es ist jedoch fehlgeschlagen, so dass die Zusammenführung nicht abgeschlossen ist und ein Zusammenführungs-Commit mit den neuen Änderungen, die von remote abgerufen wurden, nicht erstellt wurde, wodurch das Repository mit geänderten Dateien verlassen wird. Wenn Sie in diesem Zustand zu einer Verzweigung wechseln, die diese Dateien ebenfalls modifiziert, wird sie mit dem Fehler von Ausgabe 2 fehlschlagen. Sie können versuchen, 'git merge --abort' zu verwenden oder @pockets sagt' git reset --hard' – odradek

Antwort

2

Zuerst sicherstellen, dass ein git checkout -- . funktioniert. Wenn Sie immer noch „unable to create file... Permission denied“ Fehler sehen, dies ist in der Regel tun:

Bezüglich Ihrer zweiten Kasse, können Sie entweder Ihre lokalen Änderungen verstauen, oder alles entfernen mit git clean -ndx (entfernen Sie die -n für die eigentliche Reinigung)

Verwandte Themen