222

友人と私が私のコンピューターを共有しています。Windows7でgitbashシェルを使用してGitHubにプッシュしました。現在、そのコンピューターで別のプロジェクトに参加しているため、彼女に自分のアカウントにプッシュする必要があります。しかし、それは私のユーザー名を使用しようとし続け、私は彼女のリポジトリにアクセスできないと言っています:

$ git push her_github_repository our_branch
ERROR: Permission to her_username/repository.git denied to my_username.
fatal: The remote end hung up unexpectedly
4

25 に答える 25

327

これは私のために働いた、それはユーザー名とパスワードの入力を求めます

git config --local credential.helper ""
git push origin master
于 2018-02-25T05:37:36.710 に答える
121

別のWindowsユーザーを使用する場合、SSHキーとgitの設定は独立しています。

これがあなたの選択肢ではない場合、あなたの友人はあなたのSSHキーを彼女のGithubアカウントに追加する必要があります。

ただし、以前の解決策では、自分のようにプッシュし続けることができますが、彼女のリポジトリにプッシュすることができます。これを望まず、同じPCの別のフォルダーで作業する場合-gは、configコマンドのフラグを削除することで、ユーザー名を設定し、gitを使用してフォルダー内でローカルに電子メールを送信できます。

git config user.name her_username
git config user.email her_email

または、プロトコルをプッシュオーバーhttpsすると、Githubは毎回ユーザー名/パスワードの入力を求めます(パスワードマネージャーを使用している場合を除く)。

于 2012-10-27T18:51:30.073 に答える
101

別のアカウントを使用してプッシュできます。たとえば、アカウントが.gitconfigに格納されているAであり、プッシュするリポジトリの所有者であるアカウントBを使用する場合です。

アカウントB:B_user_name、B_password
SSHリンクの例:https ://github.com/B_user_name/project.git

Bアカウントでのプッシュは次のとおりです。

$ git push https://'B_user_name':'B_password'@github.com/B_user_name/project.git

.gitconfigでアカウントを表示するには

  1. $git config --global --list
  2. $git config --global -e (アカウントも変更します)
于 2017-09-21T06:48:39.280 に答える
29

カスタムを使用してsshエイリアスを設定し、カスタムホスト名IdentityFileを使用するようにオリジンを書き直しました。me-github

#when prompted enter `id_rsa_user1` as filename
ssh-keygen -t rsa

# ~/.ssh/config
Host user1-github
HostName github.com
Port 22
User git
IdentityFile ~/.ssh/id_rsa_user1

#check original remote origin url
git remote -v
origin git@github.com:user1/my-repo.git

#change it to use your custom `user1-github` hostname
git remote rm origin
git remote add origin git@user1-github:user1/my-repo.git
于 2014-10-20T06:00:25.460 に答える
25

次の手順に従います。

  1. あなたはそれを理解しなければなりません、あなたはコミットする前に作者を定義します! コミットはすでに凍結されています。作成者とコミッターに設定されている名前があり、これらを変更することはできません。
# you can check what's currently:
git config user.name
git config user.email

git config user.name "your_github_username"
git config user.email "your_github_email"

# Again check what's currently:
git config user.name
git config user.email
  1. コミットが誰にタグ付けされているかを確認しますか?
git log
# once you're confirmed that it's tagged to you, then you should move to step 3

作成者が間違っている場合は、変更を失うことなく最後のコミットを簡単に元に戻すことができます

また、ステップ3に進む前に、ステップ1に従って健全性チェックを行うことを忘れないでください。

  1. github_usernameとgithub_passwordを入力するように求めるプロンプトを表示します
git config --local credential.helper ""
git push
# it will ask you to enter your github_username and github_password
于 2020-07-28T00:41:23.463 に答える
22

git@github.com:username/projectname.gitHTTPSURLではなくSSHURL()を使用する場合は、$GIT_SSH_COMMAND環境変数を使用して別のSSHキーを一時的に指定できます。

$ GIT_SSH_COMMAND="ssh -i different_private_key" git push

私が知る限り、SSH URLの場合、GitHubはユーザー名を気にせず、キーのみを気にします。ユーザーアカウントがリポジトリにアクセスでき、そのアカウントがSSHキーを持っている場合(アカウントのSSHキーページを参照)設定)、そのSSHキーを使用してそのリポジトリにプッシュすると、プッシュはそのユーザーからのものとして扱われます。

于 2016-02-12T18:44:12.783 に答える
16

実行後にgit pushGitがのパスワードを要求したがuser、としてプッシュしnew_userたい場合は、次を使用することをお勧めしますgit config remote.origin.url

$ git push
user@my.host.com:either/branch/or/path's password:

この時点で、を使用^Cして終了git pushし、followingを使用してをプッシュしnew_userます。

$ git config remote.origin.url
user@my.host.com:either/branch/or/path

$ git config remote.origin.url new_user@my.host.com:either/branch/or/path

$ git push
new_user@my.host.com:either/branch/or/path's password:
于 2013-11-12T05:21:26.517 に答える
15

クローン作成中は簡単です。ユーザー名を含むgitURLを取得してください。コミットすると、新しいユーザーパスワードが要求されます。

例えば:

git clone https://username@github.com/username/reponame.git

git clone https://username@bitbucket.org/username/reponame.git

于 2017-09-04T11:39:54.830 に答える
10

これがあなたの問題なら

remote: Permission to username1/repo.git denied to username2.
fatal: unable to access 'https://github.com/username1/repo.git/':
The requested URL returned error: 403

git configを使用してターミナルからユーザー名と電子メールを変更することに加えて:

$ git config --global user.name "Bob"
$ git config --global user.email "bob@example.com"

キーチェーンから認証情報を削除する必要があります。このソリューションを理解するのに数時間かかりました。キーチェーンにも証明書があることがわかりました。

キーチェーンアクセスを開き、[すべてのアイテム]をクリックして、gitを検索します。すべてのキーチェーンを削除します

于 2017-09-13T13:57:29.040 に答える
9

前述のように、あなたは使用することができます

git config user.name her_username
git config user.email her_email

単一のリポジトリのユーザー名と電子メールを手動で設定するには、次のコマンドを追加する必要があります。

git commit --amend --reset-author

変更前にすでにプッシュしようとした場合。それ以外の場合、変更は構成ファイルに表示されません。

于 2017-02-17T22:21:23.570 に答える
9

私は1台のマシンを使用して、異なるユーザー名の2つの異なるGitHubアカウントにコードをプッシュしています。すでに1つのアカウントを設定していて、新しいアカウントを追加したいとします。

  1. 新しいSSHキーを生成するssh-keygen -t rsa -C "myaddress@example.com"
  2. 保存しますが、既存のものを上書きしないように注意してid_rsaください。別の名前を付けます。例:id_rsa_another
  3. キーの内容をGitHubアカウントにコピーします。

[設定]->[SSHおよびGPGキー]->[新しいSSHキー]->ラベルを付けてキーを貼り付ける->[SSHキーを追加]

  1. キーをsshエージェントに追加します。ssh-add ~/.ssh/id_rsa_another
  2. GitHubホストのセットアップ:touch ~/.ssh/configアカウントに構成を提供して、構成ファイルを作成し、ファイルを編集します。
#first account
Host github.com-first
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa

#another account
Host github.com-another
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_another

これで、sshエージェントに追加するキーに応じて、さまざまなアカウントからプッシュできるようになります。つまり、最初のアカウントを使用するには、を実行します ssh-add ~/.ssh/id_rsa

また、ユーザーの電子メールを変更することもできます。

git config --global user.email "myaddress@example.com"

または、アカウントの1つにコードをプッシュするときにアクセス許可エラーが発生した場合は、sshキーを削除します。

ssh-add -D

于 2019-01-20T12:00:08.180 に答える
6

資格情報マネージャーに移動しますWindows資格情報に移動します一般的な資格情報の下のエントリを削除します再接続を再試行します。

于 2017-04-27T10:34:15.430 に答える
6

1台のマシンで2番目のgithubIDを取得する方法はわかりませんでしたが(これらの回答はどれもうまくいきませんでした)、自分自身として複数の異なるgithubアカウントにプッシュできる方法はわかりました。

同じユーザー名としてプッシュしますが、異なるgithubアカウントにプッシュします

  1. 2番目のgithubアカウントに2番目のSSHキー(そのように)を設定します

  2. したがって、アカウント間で変更します。

新しい2番目のgithubアカウントでプッシュ

ssh-add -D
ssh-add ~/.ssh/ssh_key_for_my_2nd_account
git push

メインアカウントでプッシュ

ssh-add -D
ssh-add ~/.ssh/id_rsa   
git push
于 2020-05-20T05:05:34.890 に答える
5

を使用して、他のユーザー名の新しいリモートURLを追加できますgit remote add origin-username https://username@github.expedia.biz/repository_name.git

この後、を使用してプッシュするgit push -u origin-username masterと、パスワードの入力を求められます。

于 2018-10-15T12:14:46.260 に答える
5
git add .
git commit -m "initial commit"
git config --local credential.helper ""
git push https://github.com/youraccount/repo.git --all

このプッシュコマンドの後、ユーザー名とパスワードのプロンプトが開きます。

于 2021-01-03T08:42:07.843 に答える
4

私はこのようにそれを最高にするのが好きです。

git push https://username@github.com/username/repo

これによりパスワードの入力を求められるため、シェルにプレーンテキストで入力する必要はありません。

于 2021-08-19T16:28:17.867 に答える
2

git config user.nameは、コミットした名前のみを変更します。まだプッシュできません。これが私がそれを解決した方法であり、私にとっては簡単な方法だと思います。

  1. https://help.github.com/articles/connecting-to-github-with-ssh/を使用するコンピューターにプッシュするユーザー名でSSHキーを生成し ます

  2. プッシュするgithubユーザーアカウントにこのキーを追加し ますhttps://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/

  3. SSHでクローンを作成することを選択します

このユーザーとしてそのリポジトリにプッシュインできます。

于 2017-08-31T18:13:30.753 に答える
2

WindowsとユーザーGitforWindowsでmanager、クレデンシャル(別名Git-Credential-Manager-for-Windows Link)を管理する場合、問題は、トークンをhttps使用してGitHubにプッシュするときに、ユーザーを簡単に切り替える方法がないことです。OAuth

その理由は、トークンが次のように保存されるためです。

  • インターネットアドレス:git:https://github.com
  • ユーザー名:Personal Access Token
  • パスワード:OAuth_Token

のURLのバリエーションは機能しInternet Addressません。例:

  • git:https://username@github.com
  • git:https://github.com/username
  • ..。

解決策:名前空間。これは、Git-Credential-Manager-for-Windows:の構成の詳細に記載されています。

それからの引用:

名前空間

保存された資格情報の名前空間を設定します。

デフォルトでは、GCMは保存されているすべてのクレデンシャルに「git」名前空間を使用します。この構成値を設定すると、グローバルに、またはホストごとに使用される名前空間を制御できます。

git config --global credential.namespace name

次に、クレデンシャルをWindowsクレデンシャルマネージャーに次のように保存します。

  • インターネットアドレス:git.username:https://github.com
  • ユーザー名:Personal Access Token
  • パスワード:OAuth_Token

以下が変更されたことに注意してください。- git> git.usernameusername実際のユーザー名に変更するか、そのために、一意の識別子として必要なものに変更します)

次に、特定のエントリを使用するリポジトリ内で、次のコマンドを実行します。

git config credential.namespace git.username

(もう一度...username希望の値に置き換えます)

これで、次のもの.git/configが含まれます。

[credential]
    namespace = git.username

Etvoilá!正しいクレデンシャルは、Windowsクレデンシャルストアから取得されます。

もちろん、これはどのユーザー/電子メールがプッシュしているのかを変更しません。そのためには、通常のuser.nameとを構成する必要がありますuser.email

于 2018-01-07T10:54:40.993 に答える
1

https://desktop.github.com/
をお持ちの場合は、[設定](または[オプション]) -> [アカウント]に移動
し、サインアウトしてサインインできます。

于 2017-08-18T23:42:31.113 に答える
1

これは、機能するはずです: git push origin local-name:remote-name

より良いのは、GitLabの場合、2番目の " origin"、say" origin2"を使用することです。

git remote add origin2 ...
それから

git push origin2 master

従来の(短い)は、最初の「 」git pushと同様に暗黙的に機能する必要がありますorigin

于 2020-10-06T12:45:26.713 に答える
1

プロジェクトのルートフォルダにあるディレクトリconfig内にあるという名前のファイルを変更します。.git[PROJECT_PATH]/.git/config

このファイルの最後に次のセクションを追加しました。その後、新しい名前でリモコンにプッシュできました。

[user]
    name = Your Name
    email = MyEmailAddress@company.com
于 2021-08-22T17:52:01.430 に答える
0

コミットが発生するユーザーIDは、構成ファイルに保存されます。

リポジトリの先頭に移動vi.git/ config

「[remote"origin"]の後にリストされているURL行を、適切なユーザーIDを持つように変更します

于 2019-01-23T16:08:42.023 に答える
0

sshを使用して取得する場合

some_username/repository.gitへのアクセスがAlice_usernameに拒否され ました

Alice_usernameとしてプッシュしたくない場合は、Alice_usernameのgithubアカウントにコンピューターのsshキーが追加されていないことを確認してください。

アリスのgithubアカウントからsshキーを削除したところ、プッシュが機能しました。

于 2020-04-28T14:29:33.750 に答える
0

私はちょうど追加のユーザーを含めました:

  • リポジトリ設定、
  • アクセスを管理し、
  • 共同編集者を招待する

そしてそれは私のために働いた。

于 2021-02-18T12:14:30.507 に答える
0

私も同様の問題を抱えていました。私は仕事用とプライベート用のgithubアカウントを持っています。私のMacでは、主に仕事用のgithubを使用しています。ターミナル経由でプライベートリポジトリにプッシュするようにgitを説得することができませんでした。しかし、githubデスクトップを使用した場合は機能しました。

(私はそれを行う別の方法があるに違いないことを知っていますが、上記の答えのどれも役に立たなかったので、これは最も抵抗の少ない方法でした。)

于 2021-03-27T22:08:28.140 に答える