Starting a git repository?

First setup the remote repository:

cd /home/git/repos               # you shouldn't use the base user directory for good reasons -- See SshGen page
mkdir my_project.git
cd my_project.git
git init --bare
git update-server-info # If planning to serve via HTTP

On your local machine:

cd [your project directory]
git init
git add * # or "." if you want to add all the files in the hierarchy
git commit -m "My initial commit message"
git remote add origin
git push -u origin master

Others can now clone track the remote repository:

git clone
cd my_project

Adapted from:

Standard workflow for private project (you only)


git status # View the state of the repo
git add <some-file> # stage a file
git commit -m "message" # commits changes 

You can also add and commit in one statement

git commit -a -m "message"


git push origin master

GitHub Workflow

You found a project you want to contribute to.

  1. Fork the project (on git hub - now you should have a copy in your repository that is separate from the original)
  2. Clone it to your local file system. (i.e. git clone [url])
  3. Create a branch (i.e. git checkout -b [branchname])
  4. Edit files as needed
  5. Add/commit changes (i.e. Commit -a -m "Message")
  6. push to your forked git repository on github: git push origin [branchname]
  7. Check github for a link to a pull request. (Pull request link should be on code page see end of video).

See the video here

Dealing with Errors

If you are working with multiple people You may get an error when you commit or when you are merging your branch. In the first case it might look like this:

Updates were rejected because the tip of your current branch is behind its remote counterpart. Merge the remote changes (e.g. 'git pull') before pushing again.

So you may need to pull by doing the following:

git fetch origin master 
git merge origin master
git pull origin master

If you have changes, go edit the file to remove the conflicts (Visual Studio Code works great for this, better than Visual Studio 2017).

You may then get a CONFLICT (content): Merge conflict in <some-file> which you will need to resolve by type git status. Looking at the git status is a good idea for before you do anything.

ProjectManagementTools/StartingGitRepository (last edited 2020-05-15 13:57:01 by scot)