Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008

Hjälp Git/Github

Hej! Har följt denna tutorial:

http://readwrite.com/2013/09/30/understanding-github-a-journe...

Allt gick bra tills jag skulle pusha upp innehåll till github enligt del 2.

Man ska kunna skriva:

git push gitbash

men får bara en massa felmeddelanden.

Kör Windows 7.

Chassi: Cooler Master Stacker 831 svart || Intel i5-3570K || Asus GeForce GTX 680 DirectCU II 2GB || Asus P8Z77-V LE PLUS || Kingston HyperX Genesis 4x4GB || Intel SSD 335 180 GB || Windows 7

Trädvy Permalänk
Medlem
Plats
Uppsala
Registrerad
Maj 2013

Vad får du för fel?

Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008

@Aene:

Skrev git push och fick följande svar.

$ git push warning: push.default is unset; its implicit value has changed in Git 2.0 from 'matching' to 'simple'. To squelch this message and maintain the traditional behavior, use: git config --global push.default matching To squelch this message and adopt the new behavior now, use: git config --global push.default simple When push.default is set to 'matching', git will push local branches to the remote branches that already exist with the same name. Since Git 2.0, Git defaults to the more conservative 'simple' behavior, which only pushes the current branch to the corresponding remote branch that 'git pull' uses to update the current branch. See 'git help config' and search for 'push.default' for further information. (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode 'current' instead of 'simple' if you sometimes use older versions of Git) fatal: The current branch master has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin master

Det var efter att jag skrivit detta:

git remote add origin https://github.com/username/myproject.git

Sedan kollade jag med

git remote -v

Det verkade fungera.

Chassi: Cooler Master Stacker 831 svart || Intel i5-3570K || Asus GeForce GTX 680 DirectCU II 2GB || Asus P8Z77-V LE PLUS || Kingston HyperX Genesis 4x4GB || Intel SSD 335 180 GB || Windows 7

Trädvy Permalänk
Entusiast
Testpilot
Plats
Chalmers
Registrerad
Aug 2011
Skrivet av Larsp777:

@Aene:

Skrev git push och fick följande svar.

$ git push warning: push.default is unset; its implicit Git 2.0 from 'matching' to 'simple'. To sque and maintain the traditional behavior, use: git config --global push.default matching To squelch this message and adopt the new be git config --global push.default simple When push.default is set to 'matching', git to the remote branches that already exist wi Since Git 2.0, Git defaults to the more cons behavior, which only pushes the current bran remote branch that 'git pull' uses to update See 'git help config' and search for 'push.d (the 'simple' mode was introduced in Git 1.7 'current' instead of 'simple' if you sometim fatal: The current branch master has no upst To push the current branch and set the remot git push --set-upstream origin master

Det var efter att jag skrivit detta:

Sedan kollade jag med

git remote -v

Det verkade fungera.

Använd [code] när du postar kod, så blir den läsbar.

Jag skulle vilja att du kör git status (din bästa vän i Git!) och postar svaret här.

Skulle också rekommendera att du kör git config --global push.default simple, som den föreslår, för att slippa det meddelandet varje gång du pushar och samtidigt ställa in Git på att bara pusha den branch du är på.

fatal: The current branch master has no upst To push the current branch and set the remot git push --set-upstream origin master

Prova git push --set-upstream origin master, som den föreslår.

5930K • Corsair DP 32 GiB • EVGA GTX 980 • 2x Swift PG278Q
Better SweClockersDisplayPort över USB-C

Köp processor för framtiden™, men inte grafikkort.

Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008

@Alling:

$ 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) modified: Readme.txt Untracked files: (use "git add <file>..." to include in what will be committed) test.txt no changes added to commit (use "git add" and/or "git commit -a")

git add har jag koll på tror jag för att "uppmärksamma" git på förändringar.

Chassi: Cooler Master Stacker 831 svart || Intel i5-3570K || Asus GeForce GTX 680 DirectCU II 2GB || Asus P8Z77-V LE PLUS || Kingston HyperX Genesis 4x4GB || Intel SSD 335 180 GB || Windows 7

Trädvy Permalänk
Entusiast
Testpilot
Plats
Chalmers
Registrerad
Aug 2011
Skrivet av Larsp777:

@Alling:

$ 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) modified: Readme.txt Untracked files: (use "git add <file>..." to include in what will be committed) test.txt no changes added to commit (use "git add" and/or "git commit -a")

git add har jag koll på tror jag för att "uppmärksamma" git på förändringar.

Schysst BB-uppmärkning!

$ git status On branch master

Du är på branchen master. Det är ofta viktigt, men i början brukar man bara ha en branch, och det är just 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) modified: Readme.txt

Här syns filer som Git vet att du vill att den ska tracka, men som du inte addat. Tipsen är ju klara nog eftersom du är van vid git add.

Untracked files: (use "git add <file>..." to include in what will be committed) test.txt

Filer som du aldrig gjort git add på.

no changes added to commit (use "git add" and/or "git commit -a")

Det finns inget att committa för att du inte har addat något. Det är som det ska.

Nu vet vi att du är på branchen master. Har du kört git config --global push.default simple?

5930K • Corsair DP 32 GiB • EVGA GTX 980 • 2x Swift PG278Q
Better SweClockersDisplayPort över USB-C

Köp processor för framtiden™, men inte grafikkort.

Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008

@Alling:

Tack

Jo, att man ska köra add på filer som är nya förändrade och sedan commita dom tror jag att jag har koll på....:/

Det är när jag ska pusha upp filer till gitHub som det verkar bli knas.

Körde din rad nu. Ska jag prova att pusha igen?

Chassi: Cooler Master Stacker 831 svart || Intel i5-3570K || Asus GeForce GTX 680 DirectCU II 2GB || Asus P8Z77-V LE PLUS || Kingston HyperX Genesis 4x4GB || Intel SSD 335 180 GB || Windows 7

Trädvy Permalänk
Entusiast
Testpilot
Plats
Chalmers
Registrerad
Aug 2011

Måste också tipsa om den fantastiska funktionen alias i Git. Den låter dig skapa "genvägar" till kommandon som du ofta använder:

git config --global alias.st status

Förklaring:

  • --global: Talar om för Git att denna inställning ska gälla vilket repository du än är i, dvs vilket projekt du än arbetar på.

  • alias: Det är ett alias du skapar.

  • st: Talar om för Git att när du skriver st ...

  • status: ... så ska det bli som att du skrev status.

Dina inställningar sparas i (den dolda) filen ~/.gitconfig (Linux/Mac) eller %HOMEPATH%\.gitconfig (Windows). Den kan man både redigera och flytta mellan datorer sedan.

5930K • Corsair DP 32 GiB • EVGA GTX 980 • 2x Swift PG278Q
Better SweClockersDisplayPort över USB-C

Köp processor för framtiden™, men inte grafikkort.

Trädvy Permalänk
Entusiast
Testpilot
Plats
Chalmers
Registrerad
Aug 2011
Skrivet av Larsp777:

@Alling:

Tack

Jo, att man ska köra add på filer som är nya förändrade och sedan commita dom tror jag att jag har koll på....:/

Det är när jag ska pusha upp filer till gitHub som det verkar bli knas.

Körde din rad nu. Ska jag prova att pusha igen?

Ja, prova det. Posta svaret sedan.

5930K • Corsair DP 32 GiB • EVGA GTX 980 • 2x Swift PG278Q
Better SweClockersDisplayPort över USB-C

Köp processor för framtiden™, men inte grafikkort.

Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008

@Alling:

Tack för tipsen, mycket uppskattat!

Här är svaret:

$ git push fatal: The current branch master has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin master

Så om jag fattar det rätt så finns ingen gren för att skicka filer till gitHub?

Behövs det?

Ska jag köra det de föreslår?

Edit: En annan sak jag har funderat på:

I den tutorial som jag skickade ska man ju göra en koppling till gitHub. På andra ställen klonar man sitt repository genom att använda IP-adressen. När bör man göra vad?

Edit 2:

Körde den föreslagna raden. Fick skriva in användarnamn och lösenord till github och fick sedan följande svar:

$ git push --set-upstream origin master To https://github.com/net777/gitTest.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'https://github.com/net777/gitTest.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Chassi: Cooler Master Stacker 831 svart || Intel i5-3570K || Asus GeForce GTX 680 DirectCU II 2GB || Asus P8Z77-V LE PLUS || Kingston HyperX Genesis 4x4GB || Intel SSD 335 180 GB || Windows 7

Trädvy Permalänk
Entusiast
Testpilot
Plats
Chalmers
Registrerad
Aug 2011
Skrivet av Larsp777:

@Alling:

Tack för tipsen, mycket uppskattat!

Här är svaret:

$ git push fatal: The current branch master has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin master

Så om jag fattar det rätt så finns ingen gren för att skicka filer till gitHub?

Behövs det?

Ska jag köra det de föreslår?

Ja, det borde du göra.

Citat:

Edit: En annan sak jag har funderat på:

I den tutorial som jag skickade ska man ju göra en koppling till gitHub. På andra ställen klonar man sitt repository genom att använda IP-adressen. När bör man göra vad?

Git är decentraliserat by design. Det finns egentligen aldrig något "centralt repo", utan det är upp till varje användare vad man vill betrakta som sitt origin. När man arbetar mot GitHub är alla projektmedlemmar överens om att origin finns där; alla pushar dit och pullar därifrån.

Jag brukar klona in mig med SSH:

1. Skapa en SSH-nyckel

Egentligen en privat och en publik nyckel. Den privata ligger på din dator och ska inte spridas. Den publika kommer du ge till GitHub, så förstår GitHub att det verkligen är du som pullar och pushar sedan.

(Om du kör Windows måste du köra alla kommandon i Git Bash.)

$ ssh-keygen

Den kommer nu fråga var du vill spara nycklarna. Tryck bara Enter så hamnar de i ~/.ssh/. Den kommer också fråga efter ett lösenord. Om du skriver in något kan du behöva skriva det ibland eller varje gång när du pushar eller pullar. När den visar ett lustigt mönster i en liten ruta är den klar.

Den publika nyckeln ligger nu i ~/.ssh/id_rsa.pub. Den bör börja med ssh-rsa. Kopiera hela innehållet i den filen.

2. Lägg till din SSH-nyckel på GitHub

Gå till SSH Keys under inställningsmenyn på GitHub. Klicka på New SSH Key och ge den ett valfritt namn så att du vet vilken som är vilken, till exempel LARSP777-LAPTOP.

Klistra in din publika nyckel som du kopierade i rutan Key och spara.

3. Klona in dig i ett repo

För att klona in sig i ett repo använder man git clone. Så här klonar man in sig i SimonAlling/better-sweclockers:

$ git clone git@github.com:SimonAlling/better-sweclockers.git

  • SimonAlling: Användarnamnet på den person som har repot.

  • better-sweclockers: Namnet på repot.

Det som ska stå efter git clone finns även på repots sida på GitHub, nära knappen Download ZIP.

4. Bekräfta att du vill ansluta

Git brukar fråga så här när man pushar första gången:

$ git push The authenticity of host [...] can't be established. RSA key fingerprint is .... Are you sure you want to continue connecting (yes/no)?

Skriv då yes.

5930K • Corsair DP 32 GiB • EVGA GTX 980 • 2x Swift PG278Q
Better SweClockersDisplayPort över USB-C

Köp processor för framtiden™, men inte grafikkort.

Trädvy Permalänk
Entusiast
Testpilot
Plats
Chalmers
Registrerad
Aug 2011
Skrivet av Larsp777:

Körde den föreslagna raden. Fick skriva in användarnamn och lösenord till github och fick sedan följande svar:

$ git push --set-upstream origin master To https://github.com/net777/gitTest.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'https://github.com/net777/gitTest.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Det där kan verka irriterande, men det är alldeles nödvändigt att det blir så för att man inte ska skriva över varandras arbete.

Det den säger är att det finns commits i origin (GitHub) som du inte har. Du måste hämta och applicera dem i ditt lokala repo innan du får pusha:

$ git pull

Om allt går väl kommer Git hämta allt nytt arbete och slå ihop/lägga till det i din lokala mapp. Men om både du och någon annan har ändrat på samma ställe kan Git inte veta vilket av det du vill behålla. Du får då en merge conflict som du måste lösa manuellt.

5930K • Corsair DP 32 GiB • EVGA GTX 980 • 2x Swift PG278Q
Better SweClockersDisplayPort över USB-C

Köp processor för framtiden™, men inte grafikkort.

Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008

Ska ev. hålla en nybörjarkurs i Git/Github.

Om allas repositories är publika, kan jag se dom då?

Räcker det då med namnet på deras repository för att jag ska hitta dom?

Chassi: Cooler Master Stacker 831 svart || Intel i5-3570K || Asus GeForce GTX 680 DirectCU II 2GB || Asus P8Z77-V LE PLUS || Kingston HyperX Genesis 4x4GB || Intel SSD 335 180 GB || Windows 7

Trädvy Permalänk
Medlem
Plats
#Archlinux
Registrerad
Jun 2007
Skrivet av Larsp777:

Ska ev. hålla en nybörjarkurs i Git/Github.

Om allas repositories är publika, kan jag se dom då?

Räcker det då med namnet på deras repository för att jag ska hitta dom?

Vilka menar du?

Du har en remote som alla jobbar mot i gruppen, sedan har varje person en egen lokal kopia som uppdateras via pull och egna commits, och kan använda fetch för att se om det finns nya ändringar på remote.

Github har som default att alla är publika men betalar man en viss summa så kan man gömma sin kod och låta det vara privat. Bitbucket tillåter privata repos till en visst antal och kräver sedan att man skall betala för att skapa fler.

Sedan kan man enkelt sätta upp egna git repos med Gitlab eller https://gogs.io/ på sin egen server.

Jobbar man mot något större projekt brukar varje utvecklare mer eller mindre ha egna repos genom att man forkar och sedan kör pull requests mot master repo eller kör en ny branch för varje funktion du vill lägga till.

Arch - Makepkg, not war -||- Asus Crosshair Hero VI -||- GSkill 16GiB DDR4 15-15-15-35-1T 3600Mhz -||- AMD 1600x @ 4.1GHz -||- nVidia MSI 970 Gaming -||- Samsung 850 Pro -||- EVEGA G2 750W -||- Corsair 570x -||- Asus Xonar Essence STX -||- Sennheiser HD-650 -||
Arch Linux, one hell of a distribution.

Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008
Skrivet av Commander:

Vilka menar du?

Du har en remote som alla jobbar mot i gruppen, sedan har varje person en egen lokal kopia som uppdateras via pull och egna commits, och kan använda fetch för att se om det finns nya ändringar på remote.

Github har som default att alla är publika men betalar man en viss summa så kan man gömma sin kod och låta det vara privat. Bitbucket tillåter privata repos till en visst antal och kräver sedan att man skall betala för att skapa fler.

Sedan kan man enkelt sätta upp egna git repos med Gitlab eller https://gogs.io/ på sin egen server.

Jobbar man mot något större projekt brukar varje utvecklare mer eller mindre ha egna repos genom att man forkar och sedan kör pull requests mot master repo eller kör en ny branch för varje funktion du vill lägga till.

Tänkte mer att om det är en undervisningssituation så är det kanske bättre att varje elev har sitt eget repo.

Då skulle jag kunna kolla vilka som gjort commits och vilka som kommit efter tänkte jag.

Chassi: Cooler Master Stacker 831 svart || Intel i5-3570K || Asus GeForce GTX 680 DirectCU II 2GB || Asus P8Z77-V LE PLUS || Kingston HyperX Genesis 4x4GB || Intel SSD 335 180 GB || Windows 7

Trädvy Permalänk
Medlem
Plats
#Archlinux
Registrerad
Jun 2007
Skrivet av Larsp777:

Tänkte mer att om det är en undervisningssituation så är det kanske bättre att varje elev har sitt eget repo.

Då skulle jag kunna kolla vilka som gjort commits och vilka som kommit efter tänkte jag.

Du kan ju skapa en repo som eleverna skall klona ner och sedan skapa en egen branch och commita egna ändringar. På så vis kan du sedan träna på hur man mergar samt fixar merg konflikter.

Arch - Makepkg, not war -||- Asus Crosshair Hero VI -||- GSkill 16GiB DDR4 15-15-15-35-1T 3600Mhz -||- AMD 1600x @ 4.1GHz -||- nVidia MSI 970 Gaming -||- Samsung 850 Pro -||- EVEGA G2 750W -||- Corsair 570x -||- Asus Xonar Essence STX -||- Sennheiser HD-650 -||
Arch Linux, one hell of a distribution.

Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008
Skrivet av Commander:

Du kan ju skapa en repo som eleverna skall klona ner och sedan skapa en egen branch och commita egna ändringar. På så vis kan du sedan träna på hur man mergar samt fixar merg konflikter.

Kan ju vara en bra ide.

Förresten så har jag lite scenario jag undrar över.

Låt oss säga att man vill gå tillbaka till senaste commit, då kör man väl git checkout.

Om jag nu vill gå tillbaka till en äldre commit som finns på github, hur gör jag då. Är det pull med något parameter?

Chassi: Cooler Master Stacker 831 svart || Intel i5-3570K || Asus GeForce GTX 680 DirectCU II 2GB || Asus P8Z77-V LE PLUS || Kingston HyperX Genesis 4x4GB || Intel SSD 335 180 GB || Windows 7

Trädvy Permalänk
Entusiast
Testpilot
Plats
Chalmers
Registrerad
Aug 2011
Skrivet av Larsp777:

Kan ju vara en bra ide.

Förresten så har jag lite scenario jag undrar över.

Låt oss säga att man vill gå tillbaka till senaste commit, då kör man väl git checkout.

Om jag nu vill gå tillbaka till en äldre commit som finns på github, hur gör jag då. Är det pull med något parameter?

Git är decentraliserat by design. Alla som samarbetar på ett projekt har normalt hela historiken (fram tills när man senast pullade) lokalt, så "en äldre commit som finns på GitHub" finns även på varje enskild medarbetares dator. Inte säker på vad du menar med "gå tillbaka".

Om du tillfälligt vill hoppa tillbaka till en specifik commit utan att radera någonting efter den:

git checkout <commit>

där <commit> kan vara ett sådant ID som står framför varje commit om du kör git log --oneline eller en relativ referens, exempelvis HEAD~5 för fem commits bakåt i tiden. Exempel:

$ git checkout 4bdca27 You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b new_branch_name HEAD is now at 4bdca27... Add Connect button to toolbar

Om du vill att alla commits efter en specifik commit ska "ångras":

5930K • Corsair DP 32 GiB • EVGA GTX 980 • 2x Swift PG278Q
Better SweClockersDisplayPort över USB-C

Köp processor för framtiden™, men inte grafikkort.

Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008
Skrivet av Alling:

Git är decentraliserat by design. Alla som samarbetar på ett projekt har normalt hela historiken (fram tills när man senast pullade) lokalt, så "en äldre commit som finns på GitHub" finns även på varje enskild medarbetares dator. Inte säker på vad du menar med "gå tillbaka".

Om du tillfälligt vill hoppa tillbaka till en specifik commit utan att radera någonting efter den:

git checkout <commit>

där <commit> kan vara ett sådant ID som står framför varje commit om du kör git log --oneline eller en relativ referens, exempelvis HEAD~5 för fem commits bakåt i tiden. Exempel:

$ git checkout 4bdca27 You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b new_branch_name HEAD is now at 4bdca27... Add Connect button to toolbar

Om du vill att alla commits efter en specifik commit ska "ångras":

Ok, såklart har man alla commits lokalt också... Funderade på vad eleverna kunde fråga om.

Så egentligen behövs bara github för samarbete eller backup?

Chassi: Cooler Master Stacker 831 svart || Intel i5-3570K || Asus GeForce GTX 680 DirectCU II 2GB || Asus P8Z77-V LE PLUS || Kingston HyperX Genesis 4x4GB || Intel SSD 335 180 GB || Windows 7

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Apr 2008
Skrivet av Larsp777:

Ok, såklart har man alla commits lokalt också... Funderade på vad eleverna kunde fråga om.

Så egentligen behövs bara github för samarbete eller backup?

Ja, det är ju en fundamental egenskap hos ett distribuerat versionshanteringssytem

Om vill lära dig git så rekommenderar jag att du läser lite i http://www.git-scm.com/book/en/v2 som går igenom det mesta. Dessutom finns https://pcottle.github.io/learnGitBranching/ som är mer utav en interaktiv guide som visar vad diverse git-kommandon gör.

Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008
Skrivet av lntg:

Ja, det är ju en fundamental egenskap hos ett distribuerat versionshanteringssytem

Om vill lära dig git så rekommenderar jag att du läser lite i http://www.git-scm.com/book/en/v2 som går igenom det mesta. Dessutom finns https://pcottle.github.io/learnGitBranching/ som är mer utav en interaktiv guide som visar vad diverse git-kommandon gör.

Jo, det där med distribuerat har jag koll på (tror jag i alla fall...). Trodde jag kunde tillräckligt för att lära ut grunderna men ju mer jag lär mig desto svårare verkar det...

Checkout görs ju för ny "branch" men också för att titta på branch. Sedan också för att återställa commit väl. Snurrigt tycker jag.

Ska kolla på dina förslag.

Chassi: Cooler Master Stacker 831 svart || Intel i5-3570K || Asus GeForce GTX 680 DirectCU II 2GB || Asus P8Z77-V LE PLUS || Kingston HyperX Genesis 4x4GB || Intel SSD 335 180 GB || Windows 7

Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008

Om man gör en ändring och försöker starta programmet, sidan eller vad det är, och det kraschar.

Vad gör man då normalt?

Letar upp filen som fungerade på gitHub eller kör git checkout <commit-id>?

Chassi: Cooler Master Stacker 831 svart || Intel i5-3570K || Asus GeForce GTX 680 DirectCU II 2GB || Asus P8Z77-V LE PLUS || Kingston HyperX Genesis 4x4GB || Intel SSD 335 180 GB || Windows 7

Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Maj 2004

@Larsp777

Jag ger dig standardsvaret, "det beror ju på".

Har man INTE pushat till centralt repo så fixar man ju lämpligtvis problemet och lägger till det i sin commit med "git commit --amend".

Har man pushat till centralt repo så vill man inte ändra historiken så då får man se till att skapa en ny commit som fixar problemet.

Vill man se hur kodbasen såg ut innan den felaktiga commiten gör man det med exempelvis "git checkout <commit-id>", att börja hålla på med lösa filer och dra ner dessa från GitHub känns inte som en bra lösning då du då går runt hela finessen med ett versionshanteringssystem...

Läs även på vad de olika typerna av "git reset --hard/soft/mixed" gör, då det också är en möjlighet beroende på hur din struktur ser ut:
https://git-scm.com/docs/git-reset

Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008
Skrivet av thulin82:

@Larsp777

Jag ger dig standardsvaret, "det beror ju på".

Har man INTE pushat till centralt repo så fixar man ju lämpligtvis problemet och lägger till det i sin commit med "git commit --amend".

Har man pushat till centralt repo så vill man inte ändra historiken så då får man se till att skapa en ny commit som fixar problemet.

Vill man se hur kodbasen såg ut innan den felaktiga commiten gör man det med exempelvis "git checkout <commit-id>", att börja hålla på med lösa filer och dra ner dessa från GitHub känns inte som en bra lösning då du då går runt hela finessen med ett versionshanteringssystem...

Läs även på vad de olika typerna av "git reset --hard/soft/mixed" gör, då det också är en möjlighet beroende på hur din struktur ser ut:
https://git-scm.com/docs/git-reset

Jo, tänkte att man testar en funktion och sedan sidan ser helt fel ut eller program inte startar.

Git checkout kan nog vara en lösning.

Har hört att Git är enkelt men jag vet inte...

Add, commit, pull, push är ju inga problem. Vissa ssker känns dock omständliga.

Fast det räcker väl långt.

Tackar!

Skickades från m.sweclockers.com

Chassi: Cooler Master Stacker 831 svart || Intel i5-3570K || Asus GeForce GTX 680 DirectCU II 2GB || Asus P8Z77-V LE PLUS || Kingston HyperX Genesis 4x4GB || Intel SSD 335 180 GB || Windows 7

Trädvy Permalänk
Medlem
Plats
#Archlinux
Registrerad
Jun 2007
Skrivet av Larsp777:

Jo, tänkte att man testar en funktion och sedan sidan ser helt fel ut eller program inte startar.

Git checkout kan nog vara en lösning.

Har hört att Git är enkelt men jag vet inte...

Add, commit, pull, push är ju inga problem. Vissa ssker känns dock omständliga.

Fast det räcker väl långt.

Tackar!

Skickades från m.sweclockers.com

Ser inte problemet här.
Antingen pushar du commits när du väl har testat din kod (ie kod review). Eller så fixar du koden och commitar fix och då om du inte pushat har du valet att pusha både problemet och fixen eller ammendar problemet och pushar correct direkt eller revertar om det är något enkelt som att du tycker hela kommiten var fel.
Vad är meningen med ett versionssystem om man bara skall ha perfekta kodbitar på repon? (vilket lär endå aldrig hända).

Arch - Makepkg, not war -||- Asus Crosshair Hero VI -||- GSkill 16GiB DDR4 15-15-15-35-1T 3600Mhz -||- AMD 1600x @ 4.1GHz -||- nVidia MSI 970 Gaming -||- Samsung 850 Pro -||- EVEGA G2 750W -||- Corsair 570x -||- Asus Xonar Essence STX -||- Sennheiser HD-650 -||
Arch Linux, one hell of a distribution.

Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008
Skrivet av Commander:

Ser inte problemet här.
Antingen pushar du commits när du väl har testat din kod (ie kod review). Eller så fixar du koden och commitar fix och då om du inte pushat har du valet att pusha både problemet och fixen eller ammendar problemet och pushar correct direkt eller revertar om det är något enkelt som att du tycker hela kommiten var fel.
Vad är meningen med ett versionssystem om man bara skall ha perfekta kodbitar på repon? (vilket lär endå aldrig hända).

Nja, jag tänkte mer att om jag gör något som helt fel och vill ha tillbaka en gammal commit. Vilket var det mest korrekta förfarandet.

Chassi: Cooler Master Stacker 831 svart || Intel i5-3570K || Asus GeForce GTX 680 DirectCU II 2GB || Asus P8Z77-V LE PLUS || Kingston HyperX Genesis 4x4GB || Intel SSD 335 180 GB || Windows 7