If you are new to Git, you might find some of the following resources useful:
First you need to add the official repo to your remote repo list:
git remote add upstream git@github.com:koreader/koreader.git
For koreader-base that is:
git remote add upstream git@github.com:koreader/koreader-base.git
You can verify the remote repo is successfully added by using:
git remote -v show
Now you can pull the latest development code:
git pull upstream master
If you've made some local changes, you'll often want to rebase your local commits on top of the most recent upstream:
git pull -r upstream master
You might want to test that in a new branch first.
First you need to add their own repo to your remote repo list:
git remote add NAME REPO_ADDR
Where NAME
is the alias name you want to give for the remote repo, for example:
git remote add dpavlin git://github.com/dpavlin/kindlepdfviewer.git
You can verify the remote repo was successfully added by using:
git remote -v show
Now you can merge their branch to your local branch. But before you do this, I recommend you create a new branch first and do experimental stuff on top of the new branch so you won't mess with the master branch:
git checkout -b NEW_TEST_BRANCH_NAME
git pull dpavlin REMOTE_BRANCH_NAME
The following example is not directly related to Git, but exclusive to GitHub, although Bitbucket, GitLab etc. tend to provide similar mechanisms.
First, you have to figure out the PR number. It'll be prominently listed on the PR page as well as in the URL. As an example, we'll take #6282
. Now you can fetch and checkout that code using the GitHub-specific reference:
git fetch upstream pull/6282/head
git checkout FETCH_HEAD
Once you've finished testing, you can just git checkout master
and it'll be as if nothing ever happened.
How to submit my change on top of current development (which is master branch at origin).
This assumes that your repository clone have origin
which points to upstream official repository as shown below. If you did checkout from your forked copy, and origin points to your local fork, you can always add another remote and replace origin
in this instructions with another remote name.
dpavlin$ git remote -v | grep origin
origin git@github.com:koreader/koreader.git (fetch)
origin git@github.com:koreader/koreader.git (push)
dpavlin$ git fetch origin
dpavlin$ git checkout -b issue-235-toc-position origin/master
M djvulibre
M kpvcrlib/crengine
M mupdf
Branch issue-235-toc-position set up to track remote branch master from origin.
Switched to a new branch 'issue-235-toc-position'
integrate changes from this issue (or diff, patch, git cherry-pick sha-commit)
dpavlin$ git add -p unireader.lua
interactivly select just changes which are not whitespace
dpavlin$ git commit --author NuPogodi -m 'TOC position on current place in the tree #235'
[issue-235-toc-position 25edd31] TOC position on current place in the tree #235
Author: NuPogodi <surzh@mail.ru>
1 file changed, 9 insertions(+), 5 deletions(-)
dpavlin$ git show
verify that commit looks sane, if I wasn't happy I would do git --commit --amend
dpavlin$ git push dpavlin issue-235-toc-position
Counting objects: 5, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 489 bytes, done.
Total 3 (delta 2), reused 0 (delta 0)
To git@github.com:dpavlin/koreader.git
* [new branch] issue-235-toc-position -> issue-235-toc-position
This assumes that your copy of github source is named dpavlin
as here:
dpavlin$ git remote -v | grep dpavlin
dpavlin git@github.com:dpavlin/koreader.git (fetch)
dpavlin git@github.com:dpavlin/koreader.git (push)
Go to your github page and issue pull request
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。