명령 줄에서 SourceTree를 어떻게 여나요?


82

명령 줄에서 SourceTree에서 git 저장소를 여는 빠르고 쉬운 방법이 있습니까?

터미널에서 많은 자식 작업을 수행하지만 때로는 좋은 기록보기 / 차이를 대체 할 수 없습니다. 북마크를 사용하지 않고 열 수 있기를 원합니다.

답변:


110

SourceTree 명령 줄 도구를 설치하면 명령이 제공됩니다 stree. 그러면 SourceTree에서 현재 디렉토리를 열 수 있습니다.

sourcetree 명령 줄 도구

저장소에 대한 특정 경로를 지정할 수도 있습니다.

stree ~/my-repo-in-another-folder

어떤 이유로 든 명령 줄 도구를 설치할 수없는 경우 다음을 수행 할 수도 있습니다.

open -a SourceTree path-to-file

.bashrc 또는 .zshrc에 별칭을 설정할 수 있습니다.

alias sourcetree='open -a SourceTree'

SourceTree 3를 사용하는 사람들을 위해

alias sourcetree='open -a SourceTree\ 3'

9
sourcetree 별칭을 .txt로 변경하여 현재 작업 디렉토리에있는 git 저장소를 열 수 있습니다 alias sourcetree='open -a SourceTree ./'. 또한 Mac 사용자의 별칭을 배치 할 수도 있습니다.bash_profile
리 맥 컬록

37

loeschg의 대답은 작동하지 않을 수 있습니다. 어떤 사람들은 시스템 로그를 참조하는 오류가 발생하고 명령 줄 도구를 설치할 수 없습니다. 이에 대해 공개 된 문제가 있습니다.

여기에서 해결 방법을 찾을 수 있습니다. 사용하다:

ln -s /Applications/SourceTree.app/Contents/Resources/stree /usr/local/bin/

이것은 stree바이너리에 대한 심볼릭 링크를 생성하고 /usr/local/bin. 디렉토리가 경로에 있는지 확인하십시오 . which stree결과는 /usr/local/bin/stree. 그렇지 않은 경우 PATH수동으로 추가 하거나을 사용 echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile하여 수행합니다 (셸을 다시 시작하여 PATH변수 를 다시로드 ).

위에서 언급 한 문제의 페이지에 내가 테스트하지 않은 또 다른 해결 방법이 게시되었습니다 alias stree='/Applications/SourceTree.app/Contents/Resources/stree'. 당신이 그것을 사용한다면, 그것이 작동하는지 그리고 어떻게 작동하는지 그리고 왜 당신이 심볼릭 링크보다 그것을 선호하는지 코멘트에보고하십시오.

두 가지 방법 모두 streein 의 경로는를 SourceTree.app설치 한 위치와 일치해야합니다 SourceTree.app.

이제 stree가 설치되어 모든 디렉토리에서 액세스 할 수 있습니다. 쉘의 작업 디렉토리가 저장소의 루트 디렉토리 일 때 SourceTree를 여는 가장 짧은 방법은 stree ..


나는 alias이미 상대적으로 가득 차 있고 나를 위해 자동으로 관리되는 것처럼 느껴지는 디렉토리에 심볼릭 링크를 만드는 것보다 덜 "영구적"이고 더 "이동성"이라는 느낌이 들기 때문에이 방법을 선호합니다. Homebrew는 지하실에서 물건을 심볼릭 링크하는 것을 좋아합니다. 또한 SourceTree는 최근에 내가 좋아하지 않는 UI를 변경했기 때문에 만일을 대비하여 여러 버전을 유지하기 시작했습니다. 별칭을 사용하면 bash에서 타겟팅하려는 버전에 대한 유연성이 향상됩니다.
Illya Moskvin

1
이 오류도 발생했습니다. 나를 위해 일한 것 : 단순히 SourceTree를 v3.0.1로 업데이트하십시오 (Sourcetree-> 업데이트 확인 ...). 업데이트 후 명령 줄 도구 설치가 정상적으로 작동했습니다. : D (내 Sourcetree는 오류가 발생했을 때 여전히 v2.7.6에있었습니다)
Buju

9

Windows 사용자 stree.bat를 위해 PATH 환경 변수의 폴더에 이름이 지정된 배치 파일을 추가 할 수 있습니다 . ( C:\batch모든 유틸리티 배치 파일을 저장하는 PATH에 폴더가 있습니다.) 배치 파일에 다음을 넣으십시오.

@echo off
start "" "C:\Program Files (x86)\Atlassian\SourceTree\SourceTree.exe"

이제 Git 또는 Mercurial 저장소로 이동하여이 명령을 실행하면 SourceTree에서 저장소가 열립니다.


3
참고 : 내 컴퓨터에서 소스 트리가 Program Files에 설치되어 있지 않습니다. C : \ Users \ <user> \ AppData \ Local \ SourceTree에 있습니다. 아마도 그들이 지금 Squirrel 설치 프로그램을 사용하고 있기 때문일까요?
Kevin Berridge

5

Bash 명령 줄 (msys)에서 Git을 사용하는 사용자를위한 또 다른 Windows 솔루션입니다.

Bash .profile에 두 가지 기능을 추가하십시오.

# Courtesy: http://stackoverflow.com/questions/12015348/msys-path-conversion-or-cygpath-for-msys
function towinpath {
    { cd $1 && pwd -W; } | sed 's|/|\\|g'
}

function stree {
    if [ -z $1 ]; then
        stree_path=$(towinpath pwd)
    else
        stree_path=$(towinpath $1)
    fi

    echo "Starting SourceTree in $stree_path"

    /c/Program\ Files\ \(x86\)/Atlassian/SourceTree/SourceTree.exe -f $stree_path status
}

쉘을 다시로드하십시오.

이제 다음을 사용할 수 있습니다.

$ towinpath /c/Temp

그리고 그것은 반향 c:\Temp합니다.

또는 SourceTree를 열 수 있습니다.

$ stree .

그리고 SourceTree에서이 저장소가 열리 며 기본값은 상태 패널입니다.


감사합니다! Cygwin 함수도 있습니다. cygpath여기서 function towinpath { cygpath -w $(cd $1 && pwd); }. 이것은 UNC 경로와 같은 것을 더 강력하게 처리합니다.
eacousineau 2011

2

cygwin이 설치되어 있다면 이것을 stree.bat. 이 배치 파일은 용도 cygpath해결에 .절대 경로, 당신이 할 수 있도록stree .

@echo off
FOR /F "tokens=* USEBACKQ" %%F IN (`cygpath -w -a %1`) DO (
SET STREE_OPEN_PATH=%%F
)
%USERPROFILE%\AppData\Local\SourceTree\SourceTree.exe -f "%STREE_OPEN_PATH%"

-1

윈도우

여기에서 Windows에 대한 여러 답변을 적용하면이 스크립트를 사용하여 명령 줄에서 SourceTree를 실행할 수 있습니다 (SourceTree 3.0.1.7 / Windows 10에서 테스트 됨).

PATH 디렉토리의 스크립트

이 두 스크립트를 내 시스템 경로에있는 폴더에 배치했습니다. 이 스크립트에 대한 bash 프로필을 수정할 필요가 없습니다.

Windows 용 Git Bash

PATH 연결된 디렉터리에 stree( touch stree) 라는 파일을 만들고이 파일 에서 실행 chmod u+x stree합니다.

#!/bin/sh

function towinpath {
    { cd $1 && pwd -W; } | sed 's|/|\\|g'
}

if [ -z $1 ]; then
    stree_path=$(towinpath pwd)
else
    stree_path=$(towinpath $1)
fi

$LOCALAPPDATA/SourceTree/SourceTree.exe -f $stree_path log &

SourceTree에서 저장소의 변경 / 작업 디렉토리보기를 선호하는 경우 마지막 줄의 "log"를 "status"로 바꿀 수 있습니다.

명령 프롬프트 또는 Powershell

stree.cmdPATH 연결된 디렉터리에 이름이 지정된 파일을 만듭니다 .

@echo off
start "" "%LOCALAPPDATA%\SourceTree\SourceTree.exe"

이것은 실제로 디렉토리를 저장소로 열지 않습니다.

스크립트, 특히 명령 프롬프트 용 스크립트를 자유롭게 개선하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.