Depending on whether you simply want to test and follow Amarok development, write the occasional patch, or are an Amarok developer, the steps to use the repo are different.
git clone git://gitorious.org/amarok/amarok.git
This creates an 'amarok' directory. cd into that and use it like normal. And when you want to update:
will download the new changes.
You can use the method above, make your changes, then do 'git diff' to create a patch like normal. Or you could use the following rules to create your own fork of Amarok with the additions you would like to request to merge. This makes it easier for Amarok Developers to track your changes and is better for more complicated patches.
git clone firstname.lastname@example.org:~yourname/amarok/yourname-clone.git
git branch my_feature_branch
git checkout my_feature_branch
...work on this checkout - follow the normal development workflow...
git commit -a
git push origin my_feature_branch
git remote add upstream email@example.com:amarok/amarok.git
git pull upstream master
People with KDE-SVN accounts als should do the following:
Gitorious has one address for cloning, and another for pushing. The pushing address can be used for cloning, so the easy thing to do is just use that.
git clone firstname.lastname@example.org:amarok/amarok.git
This will create a directory 'amarok'. cd into that and start developing!
90% of the time this is all that is needed:
git pull --rebase #hack, compile, build. It works! git status #to check if you want to commit all the modified files git commit -a git log git push
git pull --rebase downloads the latest changes. The --rebase option takes any unpushed local commits and applies them to the latest code, moving it to the top of the history. It is the equivalent of git pull; git rebase origin/master. See the "1. Rebase" section of Shipping Quality Code for a good explanation of what rebase does.
git status will tell you what files are modified. If you created a new file, use git add on it to "track" it. If there are some junk files, you can add a regexp to .gitignore in the root.
git commit -a will commit all unmodified files. You can use git add and then simply git commit instead if you wish to commit only certain files.
Hint: You can use git commit --amend to amend the last commit instead of creating a new one. But take care that you don't change a commit already pushed, else you'll have some trouble...
Use git log to review the local unpushed commits. Possibly also useful is git diff origin/master, which will give you a diff between the current checkout and what is in the central repo.
git push pushes all the local commits to the central repo.
The Git Parable: Background information that will help you understand git and distributed revision control systems in general
Git to SVN crash course 5 minute introduction to git for experienced SVN users
Shipping Quality Code with Git Guide to cleanup before a push
Git for Computer Scientists Quick introduction to git internals for people who are not scared by words like Directed Acyclic Graph.
Linus Torvalds on Git Why git? answered by the man that started it.
Git Ready! Learn git one commit at a time