我正在为Jenkins的工作开发一个自动化脚本。该脚本接受一个参数$1,对存储库文件进行一个小的更改并推送更改。它只是做了:
git clone repo
echo > $1
git commit -a -m 'updated'
git push当这些Jenkins作业立即执行时,git push经常失败:
! [rejected] master -> master (non-fast-forward)这完全可以理解。但是,我希望强制执行推送,因为已经保证每个脚本调用都得到不同的$1。
从手册一页,我了解到:
--force
... This flag disables these checks,
and can cause the remote repository to lose commits;
use it with care.这个旗子适合我的场景吗?
发布于 2014-02-14 12:55:41
您应该而不是使用--force,如果您无法承受丢失其他提交和随后的其他文件!
相反,使用拉拉来拉出其他过程的变化,然后再推:
git pull origin master && git push origin master如果您想让存储库清除合并提交,请考虑使用pull --rebase
git pull --rebase origin master && git push origin master请注意,在pull和push之间有一个很小的窗口,其中再次提交可能会滑入,如果它没有通过,可以考虑在必要时重复该命令。但请记住,这可能会导致绞刑。
https://stackoverflow.com/questions/21779921
复制相似问题