Làm cách nào để bạn mở SourceTree từ dòng lệnh?


82

Có cách nào nhanh chóng và dễ dàng để mở kho lưu trữ git trong SourceTree từ dòng lệnh không?

Tôi thực hiện rất nhiều công việc git từ Terminal, nhưng đôi khi không có gì thay thế cho một chế độ xem / khác biệt lịch sử tốt. Rất thích có thể mở mà không cần sử dụng dấu trang.

Câu trả lời:


110

Cài đặt Công cụ dòng lệnh SourceTree sẽ cung cấp cho bạn streelệnh. Điều này sẽ cho phép bạn mở thư mục hiện tại trong SourceTree.

công cụ dòng lệnh sourcetree

Bạn cũng có thể chỉ định một đường dẫn cụ thể đến một repo

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

Nếu cài đặt các công cụ dòng lệnh không phải là một tùy chọn vì bất kỳ lý do gì, bạn cũng có thể làm như sau:

open -a SourceTree path-to-file

và có thể thiết lập bí danh trong .bashrc hoặc .zshrc

alias sourcetree='open -a SourceTree'

Đối với những người đang sử dụng SourceTree 3

alias sourcetree='open -a SourceTree\ 3'

9
Bạn có thể đặt bí danh sourcetree của mình để mở kho lưu trữ git nằm trong thư mục làm việc hiện tại bằng cách thay đổi nó thành alias sourcetree='open -a SourceTree ./'. Ngoài ra người dùng Mac có thể muốn đặt bí danh trong.bash_profile
Leigh McCulloch

37

Câu trả lời của loeschg có thể không hoạt động; một số người gặp lỗi khi đề cập đến nhật ký hệ thống của họ và không thể cài đặt các công cụ dòng lệnh. Có một vấn đề mở về điều này.

Một giải pháp được tìm thấy ở đây. Sử dụng:

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

Điều này sẽ tạo ra một liên kết tượng trưng đến streenhị phân và đưa nó vào /usr/local/bin. Đảm bảo rằng thư mục đó nằm trên đường dẫn của bạn: which streesẽ dẫn đến /usr/local/bin/stree. Nếu không, hãy thêm nó vào PATHthủ công của bạn hoặc sử dụng echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile, điều này sẽ giúp bạn (khởi động lại trình bao của bạn để tải lại PATHbiến).

Trên trang vấn đề nêu trên, một người khác workaround mà tôi đã không kiểm tra đã được đăng: alias stree='/Applications/SourceTree.app/Contents/Resources/stree'. Nếu bạn sử dụng nó, vui lòng báo cáo trong phần nhận xét nếu nó hoạt động như thế nào và tại sao bạn thích nó hơn liên kết tượng trưng.

Đối với cả hai phương pháp, đường dẫn đến streetrong SourceTree.appphải tất nhiên phù hợp với vị trí mà bạn cài đặt SourceTree.app.

Bây giờ, đã streeđược cài đặt và có thể được truy cập từ bất kỳ thư mục nào. Cách ngắn nhất để mở SourceTree khi thư mục làm việc của shell của bạn là thư mục gốc của kho lưu trữ stree ..


Tôi thích aliasphương pháp này hơn vì nó cảm thấy ít "vĩnh viễn" hơn và "di động" hơn so với việc tạo một liên kết tượng trưng trong một thư mục đã tương đối đầy đủ và có cảm giác như nó được quản lý tự động cho tôi - Homebrew thích liên kết biểu tượng từ Cellar của nó ở đó. Thêm vào đó, SourceTree gần đây đã thực hiện các thay đổi đối với giao diện người dùng của nó mà tôi không đánh giá cao, vì vậy tôi đã bắt đầu giữ lại nhiều phiên bản của nó, đề phòng. Sử dụng (các) bí danh giúp tôi linh hoạt hơn về phiên bản tôi muốn nhắm mục tiêu trong bash.
Illya Moskvin

1
Tôi cũng nhận được lỗi này. Điều gì đã hiệu quả với tôi: chỉ cần cập nhật SourceTree lên v3.0.1 (Sourcetree -> Kiểm tra các bản cập nhật ...). Sau khi cập nhật nó, Cài đặt Công cụ Dòng lệnh sau đó hoạt động tốt. : D (Sourcetree của tôi vẫn ở v2.7.6 khi tôi gặp lỗi)
Buju

9

Đối với những người bạn trên Windows, bạn có thể thêm một tệp hàng loạt có tên stree.batvào một thư mục trong Biến Môi trường PATH của bạn. (Tôi có một C:\batchthư mục nằm trong PATH của tôi, nơi tôi lưu trữ tất cả các tệp lô tiện ích của mình.) Đặt phần sau vào tệp lô của bạn:

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

Bây giờ bạn có thể truy cập bất kỳ kho lưu trữ Git hoặc Mercurial nào và chạy lệnh này, lệnh này sẽ mở kho lưu trữ trong SourceTree.


3
FYI: Trên cây nguồn máy của tôi KHÔNG được cài đặt trong Tệp Chương trình, trong C: \ Users \ <user> \ AppData \ Local \ SourceTree. Có lẽ vì họ đang sử dụng trình cài đặt Squirrel?
Kevin Berridge

5

Một giải pháp Windows khác cho những người sử dụng Git trên dòng lệnh Bash (msys).

Thêm hai chức năng vào .profile Bash của bạn:

# 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
}

Nạp lại vỏ của bạn.

Bây giờ bạn có thể sử dụng:

$ towinpath /c/Temp

Và nó sẽ vang vọng c:\Temp.

Hoặc bạn có thể mở SourceTree:

$ stree .

Và nó sẽ mở kho lưu trữ này trong SourceTree mặc định là bảng Trạng thái.


Thật sự cảm ơn! Ngoài ra còn có một chức năng Cygwin cygpath, nơi bạn có thể làm điều gì đó tương tự function towinpath { cygpath -w $(cd $1 && pwd); }. Điều này sẽ xử lý mạnh mẽ hơn những thứ như đường dẫn UNC.
eacousineau

2

Nếu bạn đã cài đặt cygwin, bạn có thể sử dụng nó như của bạn stree.bat. Tệp lô này sử dụng cygpathđể phân giải .thành đường dẫn tuyệt đối của nó, vì vậy bạn có thể làmstree .

@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

các cửa sổ

Thích ứng từ nhiều câu trả lời ở đây cho Windows, các tập lệnh này sẽ cho phép bạn chạy SourceTree từ dòng lệnh (được thử nghiệm trên SourceTree 3.0.1.7 / Windows 10).

Tập lệnh trong thư mục PATH

Tôi đã đặt cả hai tập lệnh này trong một thư mục nằm trong PATH hệ thống của tôi. Bạn sẽ không phải sửa đổi hồ sơ bash của mình cho tập lệnh này.

Git Bash dành cho Windows

Tạo một tệp có tên stree( touch stree) trong thư mục được liên kết PATH của bạn và chạy chmod u+x streetrên tệp này.

#!/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 &

Bạn có thể thay thế "nhật ký" ở dòng cuối cùng bằng "trạng thái" nếu bạn thích chế độ xem thư mục thay đổi / làm việc của kho lưu trữ của mình trong SourceTree.

Command Prompt hoặc Powershell

Tạo một tệp có tên stree.cmdtrong thư mục liên kết PATH của bạn.

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

Lưu ý rằng điều này sẽ không thực sự mở ra thư mục như một kho lưu trữ.

Vui lòng cải thiện các tập lệnh, đặc biệt là tập lệnh cho Command Prompt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.