Welcome newcomers to installing and using pokeemerald. As of now most of pokeemerald is decomped and ready to be used for romhacking. There are tutorials and repositories, (files), to help you start and begin editing your game. As of now, if you do not understand C and only know to follow tutorials and programs, the only possible edits you can add to your repository are new sprites, (Overworld sprites, Tilesets, expanding overworld sprites etc.), adding unique overworlds, and many more features that are posted here and found on the wiki of the official pokeemerald Github. https://github.com/pret/pokeemerald/wiki
Open the Install.md file in Visual Studio Code and be sure to read the installation guides for your computer, (Linux, Windows or Mac). If your ROM isn't created go to my reply!
Open MSYS2 and navigate to your pokeemerald folder by either typing it in,(i.e. "cd /c/users/NAME/Downloads/Pokeemerald"), or, by typing "cd" and dragging your pokeemerald folder to msys2 after spacing after cd.
type the command "make" in MSYS2 and it will begin building your rom, (you can make it go faster by adding cores to the build process, (make -jN where N is the number of cores you want - Lunos).
After the build is complete, your rom will be ready!
Branches are 2 different versions of one file, for example, Egg's battle_engine_v2 and pokemon_expansion are both 2 different versions of the official pokeemerald repo.
You can also merge two repositories together, (like merging Dizzyegg's Battle_engine_v2 and Pokemon_expansion).
Navigate to where you want your repository to be, (i.e. cd /c/users/Name/Downloads)
You need to copy the link to the repo you wish to merge, (for example, if I wanted to merge Egg's 2 branches, I'd go to one, and copy the link under "Copy and Download".
type the command git clone "name" (where name is where the link goes, i.e. Git Clone https://github.com/DizzyEggg/pokeemerald.git).
After cloning, you can merge another branch from the same repo by typing command "git pull origin name", (you can only type the branches' name i.e. git pull origin pokemon_expansion).
The two will merge and be complete. (There are instances where there are merge conflicts, meaning there is a problem with the merging of the two branches. to fix this, you can open the entire folder of the original repository you cloned in visual studio code, (by dragging it in there) and looking in source control, where merged changes are. You can tell where a merge conflict is by seeing if a file is in green text or if the scrolling bar of the file has green in it. Once there you must decide whether to keep or change the changes. After fixing the merged conflicts, your files should merge and be finished, (hopefully this will not happened, but, there are times where errors occur when building and you must manually fix them. Under these circumstances, it's best to open all 3 folders of the merged and the 2 folders you merged in Visual Studio Code and look for the differences of the error in the files.
I really hope this helps everyone, if there are some things I should change plz PM me.