Modifier l'emplacement de l' ~ du répertoire d'installation de Windows de Git Bash
Je ne suis même pas sûr que je suis poser la bonne question. Laissez-moi vous expliquer ma situation:
C'est sur Git sur Windows 7.
Mon entreprise met en place le répertoire d'utilisateur Windows sur un lecteur réseau, pas sur le disque dur local (pour la sauvegarde et à d'autres fins au-delà de la portée de cette question). Je ne peut pas changer de politique.
Je PEUX avoir les fichiers locaux à l'extérieur de ce régime, cependant, et voilà comment mon serveur Apache est configuré. Entièrement locale.
J'ai installé Git. Il s'installe Bash. Quand j'ai le feu jusqu'à Bash et cd ~
(changer le répertoire racine), je trouve que c' (le Bash root) points à mon réseau répertoire de l'utilisateur. Je le veux de ne pas le faire. Je veux ~
être ailleurs sur mon disque dur. Je veux que lorsque je effectuer d'autres opérations telles que l'installation d'un certificat, d'une clé SSH, etc. sa valeur par défaut sera pas automatiquement que le répertoire réseau.
J'ai en vain cherché partout, et tout ce que je peux trouver se réfère à des réponses qui impliquent des alias, de redirection et de l'emplacement $à la MAISON points de. Mais ce n'est pas ce que je veux à tous.
La question est: puis-je changer le répertoire? Et si oui: Comment?
Mise à JOUR: Alors, $HOME est ce que je dois modifier. Toutefois, j'ai été incapable de trouver où cette mythique $à la MAISON de la variable est définie, donc j'ai supposé que c'était un système Linux version de CHEMIN ou de quelque chose. De toute façon...
J'ai un "profil" fichier sous git/etc
. Voici le contenu (avis n $HOME):
# To the extent possible under law, the author(s) have dedicated all
# copyright and related and neighboring rights to this software to the
# public domain worldwide. This software is distributed without any warranty.
# You should have received a copy of the CC0 Public Domain Dedication along
# with this software.
# If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
# System-wide profile file
# Some resources...
# Customizing Your Shell: http://www.dsl.org/cookbook/cookbook_5.html#SEC69
# Consistent BackSpace and Delete Configuration:
# http://www.ibb.net/~anne/keyboard.html
# The Linux Documentation Project: http://www.tldp.org/
# The Linux Cookbook: http://www.tldp.org/LDP/linuxcookbook/html/
# Greg's Wiki http://mywiki.wooledge.org/
# Setup some default paths. Note that this order will allow user installed
# software to override 'system' software.
# Modifying these default path settings can be done in different ways.
# To learn more about startup files, refer to your shell's man page.
MSYS2_PATH="/usr/local/bin:/usr/bin:/bin"
MANPATH="/usr/local/man:/usr/share/man:/usr/man:/share/man:${MANPATH}"
INFOPATH="/usr/local/info:/usr/share/info:/usr/info:/share/info:${INFOPATH}"
MINGW_MOUNT_POINT=
if [ -n "$MSYSTEM" ]
then
case "$MSYSTEM" in
MINGW32)
MINGW_MOUNT_POINT=/mingw32
PATH="${MINGW_MOUNT_POINT}/bin:${MSYS2_PATH}:${PATH}"
PKG_CONFIG_PATH="${MINGW_MOUNT_POINT}/lib/pkgconfig:${MINGW_MOUNT_POINT}/share/pkgconfig"
ACLOCAL_PATH="${MINGW_MOUNT_POINT}/share/aclocal:/usr/share/aclocal"
MANPATH="${MINGW_MOUNT_POINT}/share/man:${MANPATH}"
;;
MINGW64)
MINGW_MOUNT_POINT=/mingw64
PATH="${MINGW_MOUNT_POINT}/bin:${MSYS2_PATH}:${PATH}"
PKG_CONFIG_PATH="${MINGW_MOUNT_POINT}/lib/pkgconfig:${MINGW_MOUNT_POINT}/share/pkgconfig"
ACLOCAL_PATH="${MINGW_MOUNT_POINT}/share/aclocal:/usr/share/aclocal"
MANPATH="${MINGW_MOUNT_POINT}/share/man:${MANPATH}"
;;
MSYS)
PATH="${MSYS2_PATH}:/opt/bin:${PATH}"
PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig:/lib/pkgconfig"
;;
*)
PATH="${MSYS2_PATH}:${PATH}"
;;
esac
else
PATH="${MSYS2_PATH}:${PATH}"
fi
MAYBE_FIRST_START=false
SYSCONFDIR="${SYSCONFDIR:=/etc}"
# TMP and TEMP as defined in the Windows environment must be kept
# for windows apps, even if started from msys2. However, leaving
# them set to the default Windows temporary directory or unset
# can have unexpected consequences for msys2 apps, so we define
# our own to match GNU/Linux behaviour.
ORIGINAL_TMP=$TMP
ORIGINAL_TEMP=$TEMP
#unset TMP TEMP
#tmp=$(cygpath -w "$ORIGINAL_TMP" 2> /dev/null)
#temp=$(cygpath -w "$ORIGINAL_TEMP" 2> /dev/null)
#TMP="/tmp"
#TEMP="/tmp"
case "$TMP" in *\\*) TMP="$(cygpath -m "$TMP")";; esac
case "$TEMP" in *\\*) TEMP="$(cygpath -m "$TEMP")";; esac
test -d "$TMPDIR" || test ! -d "$TMP" || {
TMPDIR="$TMP"
export TMPDIR
}
# Define default printer
p='/proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows NT/CurrentVersion/Windows/Device'
if [ -e "${p}" ] ; then
read -r PRINTER < "${p}"
PRINTER=${PRINTER%%,*}
fi
unset p
print_flags ()
{
(( $1 & 0x0002 )) && echo -n "binary" || echo -n "text"
(( $1 & 0x0010 )) && echo -n ",exec"
(( $1 & 0x0040 )) && echo -n ",cygexec"
(( $1 & 0x0100 )) && echo -n ",notexec"
}
# Shell dependent settings
profile_d ()
{
local file=
for file in $(export LC_COLLATE=C; echo /etc/profile.d/*.$1); do
[ -e "${file}" ] && . "${file}"
done
if [ -n ${MINGW_MOUNT_POINT} ]; then
for file in $(export LC_COLLATE=C; echo ${MINGW_MOUNT_POINT}/etc/profile.d/*.$1); do
[ -e "${file}" ] && . "${file}"
done
fi
}
for postinst in $(export LC_COLLATE=C; echo /etc/post-install/*.post); do
[ -e "${postinst}" ] && . "${postinst}"
done
if [ ! "x${BASH_VERSION}" = "x" ]; then
HOSTNAME="$(/usr/bin/hostname)"
profile_d sh
[ -f "/etc/bash.bashrc" ] && . "/etc/bash.bashrc"
elif [ ! "x${KSH_VERSION}" = "x" ]; then
typeset -l HOSTNAME="$(/usr/bin/hostname)"
profile_d sh
PS1=$(print '3]0;${PWD}\n3[32m${USER}@${HOSTNAME} 3[33m${PWD/${HOME}/~}3[0m\n$ ')
elif [ ! "x${ZSH_VERSION}" = "x" ]; then
HOSTNAME="$(/usr/bin/hostname)"
profile_d zsh
PS1='(%n@%m)[%h] %~ %% '
elif [ ! "x${POSH_VERSION}" = "x" ]; then
HOSTNAME="$(/usr/bin/hostname)"
PS1="$ "
else
HOSTNAME="$(/usr/bin/hostname)"
profile_d sh
PS1="$ "
fi
if [ -n "$ACLOCAL_PATH" ]
then
export ACLOCAL_PATH
fi
export PATH MANPATH INFOPATH PKG_CONFIG_PATH USER TMP TEMP PRINTER HOSTNAME PS1 SHELL tmp temp
test -n "$TERM" || export TERM=xterm-256color
if [ "$MAYBE_FIRST_START" = "true" ]; then
sh /usr/bin/regen-info.sh
if [ -f "/usr/bin/update-ca-trust" ]
then
sh /usr/bin/update-ca-trust
fi
clear
echo
echo
echo "###################################################################"
echo "# #"
echo "# #"
echo "# C A U T I O N #"
echo "# #"
echo "# This is first start of MSYS2. #"
echo "# You MUST restart shell to apply necessary actions. #"
echo "# #"
echo "# #"
echo "###################################################################"
echo
echo
fi
unset MAYBE_FIRST_START
~
représente votre répertoire home. La modification de laHOME
variable d'environnement va changer de où il va.- Juste une remarque:
HOME
variable d'environnement ne change pas seulement où~
points, mais aussi tout ce qui est accès au répertoire home de l'utilisateur devrait y aller. ~
est juste un raccourci pour "répertoire home de l'utilisateur", donc où~
points, il y a le répertoire home de l'utilisateur.- Oui, je ne trouve pas ce $à la MAISON de la variable à définir. Ci-dessus, j'ai ajouté ce que mon fichier de profil ressemble.
- Je vois, vous avez probablement une autre version de Git. Quelle version avez-vous? BTW, essayez d'ajouter un paramètre de la MAISON à la fin du profil. Mais il est possible, qu'il sera écrasé quelque part d'autre.
- Juste une remarque pour votre mise à jour:
HOME
n'est pas une version Linux dePATH
. Linux utilisePATH
très de la même façon que Windows.HOME
est l'équivalent deHOMEDRIVE
+HOMEPATH
sur Windows, vous venez dans une variable sur Linux (car il n'y a pas que stupide lettres de lecteur). Sur les deux systèmes,HOME
(ou équivalent Windows) est un pointeur vers l'utilisateur (profil) annuaire etPATH
est la liste de répertoires pour la recherche de l'exécutable lorsqu'il est exécuté (sans spécifier un chemin d'accès de manière explicite). - Merci de ne pas poster votre réponse dans votre question. Je vais le déplacer dans la communauté wiki réponse. N'hésitez pas à poster votre propre et je vais supprimer le mien. J'ai roulé à votre question retour à la version sans réponse.
- Double Possible de Comment puis-je modifier l'emplacement par défaut pour Git Bash sous Windows?
Vous devez vous connecter pour publier un commentaire.
Je ne comprends pas, pourquoi vous ne voulez pas définir la
$HOME
variable d'environnement depuis résout exactement ce que vous demandez.cd ~
ne veut pas dire changer le répertoire racine, mais changer le répertoire home de l'utilisateur, qui est défini par la$HOME
variable d'environnement.Je viens de tester et ça fonctionne pour moi:
Ouvrir
C:\Program Files (x86)\Git\etc\profile
et définir$HOME
variable pour tout ce que vous voulez (ajouter si ce n'est pas là). Un bon endroit pourrait être par exemple juste après une condition commenté par# Set up USER's home directory
. Mis il y a quelque chose comme ceci:L'enregistrer, ouvrir git-bash et exécuter
cd ~
. Vous devriez être dans un répertoire/c/my/custom/home
maintenant.Tout ce qui accède au profil de l'utilisateur doit aller dans ce répertoire à la place de Windows votre profil sur un lecteur réseau.
Remarque:
C:\Program Files (x86)\Git\etc\profile
est partagé par tous les utilisateurs, de sorte que si l'ordinateur est utilisé par plusieurs utilisateurs, c'est une bonne idée de définir la$HOME
dynamiquement:C:\Program Files (x86)\Git` directory for
à la MAISON". Cette variable doit être définie quelque part.profile
? Juste une remarque que le contenu deHOME
variable devrait ressembler à ceci dans git-bash:/c/some/path
.HOME
variable existe dans git-bash shell (avant de l'ajouter n'importe où)?HOME="c://path/to/custom/root/"
environment
en vertu de laetc
répertoire à l'intérieur du Git du répertoire d'installation. J'ai essayé de le créer et mettre un peu d'affectation, mais il est ignoré.Je vois cette question est déjà répondu, mais je suis dans une situation similaire, et j'ai pensé que je devais partager ce que j'ai fait. J'ai d'abord fait ce n'est pas pour Git, mais pour MSYS/MinGW.
La
HOME
variable d'environnement n'est pas normalement pour les applications Windows, afin de créer par le biais de Windows n'a pas d'incidence sur quelque chose que je ne voulais pas touchés. À partir de l'Ordinateur de Propriétés (clic droit sur Ordinateur - ou ce qu'il est nommé dans l'Explorateur et sélectionnez Propriétés, ou Panneau de configuration -> Système et Sécurité -> Système), choisissezAdvanced system settings
, puisEvironment Variables...
et en créer un nouveau,HOME
, et de l'attribuer où vous le souhaitez.Si vous ne pouvez pas créer de nouvelles variables d'environnement, l'autre réponse encore du travail. (Je suis allé à travers les détails de la façon de créer des variables d'environnement, précisément parce qu'il est si dificile à trouver.)
rundll32 sysdm.cpl,EditEnvironmentVariables
, à partir de l'invite de commande, ou de typeenvironment
dans le menu démarrer pour lancer la même commande.%USERPROFILE%
est une bonne valeur pour votre MAISON variable d'environnement. Voir ma réponseHOME
(~
) plus près de la racine/
arbre. J'ai effectivement créé un répertoireC:/home
et l'utiliser. Aussi,BTW, l'OP a noté que, pour lui, son%USERPROFILE%
est sur un lecteur réseau, et terriblement douloureux pour l'utiliser comme vous l'avez décrit.HOME
de valeur%USERPROFILE%
, il n'a pas aider à ajouter un Systemvariable de même nom et de la valeur.Browse
ing dans le répertoire désiré. Pour les variables d'environnement définies dans Git Bash pour être lu par les programmes Windows, vous pouvez utiliser le polyglotte ("mixte") format, C:/Users/name - la lettre de lecteur, mais des barres obliques.Dans mon cas, tout ce que j'avais à faire était d'ajouter le suivant variable Utilisateur sur Windows:
Nom de la Variable:
HOME
Valeur de la Variable:
%USERPROFILE%
Comment définir une Variable d'Environnement (Vous pouvez utiliser le variables Utilisateur pour le nom d'utilisateur section si vous n'êtes pas un administrateur système)
HOME=/c/Users/$USERNAME
de profil.Au lieu de modifier le mondial
profile
vous pouvez créer le.bash_profile
dans votre défaut$HOME
répertoire (par exempleC:\Users\WhateverUser\.bash_profile
) avec le contenu suivant:.bash_profile
est la bonne façon de personnaliser votre environnement, le piratage.profile
n'est pas une bonne pratique.~/.bash_profie
: "Des fichiers pour les variables d'environnement qui affectent un utilisateur particulier (plutôt que le système dans son ensemble) sont...~/.profil". Et: "Shell fichiers de configuration tels que...~/.bash_profile...sont souvent proposées pour la définition des variables d'environnement. Alors que cela peut fonctionner sur le coup des coquilles pour les programmes de démarrage du shell, variables définies dans ces fichiers ne sont pas disponibles par défaut pour les programmes de démarrage de l'environnement graphique dans une session bureau." help.ubuntu.com/community/EnvironmentVariables1.Cliquez à droite pour Gitbash contextuel, choisissez Propriétés
2.Choisissez l'onglet "Raccourcis"
3.Tapez votre répertoire de départ à "Démarrer dans" champ
4.Supprimer "--de cd à la maison" partie du champ "Cible"
$HOME
variableDonc, $HOME est ce que je dois modifier. Toutefois, j'ai été incapable de trouver où cette mythique $à la MAISON de la variable est définie, donc j'ai supposé que c'était un système Linux version de CHEMIN ou de quelque chose. De toute façon...**
Réponse
L'ajout de la MAISON en haut de la
profile
fichier travaillé.HOME="c://path/to/custom/root/"
.Je me suis confronté exactement au même problème. Ma maison de disque mappé à un lecteur réseau. Aussi
Cependant ci-dessous a travaillé à partir de la ligne de commande et j'ai pu ajouter
HOME
aux variables d'environnement.rundll32 sysdm.cpl,EditEnvironmentVariables
Ici, vous allez:
Ici, vous allez:
Créer un Point de Restauration du Système.
Ouvrez une session sous un compte administrateur.
Supprimer le dossier C:\SomeUser.
Déplacer le dossier c:\Users\SomeUser de sorte qu'il devient c:\SomeUser.
Ouvrez l'éditeur de registre.
Accédez à HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList.
Recherche pour "ProfileImagePath" jusqu'à ce que vous trouviez celui qui points à c:\Users\SomeUser.
Le modifier pour qu'il pointe au c:\SomeUser.
Utilisez la Restauration du Système dans le cas où les choses tournent mal.