- From: Chris Lilley <chris@w3.org>
- Date: Sat, 13 Jan 2024 15:54:09 +0200
- To: public-png@w3.org
- Message-ID: <809a7281-1b2d-4b19-aa0f-452412c97606@w3.org>
It would be bad if we had to wait for one pull request to be all finished, everyone is agreed and it gets merged, before starting work on a different, unrelated change. But equally, we don't want the changes we made for one thing to get all mixed up with different changes for something else. The way to avoid that is: 1. Make sure the main branch is always up to date before you start work 2. Make a new branch for each different thing. Starting from a clean slate First we need to get off whatever branch we were on, and back to the *main *one. git checkout main Switched to branch 'main' Your branch is behind 'origin/main' by 1 commit, and can be fast-forwarded. (use "git pull" to update your local branch) Notice that we didn't use the -b option here, which is only for creating a /new /branch. Now we pull in whatever other changes have been made to the main branch since we were last here: git pull --rebase Updating 46f1ef3..c1596fb Fast-forward index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) Current branch main is up to date. Always do this. We haven't discussed the ugly reality of resolving merge conflicts yet, and if we always create new branches from a fully up-to-date main we can keep it that way. New branch for a new pull request Suppose we want to suggest a better definition for the term "luminance". Off we go: git checkout -b define-luminance Git confirms what we just did: Switched to a new branch 'define-luminance' Now we make our edits. Remember in part one where we changed colour to color? You may notice while editing that all those changes have/gone away/ and it says colour everywhere again. That is okay! The changes we made earlier are safely stored in that other branch, so they don't get in the way of what we are doing here. Save your edits, and commit them. git add index.html git commit -m "better but still short luminance definition, fixes #406" Git confirms that this worked: [define-luminance ff7d914] better but still short luminance definition, fixes #406 1 file changed, 1 insertion(+), 1 deletion(-) Now we can push. Same as before, letting git tell you off is the easiest way: git push fatal: The current branch define-luminance has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin define-luminance Thanks for the reminder, git. git push --set-upstream origin define-luminance Git gives us the same chatty commentary on what it is doing: Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 20 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 458 bytes | 30.00 KiB/s, done. Total 3 (delta 2), reused 0 (delta 0) remote: Resolving deltas: 100% (2/2), completed with 2 local objects. remote: remote: Create a pull request for 'define-luminance' on GitHub by visiting: remote: https://github.com/w3c/PNG-spec/pull/new/define-luminance remote: To github.com:w3c/PNG-spec.git * [new branch] define-luminance -> define-luminance Branch 'define-luminance' set up to track remote branch 'define-luminance' from 'origin'. Now we can go to that web page to create the pull request, same as we saw in part one. -- Chris Lilley @svgeesus Technical Director @ W3C W3C Strategy Team, Core Web Design W3C Architecture & Technology Team, Core Web & Media
Received on Saturday, 13 January 2024 13:54:14 UTC