Команда Git pull від іншого користувача


76

Я працюю зі своїм другом над проектом, кодом якого є Git. Якщо мені потрібно витягнути зміни з машини мого друга, чи можу я витягти їх зі свого імені користувача / пароля, використовуючи наступну команду без будь-яких проблем?

git pull https://myusername@github.com/abc/theproject.git

2
Ви намагаєтесь витягти зміни свого друга безпосередньо з його машини, не проходячи через GitHub?
Кріс,

@Chris, так, в основному наш сайт розміщений на його машині. Я вніс деякі зміни та перевів його на github. Тепер я хочу розгорнути зміни, витягнувши з github, оскільки мій друг поки що у відпустці.
Mohsin Inayat Khan

Відповіді:


162

Ця команда допоможе витягнути зі сховища іншого користувача:

git pull https://myusername@github.com/projectfolder/projectname.git master

Це обхідне рішення, коли ви використовуєте ту саму машину, якою користувався хтось інший до вас, і зберігав облікові дані


1
це для мене!
Алессандро

31

Шукав рішення подібної проблеми. Завдяки відповіді Давлета та Кексу я зміг вирішити свою проблему.

Опублікувавши цю відповідь тут, оскільки я думаю, що це намічене питання

Тож я думаю, загалом проблема, з якою стикаються такі люди, як я, полягає в тому, що робити, коли репо клонується іншим користувачем на сервері, і цей користувач більше не пов’язаний з репо.

Як витягнути з репо без використання облікових даних старого користувача?

Ви редагуєте файл .git / config вашого репо.

і зміни

url = https://<old-username>@github.com/abc/repo.git/

до

url = https://<new-username>@github.com/abc/repo.git/

Після збереження змін відтепер git pull буде витягувати дані, використовуючи облікові дані нового користувача.

Сподіваюся, це допоможе комусь із подібною проблемою


13
Ще краще: ви залишаєте ім'я користувача поза URL-адресою, тому він буде запитувати вас ім'я користувача під час витягування.
PLPeeters

1
я зробив те саме. залишив URL-адресу поза URL-адресою, наприклад так, замість того, щоб редагувати безпосередньо: git remote set-url origin git.mycompany.com/scm/myproj.git ... потім переконався, що всі користувачі (їхня група Linux) мають доступ для запису в проект і папка .git (інакше інший користувач отримає помилку із повідомленням, що не може оновити .git / HEAD, наприклад, коли вони запускають 'git pull'
armyofda12mnkeys

3

Ваше запитання трохи незрозуміле, але якщо те, що ви робите, намагається отримати останні зміни вашого друга, тоді, як правило, ваш друг повинен зробити, щоб перенести ці зміни до віддаленого репо (наприклад, розміщеного на GitHub), і тоді ви отримуєте або витягуєте ці зміни з пульта:

  1. Ваш друг надсилає свої зміни до GitHub:

    git push origin <branch>
    
  2. Клонуйте віддалене сховище, якщо ви цього ще не зробили:

    git clone https://myusername@github.com/abc/theproject.git
    
  3. Завантажте або витягніть зміни свого друга (непотрібно, якщо ви просто клонували на кроці 2 вище):

    git fetch origin
    git merge origin/<branch>
    

    Зверніть увагу, що git pullце те саме, що зробити два кроки вище:

    git pull origin <branch>
    

Дивитися також


Сайт розміщений на машині мого друга. Я вніс деякі зміни у свою машину та перевів її на github. Тепер я хочу застосувати зміни, потягнувши за машину мого друга, бо він виїжджає на канікули.
Mohsin Inayat Khan

@MohsinInayatKhan, тоді увійдіть до машини вашого друга і виконайте крок 3, як я вже зазначив вище, припускаючи, що саме так працює ваш процес розгортання . Чому ваш сайт розміщений на машині вашого друга, а не на якомусь виробничому сервері? Якою машиною користується ваш друг, ноутбуком? Якщо він є, це не буде дуже безпечним або надійним способом розміщення ділового веб-сайту.

Дякую хлопці за допомогу. Наступна команда спрацювала для мене. git pull myusername@github.com/abc/theproject.git master
Mohsin Inayat Khan

@MohsinInayatKhan ви можете опублікувати це як відповідь.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.