我已经对不同的文件进行了多次提交,但到目前为止,我只想将一个特定的提交推到远程存储库。
这可能吗?
我已经对不同的文件进行了多次提交,但到目前为止,我只想将一个特定的提交推到远程存储库。
这可能吗?
当前回答
我相信你将不得不“git还原”到那个提交,然后推送它。或者您可以挑选一个提交到一个新的分支,并将其推到远程存储库上的分支。喜欢的东西:
git branch onecommit
git checkout onecommit
git cherry-pick 7300a6130d9447e18a931e898b64eefedea19544 # From the other branch
git push origin {branch}
其他回答
我只是用了
Git选择“提交的sha id”
然后
git push
在我的例子中,我的本地分支名称是'master',远程默认分支名称也是'master'。
我建议使用git rebase -i;将要推入的提交移到已提交的提交的顶部。然后使用git log来获取重基提交的SHA,检出并推送它。rebase将确保所有其他提交现在都是您所推送的提交的子提交,因此未来的推送也将正常工作。
要执行给定的提交,你可以这样写:
git push <remotename> <commit SHA>:<remotebranchname>
前提是<remotebranchname>在远程端已经存在。(如果没有,你可以使用git push <remotename> <commit SHA>:refs/heads/<remotebranchname>来自动创建它。)
如果你想要推送一次提交而不推送之前的提交,你应该首先使用git rebase -i来重新排序提交。
我相信你将不得不“git还原”到那个提交,然后推送它。或者您可以挑选一个提交到一个新的分支,并将其推到远程存储库上的分支。喜欢的东西:
git branch onecommit
git checkout onecommit
git cherry-pick 7300a6130d9447e18a931e898b64eefedea19544 # From the other branch
git push origin {branch}
你也可以在另一个目录下:
Git克隆[你的存储库] 用刚才克隆的存储库的.git目录覆盖原始存储库中的.git目录。 Git添加和提交你的原始文件