Grz*_*orz 4 git bitbucket bitbucket-api gitkraken
我有小问题。最近开始使用gitKraken来测试它的工作方式(考虑从sourcetree迁移)。据我了解,它更像是“原始” git命令。SourceTree为我完成了一些事情,例如自动标记推送(确定,发现它允许使用不推荐的--tags选项)
我的问题是标签。我在控制台上对其进行了测试,它似乎与推送标签有关。
git push origin-推送更改
git push origin 1.0.0-推送标签
在这里,一切正常。我的同事可以看到更改并可以进行更改。
git push origin 1.0.0-我只推送标签,而不提交(这怎么可能?),
它在存储库(在BitBucket站点上)像普通的提交一样可见-带有注释和ID。但是,提交不能通过git pull从bitbutcket下载,因为它表明它是最新的
我觉得它看起来像
git push origin= git push origin
git push origin 1.0.0=git push some-special-place
它是如何工作的?我可以在BitBucket网站上看到所有更改。
此外,我可以下载提交的标签,而无需提交更改,并且我得到的结果是最近通常提交的。如果我使用API /网站下载回购副本,可能会导致问题,因为它与实际更改不符
编辑 如果我的本地提交是A-B-C-D(tag)远程的,A-B-C则BitBucket接口向我显示(仅提交标签后)A-B-C-D,并且未声明其HEAD为C而不是D。那就是我以为我拒绝了最新的提交,但实际上我下载的是HEAD
另外,要注意:从远程可删除 未提交的 提交中删除标签-就像它们从未放在首位一样。
GitKraken或源代码树都不会通知未提交的更改。
编辑:仅提交标签会在Web界面中显示实际更改(补丁摘要)。提交看起来完全一样。
我认为您在这里混淆了提交,分支和标签的概念。
A tag只是一个指向提交的指针。如果不推动标签所push指向的提交,则永远不能引用标签(标签,将其签出或进行其他操作)。git push origin <tag>将推送提交以及指向该提交的标签。
但是,它不会更改任何分支。一个pull是现在的组合git fetch和git merge。如果您从其他地方拉出,则将提取推送的提交。但是merge将跟踪的远程分支合并到本地分支中。但是,远程分支没有更改(因为您仅推送了commit和tag,但没有更改分支HEAD)。因此,up-to-date当您拉动时会显示该消息。
但是,您可以在另一台计算机上检出提交,因为它已被提取。但是,除非您执行了,否则您无法通过标记执行此操作git pull --tags。
基线:
git push origin <tag>确实会推送提交和标签,但不会更改被跟踪分支的HEAD。git push origin <branch>推送新的提交并更新远程分支的HEAD,但不推送标签git push origin(无标签或分支)默认情况下将推送当前分支。参见git push文档(由@Melebius提供)此外,我可以下载提交的标签,而无需提交更改,并且我得到的结果是最近通常提交的。如果我使用API /网站下载回购副本,可能会导致问题,因为它与实际更改不符
我不理解您的问题的这一部分,也许您可以对此进行详细说明。你是什么意思normally commited?