覆盖git仓库而不丢失提交

时间:2019-02-21 08:40:40

标签: git merge

我的问题:

我想构建一个角度库并将其托管在私有git存储库中。要部署我的库,我需要推送dist / my_project文件夹的内容,该文件夹在每次构建我的库时都会被删除。这意味着我无法保留本地git历史记录,因为已删除本地git文件夹。

最初,我只是在git init之后进行git push -f,但这会清除远程服务器上的历史记录,这意味着我无法在此存储库上使用版本控制。

我找到了一个可行的解决方案,但是“ git merge”策略似乎被认为是一件非常狡猾的事情。有更好的方法吗?

我目前正在执行的操作,以确保能够保留以前的版本。

ng build mylib
cd ./dist/mylib/
git init
git remote add origin MY_REMOTE
git fetch
git add .
git commit -am 'version bump'
git merge origin/master -s ours --allow-unrelated-histories
git commit -am 'version bump'
git tag $1
git push --set-upstream origin master
git push --tags
cd ../../

这很重要

1 个答案:

答案 0 :(得分:0)

我发现临时移动.git文件夹是最好的方法,因为它似乎是最简单,最轻松的方法:

所以基本上:

mv ./dist/mylib/.git ./dist/mylib-backup-git
ng build mylib
mv ./dist/mylib-backup-git ./dist/mylib/.git 

保留.git存储库也使我可以使用分支,从而进一步改善了版本控制。