This little howto is about the Git repository used by Titanium Linux. You will find here examples of the most common git commands. Ready? Let's start (you must have RW access to TLD git repositories). Table Of Content: 1. How do I commit a new .spec file or package to the repository? a) Clone an empty repository (note: it will be automatically created on server side.) b) Set your local Email address c) Put your files into the repository and add them locally d) Push your changes to the server 2. Crap, I've checked out a repository, forgot to change the local e-mail address and commited my changes. Now I can't push them to the server. What can I do? 3. My new repository didn't show up on the web. 4. I've deleted some files in my cloned repo. I'm doing git pull, but they do not reappear. 5. How can I add a description to a new repository? ============================================================================== 1. How do I commit a new .spec file or package to the repository? a) Clone an empty repository (note: it will be automatically created on server side.) git clone git@git.tld-linux.org:packages/your_new_package b) Set your local Email address cd your_new_package git config --local user.email your_git_login@tld-linux.org This step allows you to later push your changes to the server. If you skip this step, your push will fail due to a server side hook. c) Put your files into the repository and add them locally git add file1 file2 files* git commit d) Push your changes to the server If you push your changes for the first time of the repositorys "life", you'll need to add the origin to it. git push origin master After that you'll be fine by doing just: git push NOTE: It is possible to shorten these commands ex. git add and git commit can be put together into: git commit -a. You can commit several times into your local repository before pushing all changes to server. You don't need to push each time you commit, but feel free to do so if you want :-) ============================================================================== 2. Crap, I've checked out a repository, forgot to change the local e-mail address and commited my changes. Now I can't push them to the server. What can I do? This is very unfortunate. AFAIK you've got only 2 options. a) Delete your commit. This means all of your changes will be lost, but you can store them elsewhere for the time being, right? To do this (after you backed up your changes) type: git reset --hard HEAD~1 the HEAD~1 option tells git to go 1 commit back in the history. Now set your local e-mail address, put back your changes and commit again. Push should now work as expected. b) The second way is to remove locally your repository and re-clone it. Then put back your changes to it, commit and push. ============================================================================== 3. My new repository didn't show up on the web. Repository "packages" are checked every 15 minutes for new subrepositories by a cron job. If found, they're added to the web. If for some reason cron job fails, ask one of the git admins to run and/or fix this script: ~git/scripts/packages_enable_gitweb.sh Top level repositores have to be added manually to gitweb. Ask one of the git admins to do the following: ssh your_login@kraz.tld-linux.org sudo su - git cd ~/repositories/repo_name.git touch gitweb-export-ok ============================================================================== 4. I've deleted some files in my cloned repo. I'm doing git pull, but they do not reappear. Please do the following in your cloned repo to restore deleted files: git checkout some.file To restore all your deleted files do: git ls-files -d | xargs git checkout -- ============================================================================== 5. How can I add a description to a new repository? Do the following: ssh git@git.tld-linux.org setdesc packages/some_package "Some description"