我最近更改了我的 Github 帐户。我的新用户名和电子邮件存储在全局 .gitconfig 中:
[filter "lfs"]
process = git-lfs filter-process
required = true
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
[user]
name = myusername
email = myemail@gmail.com
[credential]
helper = store
username = myusername
Run Code Online (Sandbox Code Playgroud)
以及我在 .git-credentials 中的 github 密码。
每次我推送到我的远程存储库时,都会弹出 Github 登录信息,询问我的凭据。
当我取消它时,一切正常。我不需要输入用户名或密码。遥控器已更新。如何摆脱那个弹出窗口?在更改帐户凭据之前,我没有这种行为。
我编写了一个命令行工具,以git pull使用python asyncio 执行多个git repos。如果所有存储库均具有ssh无需密码的登录设置,则该方法可以正常工作。如果仅1个回购协议需要输入密码,它也可以正常工作。当多个存储库需要输入密码时,它似乎陷入僵局。
我的实现非常简单。主要逻辑是
utils.exec_async_tasks(
utils.run_async(path, cmds) for path in repos.values())
Run Code Online (Sandbox Code Playgroud)
在这里run_async创建并等待子流程调用,然后exec_async_tasks运行所有任务。
async def run_async(path: str, cmds: List[str]):
"""
Run `cmds` asynchronously in `path` directory
"""
process = await asyncio.create_subprocess_exec(
*cmds, stdout=asyncio.subprocess.PIPE, cwd=path)
stdout, _ = await process.communicate()
stdout and print(stdout.decode())
def exec_async_tasks(tasks: List[Coroutine]):
"""
Execute tasks asynchronously
"""
# TODO: asyncio API is nicer in python 3.7
if platform.system() == 'Windows':
loop = asyncio.ProactorEventLoop()
asyncio.set_event_loop(loop)
else:
loop = asyncio.get_event_loop()
try:
loop.run_until_complete(asyncio.gather(*tasks)) …Run Code Online (Sandbox Code Playgroud) 尝试修复我使用git push时出现的问题时,请执行该命令.它每次我推动时都会提示我,我不知道如何禁用它.