2013-07-01 3 views
1

Обычно я работаю из двух мест и новичок в git. В первый раз я создал один репозиторий в Интернете и добавил его в свою систему, как шаги, рассказанные веб-сайтом github. Тогда я хотел бы работать на то же хранилище из моего другого места, так что я установил ублюдок в моей другой системе тоже и сделал следующее:git push говорит запрещено

Создан каталог:

Затем в этой директории я сделал GIT инициализация

После этого я сделал мерзавец конфигурации --global user.name «Имя» и мерзавец конфигурации --global user.email «электронная почта»

Тогда я добавлен репозиторий, созданный ранее из другой системы, получая адрес хранилища из HTTPS CLONE URL вариант на веб-сайте GitHub как:

мерзавца добавить происхождения https://github.com/myUserName/repoName.git

Тогда, чтобы получить все данные хранилища я сделал:

мерзавец мастер тянуть происхождения

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

мастер мерзавца толчок происхождения

Но я не был в состоянии подтолкнуть изменения, как он говорит Ошибка: 403 Запрещено

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

после того, как делать некоторые Google я обнаружил, что мы можем вставить имя пользователя и пароль в файл, присутствующий в .git/Конфиге

Так я отредактированный файл, как показано ниже:

Ранее мой конфигурационный файл выглядит как:

[core] 

     repositoryformatversion = 0 
     filemode = true 
     bare = false 
     logallrefupdates = true 
[remote "recupero"] 

     url = https://github.com/satyam1990/recupero.git 
     fetch = +refs/heads/*:refs/remotes/recupero/* 

После редактирования моего файла конфигурации выглядит следующим образом:

[core] 

     repositoryformatversion = 0 
     filemode = true 
     bare = false 
     logallrefupdates = true 
[remote "recupero"] 

     url = https://Username:[email protected]/satyam1990/recupero.git 
     fetch = +refs/heads/*:refs/remotes/recupero/* 

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

+0

Это два разных компьютера, которыми вы пользуетесь? В этом случае вы должны добавить оба ключа ssh в свою учетную запись github. https://github.com/settings/ssh – crea1

+0

Я не использую протокол ssh, как вы можете видеть в моем файле конфигурации, я использую https, нужно ли использовать ssh. – mSatyam

+0

Насколько я знаю, Github поддерживает только ssh для записи в repos. Попробуйте изменить свой удаленный URL-адрес на: ssh: //[email protected]: satyam1990/recupero.git – crea1

ответ

2

Да, вы можете хранить свои учетные данные в $HOME/.netrc file.

machine github.com 
login <login1> 
password <password1> 

Или вы можете использовать credential helper для того, чтобы:

+1

Почему он не запрашивает имя пользователя, пароль, как на моем предыдущем компьютере. – mSatyam

+0

@msatyam, если вы используете обертку типа «GitHub для Mac» или «GitHub для Windows», возможно, она создала '.netrc' для вас или использовала свой собственный внутренний помощник учетных данных. Предполагаю, что вы использовали адрес https, а также для '' origin' '('git remote -v') на вашей первой машине? – VonC

1

Как правило, вы должны использовать SSH с ключами, если только для конкретного преимущества не иметь ваш пароль, лежащий в текстовых файлах. С помощью SSH-ключей вы можете иметь различный (локально зашифрованный) ключ на каждом из ваших устройств и никогда не придется копировать их.

Что касается https, если вы используете обновленный git, он должен попросить вас ввести свое имя пользователя и пароль. Вы даже можете добавить свое имя пользователя в URL-адрес git, чтобы git запрашивал только пароль.

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

+0

Как правило, вы можете использовать ssh или https. И теперь у вас есть способы полностью зашифровать ваши учетные данные https. Таким образом, он не более или менее безопасен, чем ssh. * И * вам не нужно управлять ключами ssh, пока у вас уже есть * логин/пароль GitHub. – VonC

+0

(1) Зашифрованный '.netrc' является git-специфическим« взломом », который больше нигде не работает. (2) У меня есть только один пароль github, но у меня может быть столько ключей, сколько захочу. (3) Я не хочу ставить свой единственный пароль на своих различных производственных площадках и рабочих станциях без надлежащих средств для его недействительности. Ключ почти всегда более безопасен и более эффективен, чем пароль (хотя некоторые проблемы могут быть решены путем выдачи паролей, специфичных для устройства, например, с помощью gmail). –

+0

Согласовано. Я отвечал больше с мышлением случайного пользователя, но для разных * work * мест, если это возможно, тогда да, ssh лучше. Итак, +1. Кроме того, я не смог бы использовать ssh с моего рабочего места (заблокирован порт ssh). – VonC