2010-10-03 7 views
5

Ich habe Cygwin zusammen mit den Git-Binärdateien und einer Kopie von TortoiseGit auf einer neuen Windows XP-Installation installiert. Ich scheine in der Lage sein die meisten Git-Operationen durch TortoiseGit wie sehen die Protokolle usw. zu tun, aber wenn ich komme über TortoiseGit zu begehen ich diese Meldung ...Cygwin und TortoiseGit

error: unable to create temporary sha1 filename : No such file or directory

ich in der Lage bin über die Kommandozeile zu begehen - Ich scheine nicht in der Lage, durch die GUI-Schnittstelle zu verpflichten!

+0

vielleicht sollten Sie nur benutzen msysgit –

Antwort

-1

Haben Sie versucht, den Computer neu zu starten? Ich hatte einmal Probleme mit einer Tortoise-Installation, aber das hat das Problem gelöst.

1

Ich hatte das gleiche Problem (beschlossen, Git unter Cygwin installiert anstelle von dem von msysgit). Das gleiche gilt: Ich konnte Commits über die Befehlszeile ausführen, und ich konnte auch Modifikationsindikatoren sehen und Logs in Tortoise anzeigen, aber ich konnte nicht über die GUI committen.

Was ich tun musste, war die Gruppeneinstellungen meines Projekts und der ausführbaren git-Datei anzupassen. Von einer Ebene über mein Projekt Wurzel, lief ich den folgenden Befehl ein:

chgrp -R None my_project/ 

Dann habe ich die folgenden:

cd /bin 
chgrp None git.exe 

Dies änderte sich die Gruppe der git ausführbare Datei aus, was es war (root) zu None.

Beachten Sie, dass Sie möglicherweise die Gruppe None nicht verwenden möchten. Sehen Sie sich/etc/passwd an und sehen Sie sich das vierte Feld der Zeile an, das mit Ihrem Benutzernamen beginnt (Felder sind durch Doppelpunkt getrennt und das erste Feld ist Ihr Benutzername) - dieses vierte Feld ist Ihre primäre Gruppen-ID. Dann schauen Sie sich/etc/group an und suchen Sie die Zeile mit der gleichen Gruppen-ID wie das dritte Feld. Das ist der Gruppenname, den Sie verwenden möchten (anstelle von None) in den obigen Befehlen.

Lassen Sie mich wissen, ob das für Sie funktioniert.

+0

diese Antwort zu akzeptieren Fühlen Sie sich frei, wenn es hilfreich war. – Dave

+0

In meinem Fall ist alles schon None, das ist also nicht die Lösung für mich. Nicht sicher, warum du den chgrp machen musstest, vielleicht hast du Git als einen anderen Benutzer installiert? Oder vielleicht sehe ich es nicht, weil ich auf FAT (vs. NTFS) bin. – studgeek

0

Das „nicht in der Lage temporäre SHA1 Dateinamen erstellen“ Problem für mich wurde durch gelöst:

https://stackoverflow.com/a/685422/431606

I (von der Kommandozeile) in meinem Repository einfach git repack lief, und TortoiseGit war sofort in der Lage zu begehen .

(ich kann immer noch nicht durch TortoiseGit schieben, da ich die Fehlermeldung „fatal: Das entfernte Ende hing unerwartet“, wie er in https://tortoisegit.org/issue/56 beschrieben)

0

ich diese Lösungen ausprobiert, aber sie hat nicht funktioniert für mich. Was funktionierte, war, alle ausführbaren GIT-Dateien im cygwin-Verzeichnis in einen Unterordner zu verschieben, der nicht in meinem Pfad lag, dann installierte ich die neueste Version von GIT von http://git-scm.com/, fügte dem Pfad dieser installierten GIT-Programmdatei alle Instanzen hinzu Windows Explorer & bash windows, startete eine neue Instanz von Windows Explorer, und dann konnte ich über TortoiseGit committen. Derzeit (4. März 2014) ist die Cygwin-Version von GIT 1.7.9, während die neueste Version von http://git-scm.com/ 1.9.0 ist. Das scheint einen Unterschied zu machen.

+0

Welche Sachen in Cygwin Git funktionieren nicht? – linquize

2

TortoiseGit ist für Git für Windows optimiert.

jedoch beginnend mit TortoiseGit 1.8.13.0 Cygwin git kann auch mit TortoiseGit verwendet werden.

Sie haben es zu konfigurieren, wie auf TortoiseGit Einstellungen folgt: Öffnen Sie TortoiseGit Einstellungsdialog und die Seite Allgemein öffnen.

1) Select the [CYGWIN-INSTALL-PATH]\bin-folder as git.exe folder.

2) Configure the HOME environment variable in Windows, so that Cygwin and TortoiseGit are using the same home directory and global git-config. Use the normal Windows notation here (e.g., "C:\Users\USERNAME"). By default, TortoiseGit uses the Windows home directory which is normally located under c:\Users and Cygwin uses its own home directories which are located under [CYGWIN-INSTALL-PATH]\home.

3) Configure AutoCrLf, this is necessary as TortoiseGit and Cygwin Git have different defaults. The default in Cygwin Git is true.

4) Go to TortoiseGit the section called “Advanced Settings” and set CygwinHack to true in order to activate cygwin workarounds.

5) Reboot.

Basierend auf https://tortoisegit.org/docs/tortoisegit/tgit-dug-settings.html