Need proper GitHub tutorial

#1

I don’t have any knowledge about git. All my experience with GitHub is limited to drag and drop files in the repository from the browser and getting frustrated why it doesn’t support dragging and uploading FOLDERS.
Sorry but simple text in manual saying - use repository “Upload files” option, doesn’t cut it.
I tried to find tutorials on youtube but instead, nothing worked because tutorials show how to upload one file and for some reason on pull step it throws an error for me. I tried Github Desktop and got really angry when I want a simple thing - but after choosing existing repository it shows different repository and all files from hard drive folder above what I selected.
Please, how in the hell:
I can upload to GitHub my LUA module I can use for asset portal;
I can upload project in its own repository;
I can upload a collection of projects like @britzl public-examples;
I can update all of them.
STEP BY STEP for everyone that doesn’t get the working with GitHub.

1 Like

#2

Git is a very popular tool for working with version control. It is the underlying system used by GitHub. I think it is outside of the scope of a game engine to teach how to use version control. There are many other excellent sources for this. Have you read the help pages on GitHub for instance?

4 Likes

#3

The best tutor about git, that I see. https://learngitbranching.js.org/ When you understand git it will be very easy to work with it and with github

2 Likes

#4

I have some time left, so I will make a somewhat extensive tutorial in another post.

2 Likes

#5

Extensive tutorial

First things first.

To use GitHub, you would need an account. Go over to https://github.com/ and create an account.

When you’ve created an account, you can now do two things. You can either create a repository via the website or via a Git client.

If you want to create a repository via the website you need to go to GitHub. Once you’ve done that, there should be a small plus icon. Click on that and a menu will appear.
You want to create a new repository so you now need to click on “New Repository”.

image

When you’ve clicked on “New Repository” you now will get redirected to this page:

First you check if the owner location is correct. In this case I want to create a new repository on my own profile so I’ll stick with that. You then need to think of a repository name. I’m not a big fan using CamelCase in names so I would use something like my-new-repository. The description is optional. I often leave this blank and add one when I feel like it. The next thing would be choosing if you want to make it public or private. Know that if you make it public, the whole world can see it! When you’re done, the “Create repository” button will light up and will be clickable.

A repository has been created. You will be redirected to that repository and see this page.

You now can either upload your files by drag-and-drop or by using a Git client. In this case we’re going to use GitHub Desktop which you can download here https://desktop.github.com/

Once you’ve installed GitHub Desktop, you can now log in. If you’re logged in, you need to go to File > Clone Repository.
image

Click on “Clone Repository”. You’ll get a new popup screen.

Click on the repository, select the path you want your repository to be stored and click on “Clone”.

GitHub Desktop will now open the repository as shown below.

If you want to use GitHub Desktop on an existing Defold project, you would need to move all of your files into the repository folder. Go to your repository location and move all of your project files on that folder.

You’ll now see that the client recognizes new files.

You need to add a “Summary”. This can be a short descriptive message. In this case I will just type “Added a blank Defold project”. You’ll see that the button "Commit to master lights up. Click on it.

The client now has one commit that can be pushed to your online repository.

Click on “Publish branch”. This will create a branch in your new repository.

Head over to your GitHub account and click on your repository. As you see, every file has been uploaded.

You can also create the repository locally and publish it later on.
Click on “New Repository”.

image

This will open a new dialog. Type in the same name as your existing project folder. In my case this is my-rest-repo. This will add the .git files into your existing project folder.

Once you’ve done that, you’ll see that a new commit has been created. When you click on the “History” tab, you’ll see all of the files that are added to that commit.

Click on “Publish repository”.

This will open a new dialog. Again, click on “Publish repository”.

After that, you’re done. You can now go to your GitHub profile and click on your newly created repository.

14 Likes

#6

Now I got it. Thanks, @amel!
Still, I think it’s a kinda redundant work, just to get files in the GitHub repository. I’m wondering why so smart people haven’t made this process properly.

1 Like

#7

Glad I could help! :slight_smile:

Well, you just need to get the hang of it. At first I wasn’t a big fan of it either because it was kinda overwhelming. It’s now part of my workflow and I can’t live without it anymore.

1 Like

#8

Omg I know righttt
No one talks about the dependcies almost like everyone are expert dependencers

0 Likes

#9

git is complicated by it’s very nature because it is a decentralized/distributed version control system and not just a file storage system.
But it is well worth learning due to the benefits it brings.
I really like the comfort of knowing it is very hard, almost impossible, to accidentally delete something as long as you make frequent commits. And it is easy to have several concurrent experiments going and easy to go back and see historical changes.
Also worth mentioning that you don’t have to use git to use Defold, if you really don’t want to use git or github.

3 Likes

#10

I want to use GitHub to give access to other people and it’s needed if I want to put my creation in asset portal.
Thanks to @amel I was able to host my True Tile Collision.

2 Likes