在版本控制方面,我是一个完整的noob,但是我最近开始使用GitHub来托pipe我的一些项目。 我盲目地使用命令git push origin master
将更改推送到两个存储库中的任何一个。 我不明白Git如何知道要推送哪个存储库。 我使用相同的命令来推送到每个。 我所在的目录与它有什么关系?
感谢您为我清理这个。
Git存储库包含一个包含关于存储库的元数据的.git
目录。 这就是Git用来确定在哪里推送更改。
一句忠告,“一味地使用”是一个坏主意。
git有一个遥控系统,允许指定URL和传输到除了你工作的地方以外的存储库。 作为分支主机, git push origin master
将当前分支推送到远程被调用的源。 你有一个远程调用的起源。 这是从URL中克隆存储库时默认创建的。
当你使用git push origin master
,你并没有推送到两个版本库 – 你正在推送你的版本库里的master(别名)是origin的master分支。
像这样想:
我推动我的东西,这是我的存储库地址的来源。 我在那里推什么? 我的主分支。
如果你是新手,并且通过git init来设置,那么你可能不会推送到两个仓库。 运行这个命令看看你的遥控器是什么:
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 remote add origin http://abc.com/def/ghi.git
告诉git远程“origin”指向的url。