Невозможно нажать на изменения в github [duplicate]

Если вы получаете это сообщение во время сохранения или компиляции сборки, просто закройте все файлы, а затем откройте любой файл для компиляции и сохранения.

Для меня причина в том, что я переименовал файл, и старый файл все еще был открыт.

268
задан Kevin Whitaker 5 October 2010 в 01:28
поделиться

14 ответов

Все, что вам нужно сделать, это настроить свою настройку SSH с помощью нескольких ключей SSH.

Кроме того, если вы работаете с несколькими репозиториями с использованием разных персонажей, вы необходимо убедиться, что ваши индивидуальные репозитории имеют соответствующие настройки пользователя:

Настройка имени пользователя, электронной почты и токена GitHub - переопределение настроек для отдельных репозиториев https://help.github.com/articles

EDIT: Обновленные ссылки

174
ответ дан Pavan 25 August 2018 в 23:25
поделиться

Я нашел этот камень очень полезным: sshwitch

https://github.com/agush22/sshwitch http://rubygems.org/gems / sshwitch

Он помогает переключать ключи ssh. Не забудьте сделать все сначала!

Также, чтобы убедиться, что у коммит есть правильный адрес электронной почты, связанный с ними, я убедился, что файл ~ / .gitconfig имеет правильный адрес электронной почты.

2
ответ дан agsdot 25 August 2018 в 23:25
поделиться

Спасибо user1107028:

Использовать HTTPS:

изменить удаленный url на https:

git remote set- url origin https: //USERNAME@github.com/USERNAME/PROJECTNAME.git , и вам хорошо идти:

git push

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

7
ответ дан Boshy 25 August 2018 в 23:25
поделиться

Помимо создания нескольких SSH-ключей для нескольких учетных записей, вы можете также рассмотреть возможность добавления коллабораторов для каждого проекта с использованием тех же учетных записей электронной почты и постоянным сохранением пароля.

#this store the password permanently
$ git config --global credential.helper wincred

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

2
ответ дан Chetabahana 25 August 2018 в 23:25
поделиться

Я использую сценарии оболочки, чтобы переключить меня на любую учетную запись, которую я хочу быть «активным». По сути, вы начинаете с нового старта, настраиваете и настраиваете одну учетную запись, а затем переместите эти файлы на имя с соответствующим префиксом. С этого момента вы можете использовать команду «github» или «gitxyz» для переключения:

# my github script
cd ~/.ssh

if [ -f git_dhoerl -a -f git_dhoerl.pub -a -f config_dhoerl ]
then
    ; 
else 
    echo "Error: missing new files"
    exit 1
fi 

# Save a copy in /tmp, just in case
cp id_rsa /tmp
cp id_rsa.pub /tmp
cp config /tmp
echo "Saved old files in /tmp, just in case"

rm id_rsa
rm id_rsa.pub
rm config
echo "Removed current links/files"

ln git_dhoerl id_rsa
ln git_dhoerl.pub id_rsa.pub
ln config_dhoerl config

git config --global user.email "dhoerl@<company>.com"
git config --global github.user "dhoerl"        
git config --global github.token "whatever_it_is"

ssh-add -D

Мне повезло с этим. Я также создал сценарий запуска в Xcode (для вас, пользователей Mac), поэтому он не будет строить мой проект, если у меня не будет надлежащей настройки (с его использованием git):

Запустите скрипт, расположенный после зависимостей (используя / bin / ksh в качестве оболочки):

if [ "$(git config --global --get user.email)" != "dhoerl@<company>.com" ]
then
    exit 1
fi

EDIT: добавлены тесты для существования новых файлов и копирования старых файлов в / tmp для адресации комментария @naomik ниже.

10
ответ дан David H 25 August 2018 в 23:25
поделиться

Вам не нужно поддерживать два разных аккаунта для личных и рабочих. Фактически, Github рекомендует вам поддерживать единую учетную запись и помогает вам объединить оба.

Следуйте приведенной ниже ссылке, чтобы слить, если вы решите, что нет необходимости поддерживать несколько учетных записей.

https://help.github.com/articles/merging-multiple-user-accounts/

0
ответ дан Eric Blair 25 August 2018 в 23:25
поделиться

Использовать HTTPS:

изменить удаленный url на https:

git remote set-url origin https://USERNAME@github.com/USERNAME/PROJECTNAME.git

, и вам хорошо идти:

git push

Чтобы убедиться, что Commit отображаются как выполненные USERNAME, можно настроить user.name и user.email для этого проекта тоже:

git config user.name USERNAME
git config user.email USERNAME@example.com
84
ответ дан Greg Leszek 25 August 2018 в 23:25
поделиться

Этот ответ для новичков (не-git гуру). У меня недавно была эта проблема, и, возможно, ее только я, но большинство ответов, казалось, требовали довольно быстрого понимания git. После прочтения нескольких ответов на переполнение стека, включая этот поток, вот шаги, которые мне нужно предпринять, чтобы легко переключаться между учетными записями GitHub (например, предположим, что две учетные записи GitHub, github.com/personal и gitHub .com / work ):

  1. Проверить существующие ключи ssh: Открыть терминал и запустить эту команду для просмотра / списка существующих файлов ssh ls -al ~/.ssh файлов с расширением .pub - ваши ssh-ключи, поэтому у вас должно быть два для учетных записей personal и work. Если есть только один или ни один, то время для генерации другого мудрого пропускает это. - Генерация ключа ssh : войдите в github (либо личный, либо работайте соответственно), перейдите к Настройки и скопируйте связанное письмо. Теперь вернитесь в терминал и запустите ssh-keygen -t rsa -C "the copied email", вы увидите: Создание пары ключей public / private rsa. Введите файл, в котором нужно сохранить ключ (/.../.ssh/id_rsa): id_rsa - это имя по умолчанию для скорого сгенерированного ключа ssh, чтобы скопировать путь и переименовать по умолчанию, например /.../.ssh/id_rsa_work, если вы создаете для работы учетную запись. введите пароль или просто введите для игнорирования, и вы прочтете что-то вроде . Случайное изображение ключа: и изображение. done. Повторите этот шаг еще раз для своей второй учетной записи github. Убедитесь, что вы используете правильный адрес электронной почты и другое имя ключа ssh (например, id_rsa_personal), чтобы избежать перезаписи. На этом этапе вы должны увидеть два ключа ssh при повторном запуске ls -al ~/.ssh.
  2. Связать ssh с учетной записью gitHub: Следующий шаг - скопировать один из ssh-ключей, запустить его, но вместо вашего собственного ssh-ключа имя: pbcopy < ~/.ssh/id_rsa_work.pub, замените id_rsa_work.pub на то, что вы назвали yours.Now, что наш ssh-ключ скопирован в буфер обмена, вернитесь к учетной записи github [убедитесь, что вы вошли в рабочую учетную запись, если вы скопировали ssh-ключ id_rsa_work] и перейдите к настройкам - Ключи SSH и GPG и нажмите Новая кнопка SSH (не Новая клавиша GPG btw: D) некоторые заголовки для этого ключа, вставьте ключ и нажмите «Добавить ключ SSH». Теперь вы либо успешно добавили ключ ssh, либо заметили, что он был там, где все хорошо (или вы получили сообщение об ошибке, поскольку вы выбрали Новый ключ GPG вместо Новый ключ SSH : D).
  3. Свяжите ключ ssh с учетной записью gitHub: повторите вышеуказанный шаг для вашей второй учетной записи.
  4. Отредактируйте глобальную конфигурацию git: последний шаг - убедиться, что глобальный файл конфигурации знает обо всех github accounts (так сказать). Запустите git config --global --edit, чтобы отредактировать этот глобальный файл, если это открывает vim и вы не знаете, как его использовать, нажмите i, чтобы войти в режим Вставки, отредактируйте файл, как показано ниже, и нажмите esc, а затем :wq, чтобы выйти режим вставки: [inside this square brackets give a name to the followed acc.] name = github_username email = github_emailaddress [any other name] name = github_username email = github_email [credential] helper = osxkeychain useHttpPath = true

Done !, теперь, когда вы пытаетесь нажать или вытащить из репо, вам будет задан вопрос о том, какая учетная запись GitHub должна быть привязана к этому репо, и ее попросят только один раз , локальная конфигурация будет помнить эту ссылку, а не глобальную конфигурацию, чтобы вы могли работать с различными репозиториями, связанными с разными учетными записями, без необходимости редактировать глобальную конфигурацию каждый раз.

5
ответ дан Lukas 25 August 2018 в 23:25
поделиться

Подробная информация в http://net.tutsplus.com/tutorials/tools-and-tips/how-to-work-with-github-and-multiple-accounts/ , связанная с mishaba очень хорошо работает для меня.

С этой страницы:

$ touch ~/.ssh/config

Затем отредактируйте этот файл как нечто подобное (одна запись для каждой учетной записи):

#Default GitHub
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa

Host github-COMPANY
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_COMPANY
19
ответ дан Matthew Skelton 25 August 2018 в 23:25
поделиться

Создав разные псевдонимы хостов для github.com в вашем ~ / .ssh / config и предоставляя каждому хосту псевдоним свой собственный ключ ssh, вы можете легко использовать несколько учетных записей github без путаницы. Это потому, что github.com отличает не пользователь, который всегда просто git, а ключ ssh, который вы использовали для подключения. Просто настройте свое отдаленное происхождение, используя собственные псевдонимы хоста.

Вышеприведенное резюме является любезностью комментариев к сообщению в блоге ниже.

Я нашел это объяснение самым ясным. И это работает для меня, по крайней мере, с апреля 2012 года.

http://net.tutsplus.com/tutorials/tools-and-tips/how-to-work-with-github и-множественным счета /

23
ответ дан mishaba 25 August 2018 в 23:25
поделиться
  • Перейти к ~ / .ssh
  • Создать файл с именем config (не иметь расширения)
  • Открыть файл конфигурации и amp; добавьте ниже коды. (изменение в соответствии с вашей учетной записью) Учетная запись 1
    # account_1
    Host gitlab.com-account_1
    HostName gitlab.com
    User git
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_account_1
    
    Учетная запись 2
    # Account2
    Host gitlab.com-Account2
    HostName gitlab.com
    User git
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_Account2
    
    Учетная запись 3
    # Account_3
    Host github.com-Account3
    HostName github.com
    User git
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_Account_3
    
  • Добавить удаленный URL-адрес следующим образом Учетная запись 1
    git remote add origin git@gitlab.com-account_1:group_name/repo_name.git
    
    Учетная запись 2
    git remote add origin git@gitlab.com-Account2:group_name/repo_name.git
    
    Учетная запись 3
    git remote add origin github.com-Account3:github_username/repo_name.git
    

Убедитесь, что имена IdentityFile такие же, как вы создали во время генерации ключа ssh.

6
ответ дан Pranav V R 25 August 2018 в 23:25
поделиться

Упростить и легко исправить, чтобы избежать путаницы.

Для пользователей Windows использовать несколько или разных учетных записей git для разных проектов.

Следующие шаги: Перейти Панель управления и поиск учетных данных Менеджер. Затем перейдите в Диспетчер учетных данных -> Учетные данные Windows

Теперь удалите узел git: https // github.com в разделе Общие учетные данные Заголовок

Это приведет к удалению текущих учетных данных. Теперь вы можете добавить любой проект через git pull, он попросит имя пользователя и пароль.

Когда вы сталкиваетесь с какой-либо проблемой с другой учетной записью, делаете тот же процесс.

Спасибо

относятся к изображению

0
ответ дан Raja Shakir 25 August 2018 в 23:25
поделиться

В отличие от других ответов, где вам нужно выполнить несколько шагов для использования двух разных учетных записей github с одного компьютера, для меня это работало в два этапа.

Вам просто нужно:

1) создать общую и закрытую пару SSH для каждой вашей учетной записи в ~/.ssh месте с разными именами и

2) добавить сгенерированные открытые ключи в соответствующую учетную запись в разделе Settings >> SSH and GPG keys >> New SSH Key.

Для генерации общих и частных ключей SSH используйте следующую команду:

cd ~/.ssh
ssh-keygen -t rsa -C "email@work.com" -f "id_rsa_WORK"
ssh-keygen -t rsa -C "email@gmail.com" -f "id_rsa_PERSONAL"

В результате вышеприведенных команд id_rsa_WORK и id_rsa_WORK.pub будут созданы файлы для вашей рабочей учетной записи (ex-git.work.com) и id_rsa_PERSONAL и id_rsa_PERSONAL.pub для вашей личной учетной записи (ex-github.com).

После создания , скопируйте содержимое из каждого общедоступного файла [*.pub) и сделайте второй шаг для каждой учетной записи.

PS: Не нужно делать запись хоста для каждой учетной записи git в ~/.ssh/config файле, как указано в других ответах, если имя вашего двух аккаунтов отличается.

0
ответ дан Sahil Chhabra 25 August 2018 в 23:25
поделиться
25
ответ дан user633183 25 August 2018 в 23:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: