github-wijzigingen niet gestaged voor commit

Ik heb een zeer eenvoudige github-setup met een leesmij, een map en een andere map erin met een html-bestand. Op github kan ik alleen het leesmij-bestand en de eerste map bekijken, maar niets van de inhoud ervan, en ik krijg dit bericht

tc349 ryntc3$ git add *
tc349 ryntc3$ git status
On branch master
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)
(commit or discard the untracked or modified content in submodules) 
modified:   week1 (modified content)
no changes added to commit (use "git add" and/or "git commit -a")

Ik heb het gevoel dat als ik alles zou toevoegen om geënsceneerd te worden, het geen probleem zou moeten zijn. Hulp?


Antwoord 1, autoriteit 100%

Is week1een submodule?

Let op het relevante deel van de uitvoer van het git statuscommando:

(vastleggen of verwijderen van de niet-getrackte of gewijzigde inhoud in submodules)

Probeer cd week1en geef een andere git statusop om te zien welke wijzigingen je hebt aangebracht in de week1submodule.

Zie http://git-scm.com/book/en/Git -Tools-Submodulesvoor meer informatie over hoe submodules werken in Git.


Antwoord 2, autoriteit 95%

Heb je het geprobeerd

git add .

Dit komt terug in submappen, terwijl ik niet denk dat * dat doet.

Zie hier


Antwoord 3, autoriteit 99%

WAARSCHUWING!DIT ZAL DE VOLLEDIGE GIT-GESCHIEDENIS VAN UW SUBMODULE VERWIJDEREN. DOE DIT ALLEEN ALS U DE SUBMODULE DOOR ONGEVAL HEBT GEMAAKT. ZEKER NIET WAT U IN DE MEESTE GEVALLEN WILT DOEN.

Ik denk dat je naar de map week1moet gaan en de map .gitmoet verwijderen:

sudo rm -Rf .git

ga dan terug naar de map op het hoogste niveau en doe:

git add .

voer vervolgens een commit uit en push de code.


Antwoord 4, autoriteit 96%

in mijn geval had ik een

. nodig

git add files
 git commit -am 'what I changed'
 git push

de ‘a’ op de commit was nodig.


Antwoord 5, autoriteit 31%

WAARSCHUWING!DIT ZAL DE VOLLEDIGE GIT-GESCHIEDENIS VAN UW SUBMODULE VERWIJDEREN. DOE DIT ALLEEN ALS U DE SUBMODULE DOOR ONGEVAL HEBT GEMAAKT. ZEKER NIET WAT U IN DE MEESTE GEVALLEN WILT DOEN.

In mijn situatie was er een submap met een .gitmap.

Wat ik doe is simpelweg die .gitmap uit mijn submap verwijderen.


Antwoord 6, autoriteit 10%

Ik had hetzelfde probleem. Uiteindelijk ging ik naar de subdirectory die “niet geënsceneerd was voor commit” en van daaruit toevoegen, committen en pushen. daarna ging het een niveau omhoog naar de hoofddirectory en kon ik correct pushen.


Antwoord 7, autoriteit 7%

Voor mij moest ik de subdirectories vastleggen die .gitbevatten, aangezien zowel de bovenliggende als de submap afstandsbedieningen hebben om naar te pushen. En vervolgens commit en push de bovenliggende map.


Antwoord 8, autoriteit 7%

Dit commando kan het probleem oplossen:

git add -A

Alle bestanden en submappen worden toegevoegd om te worden gevolgd.

Hopelijk helpt het


Antwoord 9, autoriteit 7%

Als het een submodule is die je erin moet cd’en, gebruik dan git add . && git commit -m 'Your message'

Vanaf daar kun je cd uitzetten en naar elke gewenste branch pushen.


Antwoord 10, autoriteit 7%

In mijn geval was het probleem dat de submap die ik wilde pushen een git-map zelf was

Dus ik deed het volgende

  1. Ga naar de submap die u wilt pushen en voer dit uit:
rm -rf .git
  1. Voer dan dit uit:
git rm --cached <subfolderName>
  1. Ga dan naar de hoofdprojectmap en voer dit uit (zorg ervoor dat je / achter de mapnaam toevoegt)
   git add <folderName>/
    git commit -m "Commit message"
    git push -f origin <branchName>

Antwoord 11, autoriteit 3%

Ik bleef hetzelfde bericht ontvangen, wat ik ook deed.

Om dit op te lossen, heb ik .gitignore verwijderd en ik krijg geen Github-wijzigingen meer die niet zijn voorbereid voor het commit-bericht. Voordat ik me één keer kon committen toen ik git add uitvoerde. en daarna zou hetzelfde bericht verschijnen.

Ik weet niet zeker waarom het .gitignore-bestand een probleem veroorzaakte, maar ik heb het op mijn lokale computer toegevoegd en hoogstwaarschijnlijk niet goed gesynchroniseerd.


Antwoord 12, autoriteit 3%

Ik heb alles geprobeerd wat op hele Stackoverflow werd voorgesteld. Niets, inclusief -a of -am of wat dan ook hielp.

Als je hetzelfde bent, doe dit dan.

Dus het probleem is dat git denkt dat een deel van je subdirectory een subproject is in je root-project. Tenminste, in mijn geval was dat niet zo. Het was gewoon een gewone submap. Geen individueel project.

Verplaats die gewone submap die niet wordt gepusht naar een tijdelijke locatie.

Verwijder de verborgen .git-map uit die map.

cdnaar de hoofdmap.

git initopnieuw.

git add .opnieuw.

git commit -m "removed notPushableDirectory temporarily"

git push -f origin master

We zullen het moeten forceren omdat de git het conflict zal zien tussen de externe git en je lokale structuur. Onthoud dat we dit conflict hebben gecreëerd. Maak je dus geen zorgen om het te forceren.

Nu zal het die submap als submap pushen en niet als submodule of subproject in je rootproject.


Antwoord 13, autoriteit 3%

Geloof dat dit gebeurt omdat je een onderliggende repository “submodule” hebt met wijzigingen die niet zijn gefaseerd en vastgelegd.

Had een soortgelijk probleem, waarbij mijn IDE niet-gecommitteerde wijzigingen bleef rapporteren, en de stage (git add .) en commit (git commit -m "message") uitvoerde commando’s hadden geen effect. Als je hier achteraf over nadenkt, komt dat waarschijnlijk omdat de onderliggende repository de wijzigingen had die moesten worden gefaseerd en vastgelegd, niet de bovenliggende repository.

Stappen die het probleem hebben opgelost

  1. cdin de submodule (heeft een verborgen map met de naam .git) en voer de commando’s uit om te stage (git add .) en commit (git commit -m "Update child repo")
  2. cd ..terug naar de bovenliggende repo, en voer de commando’s uit voor stage (git add .) en commit (git commit -m "Update parent repo")

Advies dat niet nuttig was

  • sudo rm -Rf .git== GEBRUIK DEZE COMMANDO NIET == het verwijdert permanent de geschiedenis van de submodule repository (het doel van GIT)
  • git add -A=== Niet-getrackte bestanden toegevoegd, maar probleem niet opgelost

Other episodes