2014-02-21 2 views
4

몇 가지 다른 git 저장소로 작업해야합니다. 그들이 magit을 사용하여 전환하는 방법? Magit을 사용하면 디렉토리를 선택할 때 디렉토리를 선택할 수 있습니다. 그러나 필요한 경우 다른 저장소로 전환하는 방법이 명확하지 않습니다. 나는 magit cheatsheet와 docs를 보았지만 답을 찾지 못했습니다. 감사.Magit emacs를 사용하여 repo를 변경하는 방법은 무엇입니까?

+3

dired 또는 북마크를 사용하여 다른 파일로 전환하십시오. 그런 다음 거기에서 magit에게 전화하십시오. –

답변

10

magit-status을 prefix-arg (C-u)와 함께 호출하면 git 저장소를 묻는 메시지가 표시됩니다. 당신이 magit-status에 대한 키 바인딩한다면 C-Xg, 당신은 C-UC-Xg을 수행 할 수 있습니다, 그것은 자식의 repo에 대한 메시지가 표시됩니다.

은 또한 디렉토리에 변수 magit-repo-dirs를 설정할 수 있습니다 ( RET magit-repo-dirs f를 더 알고 C-H를 않는 것)는 magit-repo-dirs의 모든 자식 저장소에 대한 메시지를 표시합니다.

당신이 발사체를 사용하는 경우는 프로젝트 디렉토리를 기억한다는 사실을 사용하고 magit-repo-dirs을 채울 수 있습니다, 나는 위의 projectile 후에 실행되는 코드는이

(eval-after-load "projectile" 
    '(progn (setq magit-repo-dirs (mapcar (lambda (dir) 
             (substring dir 0 -1)) 
             (remove-if-not (lambda (project) 
                 (file-directory-p (concat project "/.git/"))) 
                 (projectile-relevant-known-projects)))) 

     (setq magit-repo-dirs-depth 1))) 

을 달성하기 위해 내 init 파일이 있습니다 짐을 실은. (projectile-relevant-known-projects)을 통해 projectile에 알려진 프로젝트 목록을 가져 와서 반복하고 .git/ 폴더가있는 프로젝트를 magit-repo-dirs에 추가하면 magit-repo-dirs-depth도 1로 설정되므로 magit은 최상위 디렉토리에서만 git repos를 찾습니다.

3

"Springboard"라는 John Wiegley의 멋진 패키지가 유용 할 것입니다.

https://github.com/jwiegley/springboard

helm 및/또는 ido에 따라, 그리고 활성 현재 버퍼에있는 당신이 어느 파일을 다른 디렉토리에있을 수 있습니다 파일을 기준으로 임의의 명령을 실행할 수 있습니다.

  • 당신의 일부 파일 1.el에서 작업하는 가정 : 그것은 (README 파일이 잘 설명) 비 자세한 방법을 설명하는 것이 아니라 단지 예로서 귀하의 질문을 사용하기 조금 어렵다 magit-status을 별도의 파일 2.el으로 실행하려면 이 다른 레포에 모두 포함되어 있어야합니다.

  • ido
    에 대한 helm 또는 ido-switch-buffer에 대한 M-x springboard를 사용하면 당신에게 후보 파일의 목록을 제공합니다. 해당 파일의 디렉토리 내에서 작업하는 것처럼 다음
    임의의 명령을 호출 할 수 있습니다 (그것을 선택이 아닌) 2.el을에 국한하여

  • .당신이 2.el에 초점을 맞춘 후 에서 후보 목록을 magit-status를 호출한다면

  • 그래서, 당신은 파일 2.el과 관련된 REPO의 정상 magit-status 창 을 얻을 것하고 이 완료되면 그 작업 당신은 방금 magit을 종료 할 수 있고 1.el 은 활성 버퍼가 될 것이고 모든 것은 springboard이 호출되기 전과 같을 것입니다.

매우 유용합니다.

+0

감사합니다. @jhrr. 나는 그것을 시도 할 것이다. – cyrillk

5

난 당신이 발사체를 사용하는 경우, 가장 쉬운 방법은 바로 다음과 같은 설정하는 것으로 나타났습니다 :

이제
(setq projectile-switch-project-action 'projectile-vc) 

당신이 C-pps (projectile-switch-project)를 사용할 수 있으며 즉시, projectile-vc를 호출하는 경우 magit을 설치하면 프로젝트 루트에 magit-status이 호출됩니다. 단순한!