Git and native libraries

Now I’m learning how to use Git with Thrive to make pull requests.

I forked and cloned Thrive some time ago. Since that there have been some changes in the original repo.
To make my local repo up to date I add a new remote:

git remote add upstream https://github.com/Revolutionary-Games/Thrive

Then I did this:

git fetch upstream
git merge upstream/master
git submodule update --init --recursive

To check all is up to date I used:

git diff --stat master upstream/master

After all that I pushed to my fork git push origin master

I hadn’t added native libraries before so I executed the command:

dotnet run --project Scripts -- native Fetch

Now the commad git status shows a lot of unstaged changes. What should I do? Of course, I can add and commit. But because I’ve never worked with remotes I don’t understand how this new commit will affect my future pulls and pushes to get changes from upstream to the local and then push them to my fork. If I correctly understand in the upstream there are no native libraries so after dotnet run --project Scripts -- native Fetch there will be the difference between my local and upstream. And as I can imagine I will also have to run this command sometimes to update the labs in the project.

What are the changes? I’m assuming these aren’t changes that you’d want to commit. They are likely files that Godot has automatically messed up. Though there is a small chance that there’s a mistake with the gitignore, but that should be setup correctly so that anything downloaded with the native libraries script is ignored by git and doesn’t show up as uncommitted change.

Yes. Depending on the files this might be fine if you aren’t planning to make a PR from your branch, but still you’d risk having to fix a bunch of merge conflicts whenever you pull from the official repo.

Changes like these:

$ git status
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   assets/concept_art/abyss.jpg.import
        modified:   assets/concept_art/been-grinding-for-da-view.jpg.import
        modified:   assets/concept_art/cell-gang-clean.jpg.import
        modified:   assets/concept_art/cell.jpeg.import
        modified:   assets/concept_art/cells2.jpg.import
        modified:   assets/concept_art/disturbance.jpg.import
        modified:   assets/concept_art/early-evolution-aquatic.jpg.import
        modified:   assets/concept_art/even-more-cells.jpg.import
        modified:   assets/concept_art/flagellum-concepts.jpg.import
        modified:   assets/concept_art/floor.jpg.import
        modified:   assets/concept_art/floordanceparty.jpg.import
        modified:   assets/concept_art/gameplay2.jpg.import
        modified:   assets/concept_art/lizard.jpg.import
        modified:   assets/concept_art/membrane.jpg.import
        modified:   assets/concept_art/multicellular-scene.jpg.import
        modified:   assets/concept_art/ocean.jpg.import
        modified:   assets/concept_art/planet_generation.jpg.import
        modified:   assets/concept_art/romp.jpg.import
        modified:   assets/concept_art/shining-planet.jpg.import
        modified:   assets/concept_art/tree-creature.jpg.import
        modified:   assets/concept_art/tribe-gang.jpg.import
        modified:   assets/fonts/DejaVuSans.ttf.import
        modified:   assets/fonts/DejaVuSerif.ttf.import
        modified:   assets/fonts/Jura-Variable.ttf.import
        modified:   assets/fonts/Lato-Black.ttf.import
        modified:   assets/fonts/Lato-BlackItalic.ttf.import
        modified:   assets/fonts/Lato-Bold.ttf.import
        modified:   assets/fonts/Lato-BoldItalic.ttf.import
        modified:   assets/fonts/Lato-Italic.ttf.import
        modified:   assets/fonts/Lato-Light.ttf.import
        modified:   assets/fonts/Lato-LightItalic.ttf.import
        modified:   assets/fonts/Lato-Regular.ttf.import
        modified:   assets/fonts/Lato-Thin.ttf.import
        modified:   assets/fonts/Lato-ThinItalic.ttf.import
        modified:   assets/fonts/NotoEmoji-Regular.ttf.import
        modified:   assets/fonts/NotoSans-Italic-Variable.ttf.import
        modified:   assets/fonts/NotoSans-Variable.ttf.import
        modified:   assets/fonts/NotoSansArabic-Black.ttf.import
        modified:   assets/fonts/NotoSansArabic-Bold.ttf.import
        modified:   assets/fonts/NotoSansArabic-Light.ttf.import
        modified:   assets/fonts/NotoSansArabic-Regular.ttf.import
        modified:   assets/fonts/NotoSansArabic-SemiBold.ttf.import
        modified:   assets/fonts/NotoSansBengali-Black.ttf.import
        modified:   assets/fonts/NotoSansBengali-Bold.ttf.import
        modified:   assets/fonts/NotoSansBengali-Light.ttf.import
        modified:   assets/fonts/NotoSansBengali-Regular.ttf.import

Before running dotnet run --project Scripts -- native Fetch the command git status didn’t show them.

What should I do if I decide to do a PR? Without native libraries I can just create a new branch locally, make some changes, rebase, push and make a pull request.

Those are totally unrelated to the native libraries. Those are asset settings files. Most likely Godot automatically broke them. We have a wiki page on how to fix it:

Those changes that happened are unrelated to the native libraries. When preparing a PR you should use git interactive committing or a GUI to carefully review each change before picking it to be committed.

Also you can edit your previous post to avoid double posting, which is against the forum rules.

1 Like

Thank you for answer. Sorry for double posting.

1 Like