명령 줄에서 SourceTree에서 git 저장소를 여는 빠르고 쉬운 방법이 있습니까?
터미널에서 많은 자식 작업을 수행하지만 때로는 좋은 기록보기 / 차이를 대체 할 수 없습니다. 북마크를 사용하지 않고 열 수 있기를 원합니다.
답변:
SourceTree 명령 줄 도구를 설치하면 명령이 제공됩니다 stree
. 그러면 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'
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'
. 당신이 그것을 사용한다면, 그것이 작동하는지 그리고 어떻게 작동하는지 그리고 왜 당신이 심볼릭 링크보다 그것을 선호하는지 코멘트에보고하십시오.
두 가지 방법 모두 stree
in 의 경로는를 SourceTree.app
설치 한 위치와 일치해야합니다 SourceTree.app
.
이제 stree
가 설치되어 모든 디렉토리에서 액세스 할 수 있습니다. 쉘의 작업 디렉토리가 저장소의 루트 디렉토리 일 때 SourceTree를 여는 가장 짧은 방법은 stree .
.
alias
이미 상대적으로 가득 차 있고 나를 위해 자동으로 관리되는 것처럼 느껴지는 디렉토리에 심볼릭 링크를 만드는 것보다 덜 "영구적"이고 더 "이동성"이라는 느낌이 들기 때문에이 방법을 선호합니다. Homebrew는 지하실에서 물건을 심볼릭 링크하는 것을 좋아합니다. 또한 SourceTree는 최근에 내가 좋아하지 않는 UI를 변경했기 때문에 만일을 대비하여 여러 버전을 유지하기 시작했습니다. 별칭을 사용하면 bash에서 타겟팅하려는 버전에 대한 유연성이 향상됩니다.
Windows 사용자 stree.bat
를 위해 PATH 환경 변수의 폴더에 이름이 지정된 배치 파일을 추가 할 수 있습니다 . ( C:\batch
모든 유틸리티 배치 파일을 저장하는 PATH에 폴더가 있습니다.) 배치 파일에 다음을 넣으십시오.
@echo off
start "" "C:\Program Files (x86)\Atlassian\SourceTree\SourceTree.exe"
이제 Git 또는 Mercurial 저장소로 이동하여이 명령을 실행하면 SourceTree에서 저장소가 열립니다.
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에서이 저장소가 열리 며 기본값은 상태 패널입니다.
cygpath
여기서 function towinpath { cygpath -w $(cd $1 && pwd); }
. 이것은 UNC 경로와 같은 것을 더 강력하게 처리합니다.
여기에서 Windows에 대한 여러 답변을 적용하면이 스크립트를 사용하여 명령 줄에서 SourceTree를 실행할 수 있습니다 (SourceTree 3.0.1.7 / Windows 10에서 테스트 됨).
이 두 스크립트를 내 시스템 경로에있는 폴더에 배치했습니다. 이 스크립트에 대한 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"로 바꿀 수 있습니다.
stree.cmd
PATH 연결된 디렉터리에 이름이 지정된 파일을 만듭니다 .
@echo off
start "" "%LOCALAPPDATA%\SourceTree\SourceTree.exe"
이것은 실제로 디렉토리를 저장소로 열지 않습니다.
스크립트, 특히 명령 프롬프트 용 스크립트를 자유롭게 개선하십시오.
alias sourcetree='open -a SourceTree ./'
. 또한 Mac 사용자의 별칭을 배치 할 수도 있습니다.bash_profile