inq*_*nds 3 versioning git tagging
我已经创建了一个git标签,但后来我做了一些其他的提交,其中一个需要在标签中,其他的则没有.
例如:
git commit 123
git commit 456
git commit 789
git commit 1011
git commit 1213
Run Code Online (Sandbox Code Playgroud)
我在点上做了一个标记1011,但现在我想添加提交123,而不是之间的任何提交.有办法吗?
JCo*_*ton 10
从您的标记开始,您将要想要包含您想要包含的单个提交.然后,您将移动标记以指向新状态.
git checkout my_tag
git cherry-pick commit_123
git tag -f my_tag
Run Code Online (Sandbox Code Playgroud)
将标签视为分支可能会有所帮助.就像分支一样,标记指的是提交历史中的特定点.所以你想要做的是有效地创建一个具有不同提交历史的新分支,然后标记该新状态.检查当前标记会使您回到原始点,在您想要添加的单个提交中进行逐字记录,然后重新标记会保存新的分支状态.你需要-f选择"移动"标签,否则你会收到tag 'my_tag' already exists错误.
我认为你的术语混淆了.
git commit您将把提交添加到当前分支.目前尚不清楚你是否仅仅意味着分支而不是标记,或者如果你问为什么输出例如git log mytag是自从1011之前的所有提交.
git log mytag将记录标记为mytag及其所有父项的提交.
如果您的意思是分支,并且您创建的分支在其历史记录中尚未包含提交123,则可以git cherry-pick.
写这个,我意识到你可能也意味着如何将commit 123添加到列出的提交集git log mytag.要做到这一点,你需要在那时创建一个新的分支git checkout -b mybranch mytag,然后樱桃选择提交123,然后使用标记移动到新的提交git tag -f.然后你可以回到你以前的分支(例如git checkout master).您之前的分支将有不同的历史记录,分支机构已分歧.