Beginner’s guide to GitHub: Adding code to your repository
Take the next step in our GitHub for Beginners series and add code to your repository. Learn how to create branches and upload changes into a pull request.
Today, we are going to talk about the GitHub flow, and how to use it to add code to our repository.. The GitHub flow is a way of using GitHub to share resources with others and work collaboratively. It’s not just for code. You can also use this process to collaborate on anything you store in a repository on GitHub.
Cloning a repository
Adding code to your repository starts with cloning that repository. Cloning a repository creates a local copy that you can use to do your work. By keeping this local copy synchronized with the remote repository stored in GitHub, you’re able to get the latest changes and push your updates so others can receive them.
First, navigate to your repository on GitHub that you want to clone—I’ll be cloning this repository. Click on the green button that says “<> Code”. You will see a window that includes a URL for your repository with a “Copy” button next to it under the “Local” tab. Click the “Copy” button.
Now, open your terminal and type git clone with an extra space at the end. Then, paste the URL for your repository and press Enter.
Once the command finishes, enter the directory by typing cd project and then hitting Enter. Make sure to replace project with the name of your repository. Once in the directory, you’ll be on the main branch. You can verify your branch by typing git status and pressing Enter.
Creating a new branch
The first thing that you want to do whenever adding code to your repository is create a new branch. This is an essential part of the GitHub flow because it protects your main branch.
When you create a new branch, you will need to give it a name. Since you are creating the initial version of the project, you can call the branch version1. When you name branches, it is helpful to use names that are descriptive of the work you are doing in that branch. In your terminal, type git checkout -b version1 and then press Enter.
This creates a new branch called version1.
Committing changes with GitHub Desktop
In addition to using the terminal, you can use GitHub Desktop to create new branches and add code. Download and open up GitHub Desktop. Just like before, the first thing you need to do is clone the repository. Click the option that says, “Clone a Repository from the Internet…” Paste in the URL for your repository in the box provided. If you don’t want to enter the full URL, you can instead enter the GitHub user and repository names separated by a forward slash: <username>/<repo>. Then, click the “Clone” button.
Once connected to the repository, you need to create a new branch. Click the section of the ribbon at the top of the window that says “Current Branch.” This opens a pull-down window displaying the branches. Click the button that says “New Branch,” name your new branch CSS, and click the blue button that says, “Create Branch.”
Now that the branch is created, you can save code to the project directory or move it using your file manager. Save or copy a style.css file into the project folder; you can find the one I’m using here. As soon as you add code to your project, GitHub Desktop will be aware of the change. You will see the file listed as a changed file and have the option to commit this change to the CSS branch.
Enter a summary of the changes you have made and a brief description in the boxes immediately above the blue “Commit to CSS” button. Then, click the button. Now that you’ve made the changes to that branch, you’re done! Now, you can push your code to the remote repository and get the pull request going.
Committing changes with terminal
Moving back to the terminal, verify that you are in the appropriate project directory and run touch index.html script.js to create empty files with those names in your local repository. Using your code editor of choice, open up these files and either write or copy the code you want to upload to GitHub. Once you are done, return to your terminal.
Run git status in your terminal to see the list of files that you’ve worked on. At this point, you should see the two files you created: index.html and script.js. Add these files to your staging area by running git add . to add them both at the same time. This command adds all of the untracked files in your project directory. Once they are added, commit these files to the staging area by running git commit -m "created initial project" in your terminal.
Now, it is time to push your code to your repository. Before doing so, run a quick git status command to make sure you don’t have any untracked changes. Then, run git push origin version1 to send your code up to GitHub.
Opening a pull request
Now that your code has been pushed, use your browser to visit your repository on GitHub. You’ll see a small dialog at the top of your repository indicating that CSS and version1 had recent changes. In order to merge those changes into your main branch, you’re going to want to open a pull request. Click the green button in the dialog box that says “Compare & pull request” for the CSS branch.
Add a title that summarizes the changes and a brief description indicating what changes you made. Then, scroll down and click the green button under the description that says, “Create pull request.” Congratulations! You’ve just opened your first pull request! 🎉
After opening your pull request, GitHub will perform some checks to make sure you can manually merge the pull request. If the check takes more than a few seconds, you might need to reload the page. Once the checks are complete, you will see a green button that says, “Merge pull request.” This will open a dialog box that gives you the chance to provide a title and description of the changes. These fields will be automatically populated with the information you added when you created the pull request. Click the green button under the description that says, “Confirm merge.” This pulls your changes back into the main branch.
Now, click the tab at the top of the window that says “<> Code”. You’ll see that you still have a notification for the changes on version1. Go ahead and click the “Compare & pull request” button, and once again create a pull request. However, don’t merge it quite yet!
Merging to main branch
You may have realized that your main branch now has changes which don’t exist in your local version1 branch. This is because your version1 branch was created using a copy of main before the CSS changes were uploaded. When you opened the pull request, you might have even received a warning indicating that your branch was behind main.
In order for you to safely upload your changes from version1 into main, you’re going to pull those latest changes from main into your local version1 branch. To do this, return to your terminal.
Type git switch main and then press enter. Then, run git pull to pull in the CSS code changes added to the remote repository. Then, run git switch version1 to return to your version1 branch. After changing branches, run git merge main to merge the changes from the main branch into your current branch. After running this command, a text editor will appear with a merge message. Type :wq to save the message and quit the editor. Now you need to push those changes, which you do by running the git push origin version1 command.
Return to your browser and navigate to the pull request you created. If you need to find it again, navigate to your repository and click the “Pull requests” tab at the top of the window, then select the pull request. Once you are on the pull request, select the green button that says, “Merge pull request.”
Deleting a branch
Now that your changes have been uploaded to the main branch, you can delete your old branch. First, switch over to your main branch by running git switch main in your terminal. Then, type git branch -d version1 and press enter. This deletes your version1 branch.
Your next steps
Now that you have learned how to add code to your repositories, you can create projects and collaborate with other developers!
If you have any questions, pop them in the GitHub Community thread and we’ll be sure to respond.
Here are some more resources to help you on your GitHub journey:
Kedasha is a Developer Advocate at GitHub where she enjoys sharing the lessons she's learned with the wider developer community. She finds joy in helping others learn about the tech industry and loves sharing her experience as a software developer. Find her online @itsthatladydev.
Want to know how to take your terminal skills to the next level? Whether you’re starting out, or looking for more advanced commands, GitHub Copilot can help us explain and suggest the commands we are looking for.
As part of the GitHub for Beginners guide, learn how to improve the security of your profile and create a profile README. This will let you give your GitHub account a little more personality.