问题
Result of lots of searching on net is that pre-checkout
hook in git is not implemented yet. The reason can be:
- There is no practical use. I do have a case
- It can be achieved by any other means. Please tell me how?
- Its too difficult to implement. I don't think this is a valid reason
Here my problem is:
I have implemented the pre-commit
, post-merge
& post-checkout
hooks for maintaining the database backup different for each branch.
Scenario: Now when I commit the backup of database is saved in a file using pre-commit
hook. And when I checkout the the branch or merge occurs the database stored in file is restored using post-merge
& post-checkout
hooks. Now the situation is if someone make changes in database after commit and checkout, the changes are lost, as database was not backed-up. The checkout succeeded as there is no change in file structure.
So in this case I want a pre-checkout
hook to handle the task of backing up database in above scenario.
回答1:
You could write a script that does your backup then checkout. Then create a shell alias so it runs that script instead when you type git checkout
.
回答2:
Pre-checkout use case: delete un-versioned local files generated by gulp watch:css
task so they are overwritten after checkout and rebuilt by gulp.
Instead, I'm just going to write a shell script that gets the repo root and then deletes any of a list of gulp-generated files found.
回答3:
I got the reason why it was not implemented. In my situation I do backup the database and store it in a file, which will fail the check-out every-time. So this will be impractical to implement this functionality.
来源:https://stackoverflow.com/questions/28000366/how-to-achieve-pre-checkout-hook-in-git-bitbucket