Difference between revisions of "Development/Tutorials/Git/GitQuickStart"

Jump to: navigation, search
(No difference)

Revision as of 19:39, 24 March 2012

Getting the sources from git

  • head over to https://projects.kde.org/projects . There you'll see a long list with all the projects hosted on KDE git.
  • find the project you are interested in, and click the link, e.g. to Attica
  • on the Attica project page, go to the repository page. There you will find the clone command.
  • Execute this clone command and you'll get a copy of the sources:
   $ git clone git://anongit.kde.org/attica

Pushing your changes

If you followed the steps above, you now have a clone of the git repository.

In order to be able to commit your changes, you need

  • tell git to push to git.kde.org, instead of anongit.kde.org
  • to setup a ssh key for authentication
  • tell ssh to use that key for git.kde.org

In the following we go through this step by step

Telling git to push to git.kde.org

Above, we got the sources from anongit.kde.org. These are mirrors of git.kde.org and should for performance reasons be used for obtaining the sources. But for committing git.kde.org has to be used.

This is done by putting the following into ~/.gitconfig:

 [url "git@git.kde.org:"]
     pushInsteadOf = git://anongit.kde.org/

Setting up ssh keys for authentication

  • create a set of keys to use using ssh-keygen, and name the key e.g. id_rsa.kde.
  • log in to https://identity.kde.org/
  • go to "Profile" -> "Edit" -> "Edit public ssh keys"
  • upload the public key you just created

Tell ssh to use this key

  • put the following in your ~/.ssh/config :
 Host git.kde.org
   User git
   IdentityFile ~/.ssh/id_rsa.kde

Commit changes

  • set your git identity
  $ git config --global user.email "you@example.com"
  $ git config --global user.name "Your Name"
  • add the changed file(s):
  $ git add <filename(s)>
  • run git commit:
  $ git commit -m "commit message"
  • now you should be able to push your changes to the central git repository:
  $ git push

Content is available under Creative Commons License SA 4.0 unless otherwise noted.