Development/Tutorials/Git/GitQuickStart

    From KDE TechBase

    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 "[email protected]:"]
         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 "[email protected]"
      $ 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