gpt4 book ai didi

git - HEAD :master and HEAD?有什么区别

转载 作者:太空狗 更新时间:2023-10-29 14:35:33 31 4
gpt4 key购买 nike

git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME_PRODUCTION.git HEAD

git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git HEAD:master

看起来 HEAD:master 能够覆盖 .gitignore 文件而 HEAD 不能。

最佳答案

区别在于远程服务器上的目标分支。

假设您坐在分支 foobar 上。

git checkout foobar
..workwork..
git push origin HEAD

HEAD 您当前的本地分支 的最新版本。因此,在本例中它表示 foobar。因此,此命令将简单地将 foobar 发送到远程服务器。在远程服务器上,它将更新/覆盖一个“匹配”*)您发送的分支。通常,这意味着发送 foobar as foobar。这里没有惊喜。

另一方面

git checkout foobar
..workwork..
git push origin HEAD:master

明确指示 git 将您的 HEAD 作为 master 发送。这意味着,它会将您最近的 foobar 作为远程服务器上的 master 发送到远程服务器。就是这样,就是这样。你的本地 master 不会改变并且保持不变。远程 foobar,如果它存在的话,不会改变。但是,远程 master 现在将与您本地的 foobar

同步

*) 是客户端(您的本地端)决定在远程端选择哪个分支。 local-branch 和 remote-branch 之间的默认映射保存在 .git/config 文件中。完全可以让你的本地分支aaa自动发送到远程aaa或远程bbb,所以事实上我不能告诉你具体在哪里git push origin xxxx 是否会推送 xxxx 分支 - 这取决于映射 - 您可以通过 --set-upstream 或仅编辑配置文件来更改它们。另一方面,git push origin xxx:yyy 始终意味着:将 x 作为 y 发送。


至于 .gitignore 部分 - 它无关。 pull 和 push 都与 .gitignore 无关。 Git-ignore 不会阻止你把任何东西推到任何地方。它只会帮助不提交不需要的文件。即使在这种情况下,它也不会阻止您,因为您始终可以通过 git add -f 添加任何文件,并且这些文件将在推送期间像普通文件一样发送到任何远程服务器(它们,事实上,是)。

请注意,您显示的这 2 个命令使用不同的存储库:

...git.heroku.com/$HEROKU_APP_NAME_PRODUCTION.git...git.heroku.com/$HEROKU_APP_NAME.git

也许这就是让您认为 git-ignore 有所不同的原因?

关于git - HEAD :master and HEAD?有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51155656/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com