Starting a git repository?
First setup the remote repository:
ssh firstname.lastname@example.org 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 exit
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 email@example.com:repos/my_project.git git push -u origin master
Others can now clone track the remote repository:
git clone firstname.lastname@example.org:repos/my_project.git cd my_project
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
You found a project you want to contribute to.
- Fork the project (on git hub - now you should have a copy in your repository that is separate from the original)
- Clone it to your local file system. (i.e. git clone [url])
- Create a branch (i.e. git checkout -b [branchname])
- Edit files as needed
- Add/commit changes (i.e. Commit -a -m "Message")
- push to your forked git repository on github: git push origin [branchname]
- 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.