Ankündigung

Einklappen
Keine Ankündigung bisher.

Arbeit mit github

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Arbeit mit github

    Ich muss jetzt hier mal blöd fragen wie ihr pull requests macht.
    Grundsäztliches vorgehen bei mir

    1. Ordner anlegen (ich mach das in einem separaten Verzeichnis unter /root):
    Code:
    cd /root
    mkdir smarthome
    2. Git kopieren als angemeldeter Benutzer
    Code:
    git clone https://JuMi2006:password@github.com/mknx/smarthome
    3. Hier weiß ich ehrlich gesagt nicht ganz was ich tue:
    Code:
    git fetch origin
    4. Jetzt in den develop-branch wechseln
    Code:
    git checkout develop
    5. Jetzt hab ich nen Bug gefunden, berichtigt und möchte einen "pull-request" senden damit da jemand drüber schaut - wie gehts weiter? Ich muss das auf der Konsole durchziehen ... also ohne GUI und würde das gerne verstehen.


    Grüße
    Umgezogen? Ja! ... Fertig? Nein!
    Baustelle 2.0 !

    #2
    puh, als ich das leztens in cli brachte gabs da noch kein offizielles feature, sondern nur mit dritt programm (zb git-pulls: Manage GitHub pull requests from the command line - The Changelog)

    ka ob das mittlerweile direkt geht.

    Kommentar


      #3
      Ich habe noch nie Pull Requests in das selbe Repo gemacht, von dem ich auschecke und bin mir auch nicht sicher ob das geht. Auf der Arbeit machen wird das so, dass ich das Repo forke, darin meinen Code hinzufüge und wenn ich fertig bin stelle ich über das github Web Interface den Pull Request an das ursprüngliche Repo von dem ich geforkt habe.
      Mit freundlichen Grüßen
      Niko Will

      Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
      - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

      Kommentar


        #4
        Also Anforderung ist definitiv das über CLI zu machen ... GUI will ich nicht da ich das headless mache.
        Umgezogen? Ja! ... Fertig? Nein!
        Baustelle 2.0 !

        Kommentar


          #5
          Vielleicht hilft das: git - GitHub: Can you issue pull requests from the command line? - Stack Overflow
          Mit freundlichen Grüßen
          Niko Will

          Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
          - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

          Kommentar


            #6
            Sicher, dass hier pull und push nicht ein bisschen durcheinander geht? Was der TE machen will, ist nämlich eigentlich ein commit...

            Kommentar


              #7
              Ja "pull" aus Sicht des eigentlichen projectowners...
              Jumi forkt sich den Code in sein Repo. Dann ändert er daran Sachen.
              Nun möchte er den Maintainer bitten, sich den Code vom Jumi zu "pullen", also zu holen. Dafür gibts den Request.
              Das ist halt die etwas andere Denke bei verteilten Repos im Gegensatz zu zentralen Repos (CSV und Co).

              Jumi Du müsstest den aktuellen Stand also forken (in ein eigenes github repo, ggf. auch nur in einen eigenen branch), Deine Änderungen machen und dann requesten...
              Online auf github geht das ja, haste sicher schon gesehen. Du willst nun wissen, ob Du das auch auf der command line machen kannst...
              Entweder wie im stackoverflow Link oben beschrieben oder via github-gem cli...
              Derzeit zwischen Kistenauspacken und Garten anlegen.
              Baublog im Profil.

              Kommentar


                #8
                So ich habs probiert und ist natürlich sauber in die Hose gegangen .

                Ich müsste wohl wirklich einen fork oder einen branch machen und daraus dann den pull-request machen. So richtig verstehe ich das aber immer noch nicht.

                Ich hatte es jetzt so mit hub weiter gemacht: hub · the command-line wrapper for git

                hub holen:
                Code:
                cd /usr/local/sbin
                curl http://hub.github.com/standalone -sLo
                chmod +x hub
                alias git=hub
                Danach dann mal der Konsolenauszug. Da war dann develop wohl nicht nicht auf aktuellestem Stand oder ich hab den pull-request nach master geschickt...egal ich habs nicht verstanden

                Code:
                root@black-automation:~/smarthome# git commit -m "Bugfix: rrdtool allows only 19 signs for DS-name"
                # On branch develop
                # 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:   plugins/rrd/__init__.py
                #
                # Untracked files:
                #   (use "git add <file>..." to include in what will be committed)
                #
                #       plugins/rrd/smarthome/
                no changes added to commit (use "git add" and/or "git commit -a")
                root@black-automation:~/smarthome# git pull-request
                github.com username: JuMi2006
                github.com password for JuMi2006 (never stored):
                https://github.com/mknx/smarthome/pull/24
                Fazit: Pull-Request #24 kann man getrost löschen

                Ein "git diff" bring jedenfalls nur meine Änderung hervor:
                Code:
                root@black-automation:~/smarthome# git diff
                diff --git a/plugins/rrd/__init__.py b/plugins/rrd/__init__.py
                index 7aac2ae..07bcea1 100755
                --- a/plugins/rrd/__init__.py
                +++ b/plugins/rrd/__init__.py
                @@ -186,7 +186,7 @@ class RRD():
                     def _create(self, rrd):
                         insert = []
                         tmp, sep, item_id = rrd['item'].id().rpartition('.')
                -        insert.append('DS:' + item_id + ':GAUGE:' + str(2 * self.step) + ':U:U'
                +        insert.append('DS:' + item_id[:19] + ':GAUGE:' + str(2 * self.step) + '
                         if rrd['min']:
                             insert.append('RRA:MIN:0.5:' + str(int(86400 / self.step)) + ':1825
                         if rrd['max']:
                Umgezogen? Ja! ... Fertig? Nein!
                Baustelle 2.0 !

                Kommentar


                  #9
                  Hi,

                  vllt. kann JNK mal seinen Workflow posten, der macht das bereits richtig.

                  Danke

                  Marcus

                  Kommentar


                    #10
                    Als erstes mache ich lokal einen neuen Branch (hier calendar) und wechsle dahin:

                    Code:
                    git checkout -b calendar
                    Dann ab ins repo damit:

                    Code:
                    git push origin calendar
                    Dann ändere ich die Dateien lokal und dann

                    Code:
                    git commit -a
                    Und die commit-Nachricht eingeben. Mit

                    Code:
                    git push
                    landet die Änderung dann auch auf github. Dann melde ich mich in github an, gehe auf Pull-Requests, "New", wähle über "Edit" mknx/develop und j-n-k/calendar aus. Und fertig.

                    Ganz am Anfang habe ich j-n-k/smarthome von mknx/smarthome ge-fork-ed. Etwas komplizierter ist das das mergen von upstream-Changes in den lokalen Branch, das geht "in etwa" so:

                    zweites repo "upstream" einfügen:

                    Code:
                    git remote add upstream git://github.com/mknx/smarthome.git
                    und mergen dann mit

                    Code:
                    git fetch upstream -v
                    git merge upstream/develop
                    Wenn es Konfilkte gibt, mit "git mergetool" beseitigen.

                    Gruss,

                    der Jan
                    KNX, DMX over E1.31, DALI, 1W, OpenHAB, MQTT

                    Kommentar


                      #11
                      Hallo Jan, besten Dank für die Erklärung.
                      Ich werde es heute Abend nochmal probieren, dann aus einem neuen branch und versuchen einen pull request nach develop zu machen.
                      Dann mach ich den pull request eben über die website. Es gilt für mich eben einen workflow zu finden der möglichst wenig/nichts mit GUI zu tun hat. Ein pull request auf der website ist aber am Ende auch kein Problem, ein Webbrowser steht ja immer zur Verfügung.

                      Falls #25 auch Kernschrott wird bitte ich um Endschuldigung. Marcus darf dann getrost wieder den deny/close button drücken .
                      Umgezogen? Ja! ... Fertig? Nein!
                      Baustelle 2.0 !

                      Kommentar


                        #12
                        So jetzt hab ichs, evtl. für die Nachwelt

                        1. Auf github.com einloggen und https://github.com/mknx/smarthome besuchen

                        2. Jetzt oben rechts auf "fork" klicken und damit hat man schon sein "eigenes" smarthome-repo

                        3. Jetzt gehts auf die Konsole und wir checken den eigenen fork aus:
                        Code:
                        cd /root
                        github
                        git clone https://USER:PASSWORD@github.com/USER/smarthome
                        4. Wechsel in den develop-branch
                        Code:
                        git checkout develop
                        5. Änderungen durchführen

                        6. commit machen und Kommentar eingeben
                        Code:
                        git commit -a
                        7. hoch damit
                        Code:
                        git push
                        8. Auf github.com dann pull request machen.

                        Ist für mich jetzt ein annehmbarer workflow ... da muss ich auch erstmal keine Angst haben mit einem push irgendwas kaputt zu machen.

                        Danke an alle Beteiligten!
                        Umgezogen? Ja! ... Fertig? Nein!
                        Baustelle 2.0 !

                        Kommentar


                          #13
                          Hi,

                          danke an Jan und Mirko für die Zusammenfassung. Ich denke ich werde es mal bei Gelegenheit in dev/README einarbeiten.

                          Bis bald

                          Marcus

                          Kommentar


                            #14
                            Eine Frage noch, kann ich im Produktivsystem einfach einen Wechsel von master auf develop machen?
                            Was wäre zu sichern (etc,items,logics) oder bleiben die von mir geänderten Dateien grundsätzlich erhalten?
                            Umgezogen? Ja! ... Fertig? Nein!
                            Baustelle 2.0 !

                            Kommentar


                              #15
                              Arbeit mit github

                              Die Dateien in etc, items, logics und var werden von git ignoriert. Und müssen bei einem Wechsel nich gesichert werden.

                              Kommentar

                              Lädt...
                              X