>

emacs에서 다음 git 워크 플로우를 자동화 할 생각입니다 :

<올>
  • 새 지점으로 결제
  • 마지막 커밋 메시지에서 일부 패턴 제거
  • 커밋 (수정)
  • 업스트림으로 푸시
  • emacs에서 4 단계를 자동화하려면 어떻게해야합니까?

    그리고 나는 2 단계와 3 단계를 하나의 키로 결합하려고 시도했습니다 :

    (defun magit-commit-append-new-msg ()
      (interactive)
      (let* ((git-dir (magit-toplevel))
        ;; get last commit msg
        ;; TODO handle remote dir
        (msg (shell-command-to-string (format "git -C \"%s\" log -1 --format=\"%%B\"" git-dir)))
        ;; remove changeid and jira line in msg
        (msg-new (concat msg "[MYTEST]")))
        (magit-git-command-topdir (format "git -C \"%s\" commit --amend -m \"%s\"" git-dir msg-new))))
    (magit-define-popup-action 'magit-commit-popup
      ?i
      "Commit with new msg"
      'magit-commit-append-new-msg)
    
    

    그러나 아직 4 단계를 모두 수행 할 방법을 찾지 못했습니다.

    • 답변 # 1

      이와 같은 것이 효과가있을 것입니다.

      (defun my-fixup-head-message-and-publish (remote branch)
        (interactive
         ;; TODO I don't know your needs you should probably adjust this.
         (list "public"
               (concat "publish/" (magit-get-current-branch))))
        (magit-with-toplevel
          (magit-call-git "branch" branch (magit-get-current-branch))
          (magit-call-git "commit" "--amend" "-m"
                          (concat "[MYTEST]"
                                  (magit-rev-format "%B")))
          (magit-call-git "push" branch (concat remote "/" branch)
          (magit-refresh))))
      
      

      r/emacs에 대해 "제발 구현해주세요"라는 질문을하는 것이 좋습니다.

  • 이전 emacs - 여러 Emacs 구성/버전을 동시에 사용
  • 다음 python - beautifulsoup으로 야후 수입 캘린더를 긁는 방법