如何从存储库中已有的特定TAG更改文件?

时间:2019-02-21 17:15:11

标签: git github

如果我想编辑标签的 README.md ,但是当我输入以下命令时什么都没有发生:

git checkout <tagname>
git add README.md
git commit -m "MESSAGE"
git push origin <tagname>

1 个答案:

答案 0 :(得分:2)

标记名是一个特定提交的特定名称,即一个原始哈希ID。

修改README.md文件(或添加一个新文件)并进行新的提交时,即为 new 提交。它具有不同的哈希ID。如果要在此处使用标记,则应制作一个 new 标记,以记住新提交的哈希ID:

git checkout v1.2                   # goes into detached HEAD mode
... modify files, commit them ...
git tag -a v1.3                     # make new tag `v1.3`

git push origin v1.3

可以将标记移至新提交,但随后您将不得不使用git push -f和其他正在克隆并利用origin存储库的用户可以选择不更新标签。

这种东西-具有 latest 提交的名称-正是分支名称的目的。如果您不是这样做的,而不是像v1.2这样的标签,

git checkout foo                # gets on branch foo
... modify files, commit them ...
git commit                      # makes new commit, updates foo to refer to it
git push origin foo

每个人都不会对事件序列感到惊讶。