سؤال كيف أضمن أن Git لا تسألني عن اسم مستخدم GitHub وكلمة المرور الخاصة بي؟


أنا أعمل مع repo على GitHub وفي كل مرة أحاول دفع شيء ما ، فإنه يسأل عن اسم المستخدم وكلمة المرور الخاصة بي GitHub. لا أريد أن يفعل ذلك.

لقد جربت التعليمات ضبط البريد الإلكتروني الخاص بك في جيت، أي إعداد Git المتغيرات github.user و github.token ، ولكن ذلك لم يحدث أي فرق.

لا أفهم لماذا يحدث هذا.


159
2017-10-14 17:17


الأصل


تحتاج إلى تخزين كلمة المرور: help.github.com/articles/set-up-git#password-caching - Piotr Usewicz


الأجوبة:


تحتاج إلى إعداد ssh-agent ضد الذي تحتاج فقط إلى المصادقة مرة واحدة. نرى هذا الجواب على SO في ato.


27
2017-10-14 17:28



لكن هذا الحل هو لعبارة ssh-family. المشكلة هي git يستخدم "git push" التي لا تحفز ssh-agent ، أفترض. (لقد فعلت هذا بالفعل ، لذلك أنا أعلم أنه لا يعمل.) - picardo
picardo: لقد فعلت هذا ، وهو يعمل بالفعل. - Daenyth


واجهت مشكلة مماثلة اليوم: لقد أفسدت الأمور في نسختي العاملة ، لذلك قررت إعادة تسمية الدليل واستنساخ مشروعي مرة أخرى من جيثب. ولكن بعد القيام بذلك ، كان علي إدخال كلمة المرور الخاصة بي للقيام بأي طلب سحب / دفع ، بدلاً من إدخال عبارة المرور مرة واحدة كما اعتدت.

كان ذلك لأنني اليوم استخدمت بروتوكول https لاستنساخ المشروع! للتحقق ما هو البروتوكول الذي تستخدمه فقط

git config -l

وانظر إلى السطر الذي يبدأ بـ "remote.origin.url".

لتبديل البروتوكولات:

git config remote.origin.url git@github.com:the_repository_username/your_project.git

the_repository_username و your_project يجب استبداله باسم المستودع المناسب ومالك ذلك المستودع. سيكون اسم المستخدم الخاص بك ملكك إذا كنت تملك المستودع ، أو اسم مستخدم مالك المستودع بخلاف ذلك.


205
2017-08-08 22:36



عملت معي. هناك شيء واحد هو أن عنوان url لا يحتوي على اسم المستخدم الخاص بي ولكن عنوان إعادة الشراء كما يظهر على جيثب: git@github.com:some-user/repo-name.git - B Seven
ملاحظة: جلبت لي جوجل هنا. كان لدى ال remote.origin.url لتعيين طريقة https ولم يلاحظوا حتى أنه كان هناك https ضد ssh أساليب. ساعدني عنوان URL هذا في رؤية ما هو واضح: help.github.com/articles/... - Chris K
هل هناك أي طريقة لتمرير كلمة المرور أيضًا؟ - zishe
سؤال لمن لديهم معرفة git: أي فرق (أو التفضيل) بين git config remote.origin.url ... المستخدمة أعلاه ، مقابل. git remote set-url origin ...؟ - Daryn
لم أتمكن من معرفة كيفية إزالة مصدر خاطئ من هذا القبيل. الجواب هو: git remote rm origin - Vacilando


إذا كنت تستخدم HTTPS بدلاً من SSH ، فيمكنك اتباع هذا:

  1. ابحث عن عنوان URL البعيد (remote.origin.url) باستخدام

    git config -l
    

    بفضل سيرجيو مورستابيليني

  2. سيكون عنوان URL البعيد على النحو التالي: HTTPS: // {USERNAME} @ github.com / {USERNAME} / {REPONAME}. بوابة

  3. تنفيذ هذا الأمر:

    git config remote.origin.url https://{USERNAME}:{PASSWORD}@github.com/{USERNAME}/{REPONAME}.git
    

28
2017-12-03 22:40



اسم المستخدم الخاص بي نفسه يحتوي @، لم يعمل بالنسبة لي. - coding_idiot
ولكن إذا لم يكن (لا تحتاج إلى استخدام البريد الإلكتروني الخاص بك) فإنه يعمل على أكمل وجه! شكر. - Killah
إذا كان اسم المستخدم الخاص بك يتضمن @ ، فستحتاج إلى تشفير عنوان URL الخاص به. meyerweb.com/eric/tools/dencoder - Tim Bodeit
يجب عليك حذف كلمة المرور لأسباب تتعلق بالأمان. - zygimantus
حذار ، سيتم تخزين كلمة المرور في نص عادي داخل .git/config ملف! - Amro


أفضل استخدام HTTPS ، أجد أنه أسهل وأكثر أمانًا من إعداد مفاتيح ssh.

باستخدام HTTPS ، يمكنك منع git من طلب اسم المستخدم الخاص بك من أجل github remotes مع ما يلي:

git config --global url."https://yourusername@github.com".insteadOf "https://github.com"

ويمكنك على الأقل تقليل بوابة التردد التي تطالبك بكلمة المرور الخاصة بك مع:

git config --global credential.helper 'cache --timeout=28800'

حيث 28800 هي 8 ساعات. أستخدم هذا الإعداد لإدخال كلمة المرور مرة واحدة فقط ، عندما أبدأ يوم العمل.

بعد ذلك سيكون لديك هذه الإدخالات داخل ~/.gitconfig

[url "https://yourusername@github.com"]
    insteadOf = https://github.com

[credential]
    helper = cache --timeout=28800

مصدر:

http://git-scm.com/docs/git-credential-cache

http://git-scm.com/docs/git-config


25
2017-11-21 04:27



هذا يعمل كالسحر. شكر. - david euler


إذا كنت تستخدم نظام التشغيل Windows باستخدام HTTPS ، فحاول استخدام بوابة مخزن الاعتمادات - يستخدم "مخزن بيانات الاعتماد لـ Windows" لاحتواء اسمك وكلمة المرور.

Windows Credential Store for Git
This application is a small helper app designed to follow the 
git credentials API as defined by the Git Documentation.

Installation
1. Download the git-credential-winstore.exe application
2. Run it! If you have GIT in your PATH, it should just work.

ثم في المرة التالية التي تدخل فيها اسمك وكلمة المرور الخاصة بك ، ستذكرها لك.


6
2018-02-23 11:54



شكرا لكم. تمت إعادة تسمية المشروع إلى بوابة-الاعتمادات-مدير لنظام التشغيل Windows. - Michael S.


عندما تقوم بإعداد مفتاح ssh لـ github ، إذا لم يكن مفتاحك الافتراضي ، فستحتاج إلى إضافة قسم إلى الخاص بك ~/.ssh/config

Host *github.com
    User git
    IdentityFile ~/.ssh/github_id_rsa

5
2017-10-14 19:45





أيضا ، إذا كنت ترغب في أن تتم مطالبتك بكلمة المرور الخاصة بك في كل مرة ، ولكن ليس اسم المستخدم الخاص بك ، فقم بتكوين جهاز التحكم عن بعد ك HTTPS باستخدام اسم مستخدم .. مثل هذا ..

git config remote.origin.url https://USERNAME@github.com/repo_owner/repo_name

بعد ذلك ، ستتم مطالبتك بكلمة المرور الخاصة بك في كل مرة ، ولكن ليس اسم المستخدم الخاص بك.

هذه هي الطريقة التي أفضلها ، لأنني أحب أن أجبر على كتابة كلمة مرور جيثوب قبل المشاركة مع العالم.


5
2017-08-11 03:17





الأمور مختلفة بعض الشيء إذا كنت تستخدم مصادقة 2-عامل كما أنا. وبما أنني لم أجد جوابًا جيدًا في مكان آخر ، فسوف ألصق أحدًا هنا حتى أتمكن من العثور عليه لاحقًا.

إذا كنت تستخدم المصادقة الثنائية ، فعندئذ لن يؤدي تحديد اسم المستخدم / كلمة المرور إلى العمل - فقد تم رفض الوصول إليك. ولكن يمكنك استخدام الرمز المميز للوصول إلى التطبيق واستخدام مساعد بيانات اعتماد git في التخزين المؤقت لك. فيما يلي الروابط ذات الصلة:

ولا أتذكر أين رأيت هذا ولكن عندما يُطلب منك اسم المستخدم الخاص بك - حيث تلتصق برمز الوصول إلى التطبيق. ثم اترك كلمة المرور فارغة. عملت على بلدي ماك.


2
2017-09-25 19:45





أيضًا إذا كنت تستخدم Windows ، يمكنك استخدام:

$ git config --global credential.helper wincred

عليك فقط تسجيل الدخول مرة أخرى ومن ثم ستتذكر بوابة.


1
2018-04-05 14:31