Emacs - Wie man ein Git-Repository auf mehrere Remotes pusht

Ich bitte Sie, Emacs / Magit zu verwenden, um die lokalen Repository-Änderungen auf einen Schlag auf die Remote-Website und auf Github zu übertragen.

Ich habe einen Thread gefunden, der nicht mit Emacs / Magit zu tun hat (https://stackoverflow.com/a/3195446/2112489), mit Kommentaren, die besagen, dass dies die endgültige Antwort auf das Drücken auf eine Fernbedienung und auf Github ist und ein paar hundert Daumen hoch sind. Ich gehe davon aus (vielleicht falsch), dass dies ein guter Ausgangspunkt für die. Istlokal .gitconfig Datei in der$HOME Verzeichnis auf meinem Computer.

[remote "GitHub"]
    url = git@github.com:elliottcable/Paws.o.git
    fetch = +refs/heads/*:ref,s/remotes/GitHub/*
[branch "Master"]
    remote = GitHub
    merge = refs/heads/Master
[remote "Codaset"]
    url = git@codaset.com:elliottcable/paws-o.git
    fetch = +refs/heads/*:refs/remotes/Codaset/*
[remote "Paws"]
    url = git@github.com:Paws/Paws.o.git
    fetch = +refs/heads/*:refs/remotes/Paws/*

Der grundlegende Push-Befehl in Emacs / Magit gibt immer nur einen Push aus:

C-u P P [and then use arrow keys to select from the choices in the minibuffer] RET

Siehe das Magit-Cheatsheet der verfügbaren Befehle:http://daemianmack.com/magit-cheatsheet.html

Vorsätzliches Denken - verwenden/usr/local/git/bin/git remote -v Um eine Liste der bereits konfigurierten Fernbedienungen zu erhalten, verwenden Sie die Ergebnisse, um die einzelnen Fernbedienungen aufzurufen. . . machbar, aber komplex.

$ MP:my_project.git HOME$ /usr/local/git/bin/git remote -v

  origin    git@github.com:lawlist/my_project.git (fetch)
  origin    git@github.com:lawlist/my_project.git (push)
  remote_website    lawlist@my-website.com:my_project.git (fetch)
  remote_website    lawlist@my-website.com:my_project.git (push)

BEFEHLSZEILENREZEPT - separat auf die Fernbedienung und auf Github drücken:

;; Setup the remote repository and the hook; and the remote destination folder.
ssh lawlist@my-website.com
mkdir /home/lawlist/my_project.git
cd my_project.git
git init --bare
;; git update-server-info # If planning to serve via HTTP
cat > /home/lawlist/my_project.git/hooks/post-receive ;; RET
#!/bin/sh ;; RET
GIT_WORK_TREE=/home/lawlist/my_project git checkout -f ;; RET
;; C-d
chmod 755 /home/lawlist/my_project.git/hooks/post-receive
mkdir /home/lawlist/my_project
exit

;; On local machine.
mkdir /Users/HOME/.0.data/.0.emacs/elpa/my_project.git
touch /Users/HOME/.0.data/.0.emacs/elpa/my_project.git/README.md
cd /Users/HOME/.0.data/.0.emacs/elpa/my_project.git
/usr/local/git/bin/git init
/usr/local/git/bin/git add .
/usr/local/git/bin/git commit -m "First commit."
curl -u lawlist:12345678 https://api.github.com/user/repos -d '{"name":"my_project.git"}'
/usr/local/git/bin/git remote add origin git@github.com:lawlist/my_project.git
/usr/local/git/bin/git remote add remote_website lawlist@my-website.com:my_project.git
/usr/local/git/bin/git push origin master
/usr/local/git/bin/git push remote_website master

;; For modification of local files
/usr/local/git/bin/git add .
/usr/local/git/bin/git commit -m "This is a modification . . . ."
/usr/local/git/bin/git push origin master
/usr/local/git/bin/git push remote_website master