在不提交到主分支的情况下,是否可能将更改推送到远程仓库?我只用远程仓库进行部署。
在不提交到主分支的情况下,是否可能将更改推送到远程仓库?我只用远程仓库进行部署。
git commit --allow-empty
不,没有办法这样做,因为这完全与“git策略”相反。我不清楚你的部署系统,但我猜想你想要达到的目标的一个好方法是在不同的分支上工作(即,一个用于开发,一个在推送时用于部署),从开发分支合并你想要部署的更改到生产分支。
您可以使用--no-edit
选项修改最后一次提交,然后强制推送该分支。
git commit --amend --no-edit
git push origin <remote name> -f
git push <remotename> <commit SHA>:<remotebranchname>
我使用的一个解决方案是使用git diff
获取补丁文件,然后使用patch
将补丁应用到远程仓库。
我没有自动测试脚本可以提供,但是想法是使用git reset --hard
将远程仓库重置为与本地仓库相同的状态。
然后使用git diff > patch.txt
,传输补丁文件,并使用patch -p0 < patch.txt
进行应用。
这对于简单的修改应该有效,但无法处理删除/添加文件和其他更改。