windows - msysgit fejl med kroge: 'git fejl: kan ikke gyde. git/kroge/post-commit: Ingen sådan fil eller mappe'

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har problemer med at få hukommelser til at modtage efterkommere og efterkommere for at fungere korrekt med msysgit (Windows 7 Pro/32 og Ultimate/64). For post-commit hook får jeg ovenstående fejl, hvis jeg forpligter fra enten git-bash eller konsollen, men det virker fint, hvis jeg begår igennem git-gui. For en post-modtagekrog giver alle tre samme fejl.


Jeg tror, ​​det er en slags tilladelse eller stifejl, men jeg har ingen anelse om hvor du skal starte her.

Bedste reference


Tilføj SHEBANG til den første linje af krog, som sådan:


#!/bin/sh
echo "executing post-commit"
exit 0


Dette havde mig stumpet i et stykke tid også, og jeg så, at tilføje shebang fikset det. I SVN verden, mens vi i * nix har et 'pre-commit' script og i Windows havde vi 'pre-commit.bat' og SVN hentede automatisk batfilen i Windows. Git synes ikke at hente en pre-commit.bat (eller en hvilken som helst kroge) og tilføje shebang til krogen filen arbejdet.

Andre referencer 1


Hvis du har SHEBANG, og det stadig fejler, skal du sørge for at have <path\_to\_git> \ bin angivet i din miljøvariabel for sti.


Du vil sandsynligvis også have <path\_to\_git> \ cmd hvis du installerede den til at arbejde fra kommandolinjen.

Andre referencer 2


Jeg bruger SourceTree og Git LFS og havde et lignende problem: cannot spawn .git/hooks/pre-push.


Løsningen var at slette filen pre-push (åbne den viste, at den var meget beskadiget) og genstarte SourceTree, hvorefter det regenererer filen pre-push, og alt er tilbage til normal.

Andre referencer 3


Dette er et gammelt spørgsmål, men jeg har kæmpet med dette nøjagtige problem, og denne så spørgsmålet dukkede op, så jeg troede det var værd at forsøge at registrere, hvad der fungerede for mig.


Kort sagt: Jeg havde brug for at køre Apache som en almindelig bruger i stedet for Local System. Dette var på en arvstest VM Jeg spillede med, så det kørte kun Windows XP, men det ser ud til, at i det mindste på den platform (og muligvis andre) msysgit bare ikke ' t fungerer korrekt, når du kører under Local System -kontoen (formodentlig er root filesystem ikke kortlagt korrekt). Som følge heraf vil ingen shebang-linje fungere som git-http-backend, der simpelthen ikke kan '' udføre nogen msysgit-binære filer (selv med absolutte Windows stier.


Hvis du skifter Apache til at køre som en almindelig brugerkonto, løste dette problem helt. Du skal selvfølgelig sørge for, at brugeren Apache kører som har tilladelser til read/write git repositorierne, men ud over det skal du bare sørge for at din shebang linje er [[#!/bin/sh og alt skal være copacetisk.


Endelig, ja, det er en stor hammer. Ideelt set kan du bruge noget som suexecWindows, men en hurtig googling indikerer ikke en åbenbar vej fremad. Selvfølgelig, hvis nogen har ideer, vil jeg være interesseret.


For nu fungerer dette for mig, men det virker ikke ideelt.

Andre referencer 4


Hvis nogen, som mig, løber ind i et lignende problem med at få adgang til git repositories via apache, skal du indstille PATH i Apache config, som:


SetEnv PATH "c:/Program Files (x86)/Git/bin;"

Andre referencer 5


Ved brug af tortoisegit og LFS, måtte jeg bare fjerne filerne inde i .git/kroge mappen.