在版本控制方面,我完全是个菜鸟,但我最近开始使用 GitHub 来托管我的一些项目。我盲目地使用该命令git push origin master
将更改推送到两个存储库中的任何一个。我不明白 Git 如何知道要推送到哪个存储库。我使用相同的命令推送到每个。我所在的目录与它有什么关系吗?
感谢您为我解决这个问题。
在版本控制方面,我完全是个菜鸟,但我最近开始使用 GitHub 来托管我的一些项目。我盲目地使用该命令git push origin master
将更改推送到两个存储库中的任何一个。我不明白 Git 如何知道要推送到哪个存储库。我使用相同的命令推送到每个。我所在的目录与它有什么关系吗?
感谢您为我解决这个问题。
一句忠告,“盲目使用”任何东西都是一个坏主意。
git 有一个远程系统,它允许指定 URL 并传输到您正在工作的存储库以外的存储库。git push origin master
将当前分支推送到远程称为 origin 作为分支主控。您有一个名为 origin 的遥控器。这是从 URL 克隆存储库时默认创建的。
git remote add origin http://abc.com/def/ghi.git
告诉 git 远程 'origin' 指向的 url。
当您使用 时git push origin master
,您不会推送到两个存储库 - 您正在推送到存储库中名称(别名)为 origin 的 master 分支。
可以这样想:
我正在将我的东西推送到我的存储库地址。我在推什么?我的主分支。
如果您是新手并通过 git init 自己设置 git,那么您可能不会推送到两个存储库。运行此命令以查看您的遥控器是什么:
git remote -v
这将返回类似的东西(假设你有一个像 github 这样的 git 托管服务):
blahblah git@github.com:yourGithubName/fileName.git (fetch)
blahblah git@github.com:yourGithubName/fileName.git (push)
git@github.com:yourGithubName/fileName.git 是你的仓库地址。一些地址以 https:// 为前缀。
Git 存储库包含一个.git
目录,其中包含有关存储库的元数据。这就是 Git 用来确定将更改推送到何处的方法。