使用较早的回购标签作为推送到 master 不起作用

Using an earlier tag of a repo as pushing to master not working

我已经克隆了 this repo。 v1.7 标签不适用于我的代码。但是 v1.6 可以。

我想使用 v1.6。我尝试了以下方法;

git checkout tags/v1.6

我做了一个小改动,然后尝试提交给 master。

git add -A
git commit -m "not my real message"
git push origin master

我收到消息 "Everything up-to-date"。当我在 GiHub 上访问我的私人仓库时,它今天没有显示任何变化。就像,我什么都没做。

我对 git 不是很有经验,所以我不知道接下来要尝试什么。

这个私有仓库在另一个更大的项目中使用,并使用 composer 注入;

"private-repo/worldpay-lib-php": "dev-master"

我怎样才能以某种方式使用 v1.6?

签出标签时,您处于 detached HEAD 模式(git 应该已经按照这些行给了您一条信息消息),这意味着您可以查看工作树并测试您的代码,但您所做的任何提交都不会推进任何分支。

为此,您必须先在该标签上创建一个分支:

git branch new_branch v1.6

然后检查那个分支:

git checkout new_branch

现在您可以 stage/commit 并像往常一样推送:

git add ... 
git commit -m "your real message"
git push origin new_branch

从你的问题来看,你似乎已经分叉了一个存储库。如果你已经分叉了这个项目并且你希望你的分叉的主控(不是一个叫做 new_branch 的任意分支)实际上从 v1.6 开始并且永远偏离上游项目,那么你可以继续:

git checkout master
git reset --hard new_branch   # reset master to the state of new_branch
git push origin master -f     # overwrite you're repo's master branch

请注意,这最后一个操作假定您不想继续跟踪上游存储库(即您分叉的原始存储库)。