Установить учетные данные git на основе папки - PullRequest
0 голосов
/ 31 мая 2018

Возможно ли, чтобы папка, содержащая несколько репозиториев, использовала один набор учетных данных, а другой пользователь папки имел другую учетную запись?Например, я хотел бы, чтобы на моем Mac была одна папка для рабочих репозиториев и одна папка для личных, и чтобы имя пользователя и пароль git автоматически переключались в зависимости от того, в какой папке я нахожусь.

Ответы [ 3 ]

0 голосов
/ 31 мая 2018

Настройка git config для определенных папок слишком проста.Вы можете добиться этого, используя всего две команды git.Просто введите каталог, для которого вы хотите изменить информацию учетной записи git, и сделайте следующее:

git config --local user.email "yourmail@example.com"

git config --local user.name "yourName"

Я думаю, что это поможет.

Приветствия!

0 голосов
/ 01 июня 2018

После долгих поисков я нашел то, что искал (но, возможно, не совсем то, что я изначально просил).Я решил использовать ssh.У Github есть несколько хороших справочных документов, чтобы следовать здесь (при проверке подлинности), но в основном вам нужно 1. Создать ключ ssh для каждой учетной записи и добавить его в агент ssh * 2. Добавьте ключ ssh к вашим учетным записям github 3. На компьютере Mac Обновите файл конфигурации в ~ / .ssh / config (прокрутите вниз до "выбора между несколькими учетными записями в GitHub или Heroku")

  • Примечание. Добавление ключей ssh ​​к агенту ssh является временным.Они действуют только до тех пор, пока агент работает.Если вы убьете его или перезагрузите компьютер, они будут потеряны, пока вы не добавите их снова.

Чтобы исправить это, я создал функцию bash, добавил ее в файлы bash rc для всех оболочек, так чтоЯ могу просто назвать это как терминальную команду.Код здесь:

#!/bin/bash

function addSshKeysToAgent() {
  echo "starting ssh agent:"
  echo ""

  eval 'ssh-agent -s'
  echo ""

  echo "adding identities: "
  ssh-add -K ~/.ssh/personal_rsa
  ssh-add -K ~/.ssh/work_rsa
  echo ""

  echo "Private keys loaded into SSH: "
  ssh-add -l -E md5
  echo ""

  echo "ssh keys added to ssh agent."
}

function clone() {
  addSshKeysToAgent
  git clone gh-work:Company/$1
}

Замените personal_rsa и work_rsa именем вашего файла ключей ssh, а Company - названием вашей организации (если это то, что вы хотите сделать), что происходит из файла конфигурации, который вы обновили,Вот как выглядит мой конфигурационный файл:

Host *
 Port 22
 ServerAliveInterval 60
 ForwardAgent yes
 UseKeychain yes
 AddKeysToAgent yes
 IdentityFile ~/.ssh/personal_rsa
 IdentityFile ~/.ssh/work_rsa

Host gh-personal
  Hostname github.com
  User git
  IdentityFile ~/.ssh/personal_rsa
  AddKeysToAgent yes
  UseKeychain yes

Host gh-work
  Hostname github.com
  User git
  IdentityFile ~/.ssh/work_rsa
  AddKeysToAgent yes    
  UseKeychain yes

со всем этим вы сможете клонировать репо из терминала с помощью следующей команды:

clone reponame.git

Я искренне надеюсь, что этопомогает кому-то.Мне потребовался почти целый день поиска и взлома вещей, чтобы получить эту работу, и когда я писал этот ответ, я наткнулся на действительно большой смысл сделать именно то, что я хотел здесь

0 голосов
/ 31 мая 2018

Это руководство , вероятно, именно то, что вам нужно.

Взгляните на деталь git config --local, которая предназначена для применения изменений в реповыполняешь команду.

...