git init 2021
First of a series of receipes. Putting your project under source control with GitHub.
by Eric M. Baumel
Putting your project under source control with GitHub
This is the first of a series of mini-posts of various computer housekeeping tips, initially for my own use. Hopefully these may also be some some benefit for others.
Source control with git serves several functions:
- It provides a method of keeping track of changes made to your code, so you can roll back to a previous save if needed.
- If used with a remote hosting service such as GitHub, gives a convenient back up of your code in the cloud.
- Allows easy collaboration with other developers.
- Can be used by many providers for managing deployment.
Let’s Get Started
-
Install git on your system, if not alread done: Git Install
-
Make directory to hold project
For iOS development: Create Xcode Project - start with appropriate project type
-
Navigate to your project folder using the command line.
-
In Terminal, put project under source control.
git init
-
Create a
.gitignore
file.
A .gitignore file lists the files and directories you do not want under source control, such as hidden files (.DS_Store on MacOS) , environment files (.env), secure credentials, venv and test directories, etc.
-
Once you have files ready to be placed under source control, view the files that have been created or changed.
git status
-
Track these files so they can be commited.
git add .
-
Commit the waiting files.
git commit -m “Project setup”
Only push commits that will build and run.
-
Now that you have a local git repo on your system, get ready to save it on GitHub:
-
Create new repository on GitHub. GitHub: Create a repo
-
Push your local repo to the remote main branch.
git remote add origin <URL> git push origin main
-
Continue your work in a
dev
branch. This becomes your HEAD branch.git checkout -b <new-branch>
Other Useful Git Commands
-
git log
Shows all commits. -
git branch -av
Lists all local branches. -
git remote -v
List all remote branches. -
git checkout <branch>
Switches your HEAD branch.