Is there a way to convert blueprints to text, and convert text back to blueprints?

Thanks Astrotronic, I know this BP Diff tool, but it is read-only and has no merge functionality. And I’m going to try your recommended MergeAssist.
In addition, I found that the TextAssetCommandlet in Unreal can convert asset to text, but it can not directly convert text back to the asset. Then I readed the code of it, I thought I can create a new Commandlet to convert text to the asset, the key is to use this code:

// read .utxt file
UPackage* Package = nullptr;
Package = LoadPackage(nullptr, *SourceLongPackageName, LOAD_None);

// write .uasset file
SavePackageHelper(Package, *DesFilename, RF_Standalone, GWarn, nullptr, SAVE_KeepGUID);