• git提交了tag而没有提交commit代码到远程


    git 提交了 tag 而没有提交 commit 代码到远程的仓库问题(意思是,本地有一个 commit 未提交到远程,但是给当前commit 打上了 tag ,并且仅仅执行 git push --tags 提交 tag)

    git tag 文档地址

    本地新建文件并生成 commit 信息

    可以看到,上面新建了 tag-commit.txt 文件,并在本地生成了1个 commit 信息

    生成 tag 信息

    对刚生成的 commit 代码打上tag "tag-commit" (tag-commit 为本次打的 tag 名)

    仅提交 tag 信息到远程仓库

    可以看到 "new-tag" 说明在远程已提交新的 tag , 同时通过 git status 也看到 最新 commit 还没有提交到远程仓库,仅仅提交了 tag 到远程

    观察远程仓库代码 

    对比远程和本地 commit-id 发现,远程 tag 对应的 commit-id 和本地相等,但是显示为 0 commit,这个是是什么意思呢,代码到底有没有推送到远程仓库呢

    分析验证

    在另外一个目录下(如下切换到 test 目录下)重新拉取仓库代码,看代码是否提交上去了。

     

    重新在另外一个目录 clone 我们的代码后,通过两次 ls 命令,查看项目文件(主要是查看 tag-commit.txt 文件是否存在,这个文件就代表了我们最新的提交代码),

    第一次,我们在 master 分支查看项目文件,发现并没有 tag-commit.txt 文件;

    第二次,我们在切换到 tag 名为 "tag-commit" (记得这个名字吗,这个就是我们上面打的 tag)的 tag 下,发现存在 tag-commit.txt 文件,也就是存在最新的提交代码;

    通过以上分析,我们可以得出结论,如果我们在本地生成了新的commit信息,并且给这个 commit 打上了 tag,在仅仅提交 tag,而不提交 commit 信息到远程仓库的情况下(即仅执行 git push origin --tag,此命令只会提交 tag 而不会提交 commit),我们最新的代码是会被提交到远程仓库,并且提交代码是记录在了 tag 中,而远程 commit 中,却没有最新代码。这是一个很神奇的效果。 也就是说,如果我们通过 tag 信息去检索代码,可以看到最新代码,但是如果通过 commmit 去查看,却看不到最新的代码。

    @萍2樱释ღ( ´・ᴗ・` )

    打不死的小强
  • 相关阅读:
    MyEclipse配置Tomcat 并编写第一个JSP程序
    ubuntu安装postgresql与postgis
    ubuntu12.10升级至14.04
    ubuntu 12.10无法用apt-get安装软件 Err http://us.archive.ubuntu.com quantal-updates/main Sources 404 Not
    hive0.13网络接口安装
    hive报错 Another instance of Derby may have already booted the database
    前端开发者进阶之函数柯里化Currying
    js中的事件委托
    while 和 for 对比
    小图标文字对齐的终极解决方案
  • 原文地址:https://www.cnblogs.com/mggahui/p/13756491.html
Copyright © 2020-2023  润新知