Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
git-usage [2011/03/26 08:08] genec created; copy of soc/2008/git-usage |
git-usage [2011/03/26 13:33] (current) genec [Public repo: other] github fork |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Using git for gPXE development during GSoC 2008 ===== | + | ====== Using git for gPXE development ===== |
===== Overview ===== | ===== Overview ===== | ||
- | During GSoC, you will be working with three git repositories: | + | During development, you will be working with three git repositories: |
* The master project repository | * The master project repository | ||
Line 11: | Line 11: | ||
* Your personal public repository | * Your personal public repository | ||
- | You will edit code in your local working repository. Every so often (at least once a week, preferably more) you will push changes from your local working repository to your personal public repository. This allows us to see your code. | + | You will edit code in your local working repository. As applicable, you should push changes from your local working repository to your personal public repository. This allows us to see your code. |
You will occasionally need to pull changes from the master project repository, in order to keep your local working repository up to date with the main gPXE codebase. | You will occasionally need to pull changes from the master project repository, in order to keep your local working repository up to date with the main gPXE codebase. | ||
When your code is ready to be merged into the main gPXE codebase, we will pull from your personal public repository. | When your code is ready to be merged into the main gPXE codebase, we will pull from your personal public repository. | ||
+ | |||
+ | ==== Background/Useful reading ==== | ||
+ | There are numerous sources for documentation and tutorials about git usage. | ||
+ | * [[https://git.wiki.kernel.org/index.php/GitDocumentation|Git Docs]] offers numerous links to helpful documentation | ||
+ | * http://help.github.com/ has information and tutorials for git to get you started | ||
+ | * [[http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html|gittutorial]], [[http://www.kernel.org/pub/software/scm/git/docs/gittutorial-2.html|gittutorial-2]], [[http://www.kernel.org/pub/software/scm/git/docs/everyday.html|Everyday GIT]] and the git man pages offer a good starting point and quick commands | ||
+ | * [[http://www.newartisans.com/blog_files/git.from.bottom.up.php|Git from the Bottom Up]] offers a good resource to understand how git works | ||
+ | |||
+ | ==== Git Commands ==== | ||
+ | Older versions of git also offered commands in the style of "git-command" as an aid as shells didn't have the logic to complete "git command". Newer versions don't use that style by default as some newer shells now offer this logic. | ||
===== Setting up your repositories ===== | ===== Setting up your repositories ===== | ||
+ | ==== Local repo ==== | ||
Start by downloading the source tree as per the instructions on the [[:download|Download]] page: | Start by downloading the source tree as per the instructions on the [[:download|Download]] page: | ||
- | git-clone git://git.etherboot.org/scm/gpxe.git | + | git clone git://git.etherboot.org/scm/gpxe.git |
This will create your local working repository. | This will create your local working repository. | ||
+ | ==== Public repo: etherboot.org ==== | ||
Add a link to your personal public repository: | Add a link to your personal public repository: | ||
cd gpxe | cd gpxe | ||
- | git-remote add personal git+ssh://USERNAME@git.etherboot.org//pub/scm/people/USERNAME/gpxe.git | + | git remote add personal git+ssh://USERNAME@git.etherboot.org//pub/scm/people/USERNAME/gpxe.git |
where //USERNAME// is your username on rom.etherboot.org. | where //USERNAME// is your username on rom.etherboot.org. | ||
Line 33: | Line 45: | ||
Make sure that your personal public repository is up to date: | Make sure that your personal public repository is up to date: | ||
- | git-push personal | + | git push personal |
+ | |||
+ | ==== Public repo: other ==== | ||
+ | Several other sites offer a place to store a free public git repository. Two such sites are [[http://github.com|GitHub]] and [[http://repo.or.cz|repo.or.cz]]. | ||
+ | |||
+ | * http://help.github.com/fork-a-repo/ has an example of forking a repo to your own. | ||
===== Example workflow ===== | ===== Example workflow ===== | ||
Line 41: | Line 59: | ||
cd gpxe/src | cd gpxe/src | ||
- | git-checkout -b mywork origin/master | + | git checkout -b mywork origin/master |
- | git-push personal mywork | + | git push personal mywork |
Edit and commit some files: | Edit and commit some files: | ||
emacs drivers/net/mydriver.c | emacs drivers/net/mydriver.c | ||
- | git-commit drivers/net/mydriver.c | + | git commit drivers/net/mydriver.c |
Publish your changes: | Publish your changes: | ||
- | git-push personal | + | git push personal |