= Android and Github = How to use github for android developmen == Local manifest == In .repo create a file called local_manifest.xml to replace the original parts with your github forks. It should look like: {{{ }}} == Local branch and push == Create your local branch to work on: {{{ git remote add origin git@github.com:guhl/android_frameworks_base.git git remote show origin }}} If the remote branches are not shown as tracked do: {{{ git fetch git remote show origin }}} Checkout a branch {{{ git checkout -b jb origin/jellybean }}} Now you can work on your local branch jb and push to the remote origin/jellybean == Update from original repo == Create a remote for the upstream: {{{ git remote add upstream git://github.com/Andromadus/android_frameworks_base.git }}} Fetch the remote {{{ git fetch upstream }}} Merge the changes {{{ git merge upstream/jellybean }}} === Update the fork from the local merge === Syntax is: {{{ git push {remote} {localbranch}:{remotebranch} }}} which is in my case {{{ git push origin jb:jellybean }}} == Patches == === create patch from uncommitted stuff === Write down die Hash of the last commit do a temporary commit. create the patch for the temporary commit: {{{ git format-patch -1 }}} reset the temporary commit: {{{ git reset --mixed }}} === Check and apply patch === Check the patch: {{{ git apply --check }}} Apply the pathc with am (that allows to sign off the patch) {{{ git am --signoff }}} === apply a patch an make it uncommitted === On the receiving side apply the patch as described above and the reset to the last commit before the patch using the "git reset --mixed " again == Squashing several commits into one == After cherry-picking serveral commits into one new clean base one can consolidate the commits into one using the following commands: In the following example i have been working on the cm-10.2 branch and now want to consolidate all my last commits into one. The result should be in the cm-10.2 branch again. Move the current branch {{{ git branch -m cm-10.2 cm-10.2_pff }}} Checkout the original branch again and merge the working branch. {{{ git checkout -b cm-10.2 origin/cm-10.2 git merge cm-10.2_pff }}} Reset the cm-10.2 branch to the original state. {{{ git reset origin/cm-10.2 }}} Now all the changes are unstaged and one can add and commit them again in one consolidated commit. {{{ git add -A git commit }}}