У меня есть сценарий, который автоматизирует некоторые большие задачи запросов на вытягивание, которые мы выполняем. Одна вещь, которую я делаю, это пытаюсь автоматически синхронизировать две ветки, которые мы используем. Раньше я использовал токен для выполнения git fetch
, но недавно мне пришлось изменить его из-за некоторых изменений в политике.
Итак, что я делаю сейчас, это ниже.
subprocess.check_call(['git', 'fetch', f'https://{username}:{password}@{repo_url}'], cwd=repo_path)
Но я заметил, что это не всегда видно, когда моя локальная ветка не синхронизирована с удаленной веткой.
Вопрос
Мой вопрос заключается в следующем: чем отличается git fetch
от того, когда я использую свое имя пользователя, пароль и repo_url, что заставляет его не замечать удаленные изменения, когда я использую свое имя пользователя и учетные данные для выполнения выборки? Что я должен делать по-другому? И что я должен использовать вместо этого, чтобы гарантировать, что мой скрипт заметит, когда удаленная ветвь не синхронизирована?
Дополнительная информация
Я пробовал написать сценарий git fetch сам по себе, и он отлично работает, только требует, чтобы я снова ввел свое имя пользователя и пароль.
subprocess.check_call(['git', 'fetch'], cwd=repo_path)
git fetch
не работает? Выполняется ли обновление некоторых имен удаленного отслеживания, но не всех имен удаленного отслеживания? Он вообще ничего не делает? Какой результат он производит? Посколькуcheck_call
гарантирует, что статус выхода равен нулю (в противном случае возникает исключение), завершается ли он без исключений или заканчивается исключением? - person torek   schedule 30.03.2021