When I make a change to my cm7, I just go into the file I want and change it. This brakes the repo sync. So, What I did is created two folders. One for me, one for repo. I see a lot of terms like checkout, commit, and the such. I am getting a growing understanding of how this is used. What I would like, if it's not asking too much, is for people with the familiarity using github to coach me (and anybody else who reads this thread and asks questions) how to properly run this stuff so I won't have to do my dirty methods. Thank you. EDIT: Things that I have learned. git pull This is used to get a branch from a remote repository. It's used by repo (as in repo sync) to keep your system up to date. Code (Text): git pull (remote name) (branch name) [*]git push Basicly pull in reverse. [*]git remote Your link to the remote branch. I like using the "-v" argument as it shows the remotes. I use this to link me up with SSH[CODE]git remote set-url github firstname.lastname@example.org:MTDEV-CM7/frameworks.git as an exapmle. This isn't nessacery anymore as the "https" method works and is the prefered way. git checkout This is used to switch between branches. I use the "-t" agument to track the remote branch and the "-b" argument to create a new branch while switching to it git branch This is use to work with branches. I use the "-d" or "-D" to remove branches. and I use "-a" to view all, local and remote, branches. git commit When you are done with your current work and are ready to push it to the remote. I use the double arguments "-am" ("a"is to add known files that have been changed and remove files that have been removed. And the "m" is to make the message)to quickly commit from the command line . git stash For when you aren't ready to commit, like say you have run a test and don't know where you went wrong, and you want to put the work to the side.