我最近又遇到了 sublime merge 想要从错误的账户推送的问题。
所以这是场景:
我在 github 上创建了一个带有配置文件“x”的存储库,但是每当我想从 Visual Studio Code 或 sublime merge 推送任何内容时,它都想从配置文件“z”推送。
我知道当它提示我登录时我第一次使用了我的学校登录名“z”,这样我就可以开始推送东西,但我从未真正找到如何更改它。我安装了 sublime merge,希望不会再遇到这个问题,但它会自动使用学校登录。
Git 不在 Github 帐户上运行。它通过遥控器操作。以下是使用遥控器的快速概述。
使用
git remote -v
: 查看您的远程 URL
$ git remote -v
origin https://github.com/ARMmbed/mbedtls.git (fetch)
origin https://github.com/ARMmbed/mbedtls.git (push)
请注意,
origin
是任意远程名称。它可以被称为任何东西†,origin 只是默认值。
使用
git remote set-url
更改远程 URL:
$ git remote set-url origin [email protected]:h3xx/mbedtls
您也不必只有一个遥控器!
$ git remote add me [email protected]:h3xx/mbedtls
$ git remote -v
me [email protected]:h3xx/mbedtls (fetch)
me [email protected]:h3xx/mbedtls (push)
origin https://github.com/ARMmbed/mbedtls.git (fetch)
origin https://github.com/ARMmbed/mbedtls.git (push)
添加遥控器时,请确保运行
git fetch <remote name>
或 git fetch --all
从本地存储库中的每个遥控器获取数据。
常见的误解:让我们准确一点。添加远程不会修改 GitHub 上的任何内容。它只会修改您的本地副本。
您可以使用
git branch -vv
: 查看分支及其跟踪的遥控器
$ git branch -vv
* (HEAD detached at mbedtls-3.4.1) 72718dd87 Merge pull request #1044 from Mbed-TLS/mbedtls-3.4.1rc0-pr
development 6d6c7982c [origin/development: behind 24633] Merge remote-tracking branch 'upstream-public/pr/1362' into development
master edb8fec98 [origin/master: behind 3076] Add docs re Everest license
您可以将分支推送到远程并使用
git push -u
: 设置它的跟踪位置
$ git push -u me master
或者,如果没有
push -u
,您可以通过运行 git branch --set-upstream-to=me/master
: 来更改本地分支的远程跟踪分支
$ git branch --set-upstream-to=me/master my-local-branch
† Git 将远程名称限制为只能包含
A-Z
、a-z
、0-9
、-
、.
、,
、/
。