Existe-t-il un moyen rapide et facile d'ouvrir un référentiel git dans SourceTree à partir de la ligne de commande?
Je fais beaucoup de travail git depuis Terminal, mais parfois il n'y a pas de remplacement pour une bonne vue/diff d'historique. J'adorerais pouvoir ouvrir sans utiliser de signets.
L'installation des outils de ligne de commande SourceTree vous fournira la commande stree
. Cela vous permettra d'ouvrir le répertoire actuel dans SourceTree.
Vous pouvez également spécifier un chemin d'accès particulier à un dépôt
stree ~/my-repo-in-another-folder
Si l'installation d'outils de ligne de commande n'est pas une option pour une raison quelconque, vous pouvez également effectuer les opérations suivantes:
open -a SourceTree path-to-file
et peut-être configurer un alias en .bashrc ou .zshrc
alias sourcetree='open -a SourceTree'
Pour ceux qui utilisent SourceTree 3
alias sourcetree='open -a SourceTree\ 3'
La réponse de loeschg peut ne pas fonctionner; certaines personnes obtiennent une erreur se référant à leurs journaux système et ne peuvent pas installer les outils de ligne de commande. Il y a un problème ouvert à ce sujet.
ne solution de contournement se trouve ici. Utilisation:
ln -s /Applications/SourceTree.app/Contents/Resources/stree /usr/local/bin/
Cela va créer un lien symbolique vers le binaire stree
et le mettre dans /usr/local/bin
. Assurez-vous que le répertoire se trouve sur votre chemin: which stree
devrait se traduire par /usr/local/bin/stree
. Si ce n'est pas le cas, ajoutez-le manuellement à votre PATH
ou utilisez echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile
, qui le fait pour vous (redémarrez votre Shell pour recharger la variable PATH
).
Sur la page du problème mentionné ci-dessus, une autre solution de contournement que je n'ai pas testée a été publiée: alias stree='/Applications/SourceTree.app/Contents/Resources/stree'
. Si vous l'utilisez, veuillez indiquer dans les commentaires si et comment cela fonctionne et pourquoi vous le préférez au lien symbolique.
Pour les deux méthodes, le chemin d'accès à stree
dans SourceTree.app
doit bien sûr correspondre à l'emplacement où vous avez installé SourceTree.app
.
Maintenant, stree
est installé et est accessible à partir de n'importe quel répertoire. Le moyen le plus court d'ouvrir SourceTree lorsque le répertoire de travail de votre Shell est le répertoire racine d'un référentiel est stree .
.
Pour ceux d'entre vous sous Windows, vous pouvez ajouter un fichier de commandes nommé stree.bat
dans un dossier de votre variable d'environnement PATH. (J'ai un C:\batch
dossier qui se trouve dans mon CHEMIN où je stocke tous mes fichiers de commandes utilitaires.) Mettez ce qui suit dans votre fichier de commandes:
@echo off
start "" "C:\Program Files (x86)\Atlassian\SourceTree\SourceTree.exe"
Vous pouvez maintenant accéder à n'importe quel référentiel Git ou Mercurial et exécuter cette commande qui ouvrira le référentiel dans SourceTree.
Une autre solution Windows pour ceux qui utilisent Git sur la ligne de commande Bash (msys).
Ajoutez deux fonctions à votre profil Bash:
# 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
}
Rechargez votre Shell.
Vous pouvez maintenant utiliser:
$ towinpath /c/Temp
Et cela fera écho c:\Temp
.
Ou vous pouvez ouvrir SourceTree:
$ stree .
Et il ouvrira ce référentiel dans SourceTree par défaut au panneau d'état.
Si vous avez installé cygwin, vous pouvez l'utiliser comme votre stree.bat
. Ce fichier de commandes utilise cygpath
pour résoudre .
à son chemin absolu, vous pouvez donc faire 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%"
S'adaptant à partir de plusieurs réponses ici pour Windows, ces scripts vous permettront d'exécuter SourceTree à partir de la ligne de commande (testé sur SourceTree 3.0.1.7/Windows 10).
J'ai placé ces deux scripts dans un dossier qui se trouve dans mon CHEMIN système. Vous n'aurez pas à modifier votre profil bash pour ce script.
Créez un fichier nommé stree
(touch stree
) dans votre répertoire lié PATH et exécutez chmod u+x stree
sur ce fichier.
#!/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 &
Vous pouvez remplacer "log" dans la dernière ligne par "status" si vous préférez la vue changes/working directory de votre référentiel dans SourceTree.
Créez un fichier nommé stree.cmd
dans votre répertoire lié PATH.
@echo off
start "" "%LOCALAPPDATA%\SourceTree\SourceTree.exe"
Notez que cela n'ouvrira pas réellement le répertoire en tant que référentiel.
N'hésitez pas à améliorer les scripts, en particulier celui de l'invite de commandes.