Git-scm , Github

Does anyone know of a video (pref youtube) on how to set up git-scm and github to upload code and merge it. I tried to use their book online but its either outdated or I’m doing it wrong -_- has a lot of guide on how to set up Git and use github. Particularly the “Bootcamp”, “Setup”, and “Using Git” sections. and also have some good tutorials. Check 'em out.

What do you mean by ‘upload code and merge it’ ? Git handles merging locally and then uses a concept of ‘push’ to send the results to the github servers. If you’re on Windows, I would suggest that SmartGit is a good tool which integrates nicely with github. It is sometimes confusing, but for the most part is a great tool which is continuing to be improved. It is also free to use for educational use.

GitHub also has their own app for Windows which has a very intuitive interface. However, I have found it buggy in practice. YMMV.

The GUI alternative I prefer in Windows is TortoiseGit. Netbeans has built-in GUI git support for Java teams. There are Eclipse plugins for Git but I am not sure if they work in Windriver.

I’m just curious because my team wants to use a version share server. With github all they would have to do is pull down the code and upload when they are done right? If that is true then who/what manages the merges or the back ups?

Git is a distributed version control system. A common workflow is to have one repository that acts as the common “server” which you keep on github. However, anyone that participates clones the repository and has a full copy of the repository on their machine. They make changes and commit them to their own repository. Before joining the “server” code one fetches the latest updates from the server to solve any conflicting merge issues, then “pushes” their changes to the server. Depending on your setup different users can have push rights, or may be required to make a pull request for an administrator to pull the changes into the server repository.

Github is a distributed version control system, which means that each user has their own local copy of the code where they make their changes. Contrast that with Subversion which uploads commits to a central server as they are made.

So, you would “pull” the changes into your local copy, merge the branches on your local copy, and then “push” those changes to the remote repository. After ensuring that everything compiles and works properly, of course.

To answer the original question:

**Part 0, How to set up Git **

Part 1, Basic functions of Git

Part 2, Advanced functions of Git

Part 3, Git workflow

Part 3.5, Multiple-user projects

Part 4, Resolving merge conflicts

Part 5, Merge conflicts continued

Part 6, Branching