每次 push 时都让输入用户名和密码是因为 https 传输时,GitHub 并不会记住用户名和密码,报错信息类似于下面这样:

E:\personal-projects\notes> git push

   发送请求时出错。

fatal: HttpRequestException encountered.

   发送请求时出错。

Username for 'https://github.com': xxx

Password for 'https://xxx@github.com':

解决办法就是使用 ssh 来 push 和 pull 而不是 https

  1. git remote -v (查看当前使用的 push 和 fetch 方式)
    ps: pull = fetch + merge
    origin  https://github.com/xxx/notes-2020.git (fetch)
    origin  https://github.com/xxx/notes-2020.git (push)
  2. 查看到是 https 方式,执行下面语句删除这种连接方式
    git remote rm origin
  3. 去 GitHub 主页找到对应 repository 然后复制其 ssh 的地址
  4. 执行:
    git remote add origin git@github.com:xxx/notes.git
  5. 执行 (master 是远端分支名字,视情况而定)
    git push --set-upstream origin master
  6. git remote -v
    origin  git@github.com:xxx/notes.git (fetch)
    origin  git@github.com:xxx/notes.git (push)

至此,问题解决。

end.