Android, git, Eclipse und der tägliche Wahnsinn!

  • 12 Antworten
  • Letztes Antwortdatum
StefMa

StefMa

Dauer-User
450
Hi,

ich versuche grade ein bisschen mit git zu spielen.
Die Grundlagen, wie alles funktioniert ect. ist mir inzwischen klar.
Nur in Verbindung mit Eclipse und echten Android Porjekten ist mir noch nicht ganz klar.

Also Frage 1.)
Welche Datein muss/kann ich ins .gitignore schieben? Also welche brauche ich nicht mit ins Branch schieben?

Frage 2.)
Bisher (nur zum Testen) habe ich es so gemacht, dass ich das komplette Projekt (welches in workspaces ist) in mein repo/ ordner verschiebe und dort dann einfach pushe.
Wenn ich das dann an einem andere PC runtergeladen habe und änderungen wieder gepusht habe, habe ich am "Haupt-PC" in Eclipse mein komplettes Projekt gelöscht und "from existing sources" aus meinen repos/ wieder hergestellt.
Das ist ja aber nicht Sinn der Sache! :D
Also wie macht man es richtig? Welche Daten schiebe ich hoch, dass ich diese in meinem Projekt einfach "ersetten" kann?!

Danke und Gruß

StefMa
 
Eclipse Android and gitignore - Stack Overflow
java - Typical .gitignore file for an Android app - Stack Overflow

Oder beispiele aus Github nehmen...
https://github.com/github/gitignore/blob/master/Android.gitignore
https://gist.github.com/keyboardsurfer/3240022

Ich schließe einfach den kompletten build-ordner aus (unter Eclipse heißt der aber glaub anders ...), Windows: thumbs.db, Mac: .DS_Store, etc.

Normalerweise hast du lokale eigene Gitrepositories, d.h. deine ausgecheckten Projekte sind für sich alleine lauffähig (branches, etc.). D.h. du kannst lokal machen was du willst und nur passende branches, etc. wieder hochpushen.
Auf dem zweiten PC pullst du dann und entweder wenn du da noch Änderungen hast, die noch nicht im entfernten Repo sind, musst du die commiten/verwerfen bevor du mit den Onlineänderungen mergen kannst.

Bei deiner Vorgehensweise wäre es aber so, dass du vermutlich an PC1 commitest, wenn du fertig bist. Dann an PC2 wieder pullst und weitermachst und wieder commitest. Und dann direkt an PC1 wieder pullen kannst, da du dort währenddessen keine Änderungen vorgenommen hast. (oder entwickelst du nen Teil auf PC1, und einen anderen Teil auf PC2?)

Neu importieren musst du dann nicht, höchstens mal ein Clean Project (Eclipse glaub ich heißts nur Clean), damit er geänderte Strings, etc. "besser" erkennt ...
 
  • Danke
Reaktionen: StefMa
Ich hab zwar noch nix gelesen, aber guck dir auf jeden Fall mal sourcetree an ;)

LG.

Gesendet von meinem GT-I9300 mit der Android-Hilfe.de App
 
  • Danke
Reaktionen: StefMa
kleinerkathe schrieb:
Ich schließe einfach den kompletten build-ordner aus (unter Eclipse heißt der aber glaub anders ...), Windows: thumbs.db, Mac: .DS_Store, etc.

Bei deiner Vorgehensweise wäre es aber so, dass du vermutlich an PC1 commitest, wenn du fertig bist. Dann an PC2 wieder pullst und weitermachst und wieder commitest. Und dann direkt an PC1 wieder pullen kannst, da du dort währenddessen keine Änderungen vorgenommen hast. (oder entwickelst du nen Teil auf PC1, und einen anderen Teil auf PC2?)

Danke erstmal....
Ich glaube es gibt ein problem bei mir. Ich habe den workspace order und einen repo ordern. In repo push und pull ich immer und im workspace arbeite ich mit eclipse. Denke das müsste ich erstmal zusammen führen oder?

Ich möchte einfach meine aktuelle Version meines Projektes hochladen. Dann Änderungen vornehmen (egal von pc1 oder pc2) und das ins Master wieder einführen. Wenn alles klappt. Allerdings scheitert es eben schon daran, dass auf beiden PCs das Projekt besteht. (mit unterschiedlichen code). Wie sage ich jetzt dem Projekt im workspace, das es sich dem von repo anpasst?

Gruß

Gesendet von meinem Nexus 10 mit der Android-Hilfe.de App
 
Also ich hatte Freitag erst ne Git Schulung (wobei die eher sehr oberflächlich war).
Du musst halt unterscheiden zwischen Master (remote Repository) deinem lokalen Repo (vermutlich dann Repo) und deinem workspace.

Bei Git gibt es 3 Ebenen (statt 2 wie z.B. bei SVN).
Im SVN hast du das Repository, checks aus, arbeitest checks ein und es liegt für alle anderen verfügbar im Repo.

Bei Git gibt es quasi eine Stufe mehr, Pull vom Master in dein lokales repository, von da aus läuft es dann eigentlich wie mit SVN.. du checkst dein Project dann in deinen workspace aus.

Wenn du nun Änderungen hast musst du die erst mal comitten (bis hierhin im Prinzip wie bei SVN) dann liegen die aber nur in deinem lokalen Repository.
Wenn du am anderen Rechner auch arbeiten willst musst du vorher erst mit einem Push dein lokales Repository in den Master schicken.

Wenn du nur allein an deinem Projekt arbeitest ist git aber quasi eine Stufe zu viel, da tut's ein SVN wahrscheinlich eher, da reicht dann der commit und du kannst auf dem anderen Rechner ein update machen und alles is gut ;)


Ich muss dazu aber sagen, dass ich GIT noch nicht aktiv selbst genutzt hab und das nur die Theorie dazu ist (bei uns wird halt demnächst von SVN auf GIT umgestellt).
 
  • Danke
Reaktionen: StefMa
Hi,

danke erstmal :)
Aber so genau verstehe ich das noch immer nicht. (Möchte auch nicht auf SVN umswitchen ;)).

Habe im Anhang nochmal ein Bild, wo genau das Problem liegt bzw. wie ich vorgehe.

Ich glaube auch, dass ich schon einen Fehler mache in dem ich den code vom workspace in repo/ Kopiere *.* Das kann doch auch irgendwie nich sein, oder? :o

Gruß

€dit: Normalerweise müsste ich ja im Schritt 4 auch wieder die Datein von repo/ ins workspace/ kopieren. Das wäre doch "eigentlich" die Lösung. Aber das "macht man" ja nicht so... oder? :D
 

Anhänge

  • git_question.png
    git_question.png
    13,5 KB · Aufrufe: 257
hmm. welches eclipse plugin nutzt du denn?

Eigentlich musst du (wie gesagt mehr theorie als bei praxis bisher bei mir) das projekt noch aus dem lokalen repository auschecken, bzw da müsste es doch auch eine update funktion geben.

wenn ich heute abend mal zeit hab versuch ich das evtl auch mal :D
 
Hast du dir mal sourcetree in Zwischenzeit angeguckt? Ich finde das ist das angenehmste Tool für git.

LG. Dagobert

Gesendet von meinem GT-I9300 mit der Android-Hilfe.de App
 
Ich benutzte überhaupt kein plugin oder tool :tongue:
Mache alles über das Terminal. (Nutze Linux) aber das sollte ja eigentlich egal sein...

Gruß
 
Warum kopierst du dir das Projekt überhaupt in den workspace, das versteh ich nicht ...

Du kannst das Häckchen bei Eclipse draussen lassen bzgl. "Copy to workspace" und eigtl. direkt im ausgecheckten/lokalen git-Ordner arbeiten ...
 
kleinerkathe schrieb:
Warum kopierst du dir das Projekt überhaupt in den workspace, das versteh ich nicht ....

Genau das habe ich ja schon geschrieben :D
Ich glaube auch, dass ich schon einen Fehler mache in dem ich den code vom workspace in repo/ Kopiere *.*

Ich kann ja den Order, den ich "pulle", direkt als "workspace"-Projekt-Ordner nehmen. Dann ändert sich ja der Code beim starten von eclipse automatisch, wenn ich wieder "pulle" :D

Glaube jetzt hab ich es, wie es funktioniert ;)

Grß
 
Statusupdate:
Also liegt wirklich daran, dass ich mit jeweils 2 Ordnern gearbeitet habe.
Es ist so, dass man das VErzeichniss, welches auch die .git-Datei enthält, als Projekt nehmen kann. Eclipse erkennt das. Wenn man z.B. 2 Branche hat (dev und master), dann kann man in der Console ganz gemütlich switchen. Eclipse erkennt das und zeigt dir voll autpmatisch den entsprechenden Branch an.

Zum Bild auf Seite 1: Der workspace/ fällt einfach weg ;)

Danke an alle und Gruß
 
Wenn du neu mit git anfängst, guck dir auch mal den "gitflow" an ;)
Der ist ganz nett wie ich finde.

lg. Dagobert
 

Ähnliche Themen

M
Antworten
21
Aufrufe
1.360
swa00
swa00
Mr-Fisch
Antworten
5
Aufrufe
966
migi01
migi01
Mr-Fisch
Antworten
8
Aufrufe
1.006
Mr-Fisch
Mr-Fisch
M
Antworten
9
Aufrufe
790
mkuz24
M
A
Antworten
5
Aufrufe
694
swa00
swa00
Zurück
Oben Unten