Difference between revisions of "Development using git with write access"

From Alpine Linux
Jump to: navigation, search
(minor cleanup)
(configure 'git push' for distributed workflows)
Line 12: Line 12:
 
{{Cmd|git clone ssh://username@git.alpinelinux.org/gitroot/acf-core
 
{{Cmd|git clone ssh://username@git.alpinelinux.org/gitroot/acf-core
 
git clone ssh://username@git.alpinelinux.org/gitroot/pingu}}
 
git clone ssh://username@git.alpinelinux.org/gitroot/pingu}}
 +
 +
== Git Push (Distributed Workflows) ==
 +
If working with [http://book.git-scm.com/3_distributed_workflows.html Distributed Workflows] you would 'pull' from public repo, 'push' to another publically accessable repo ''(where you have write access)'', main developer ''(who has write access to public repo)'' 'pulls' you changes from your pub.accessed.repo into the public repo.
 +
 +
To make it easier for you to work, you can configure 'git push' to push your work to your publically accessable repo ''('git pull' would still pull from same repo as you cloned from)''.
 +
{{cmd|cd /your/private/repo/where/you/work/reponame
 +
git config remote.origin.pushurl "ssh://user@dev.alpinelinux/home/user/cgit/reponame.git"}}
 +
Now 'git pull' pulls the public repo, and 'git push' pushes to '''your''' public repo.
 +
{{Note|The path where you want to push to should first be prepared with 'git clone --bare ...' as described below in section 'Upload the new project'}}
  
 
== Git Tag ==
 
== Git Tag ==

Revision as of 04:45, 1 March 2011

This document is for developer who has ssh login and write access to the git repositories.

Personal settings

Unless you already done so, start by setting up name and email address for the git commits.

git config --global user.name "Your Full Name" git config --global user.email "your@email.example.com"

Git Clone

Some examples:

git clone ssh://username@git.alpinelinux.org/gitroot/acf-core git clone ssh://username@git.alpinelinux.org/gitroot/pingu

Git Push (Distributed Workflows)

If working with Distributed Workflows you would 'pull' from public repo, 'push' to another publically accessable repo (where you have write access), main developer (who has write access to public repo) 'pulls' you changes from your pub.accessed.repo into the public repo.

To make it easier for you to work, you can configure 'git push' to push your work to your publically accessable repo ('git pull' would still pull from same repo as you cloned from).

cd /your/private/repo/where/you/work/reponame git config remote.origin.pushurl "ssh://user@dev.alpinelinux/home/user/cgit/reponame.git"

Now 'git pull' pulls the public repo, and 'git push' pushes to your public repo.

Note: The path where you want to push to should first be prepared with 'git clone --bare ...' as described below in section 'Upload the new project'

Git Tag

Create an annotated tag and push it.

git tag -a tagname -m'commit message (e.g release 1.x)' git push && git push --tags

Create new project

Create your own dir that you want to become your new acf-mystuff project.

mkdir

Create your files and add/commit them to your git-project {{git add ./ git commit}}

Note: You can add/modify/commit as much as you want before uploading it to git.alpinelinux.org

Upload the new project

cd .. git clone --bare acf-mystuff acf-mystuff.git scp -r acf-mystuff.git user@dev.alpinelinux.org:

Notify a user with access on git.alpinelinux.org to move it to /gitroot (or create a symlink) and update the /etc/cgitrc config to make it visible on cgit.