Hi Jenkins devs,

I recently joined the Jenkins community, and although I am an experienced
Java developer, I have absolutely no prior experience with GitHub, or with
git for that matter.

My first steps have been as follows:
(and I am explicitly asking for any comments on where I went wrong, or what
I could have done differently, if not better)

As explained on the 'Building Jenkins' wiki page:
- Clone the Jenkins repo
- Build with Maven (unfortunately the build failed because some core tests
fail on Windows)

After reading some more GitHub help:
- Fork Jenkins
- Clone my fork
- Make a change and push it to my fork
- Create a pull request: 575 <https://github.com/jenkinsci/jenkins/pull/575>

jglick had a useful comment on the pull request, so I wanted to make the
suggested code change. Having gotten the feedback I needed, I closed the
pull request, intending to make a fresh version of the change and push it
directly to the jenkins repo. However, I had already committed my change to
my fork, and I didn't know how to revert it, or if undoing a commit is even
possible. So I proceeded with the following:
- Delete my fork
- Create a new fork of Jenkins
- Clone my fork
- Redo the change
- Commit it, and push to my fork

Then, on GitHub, I couldn't find how to push my change from my fork back to
jenkins. So I went back to my original clone of the Jenkins repo, opened
that project in IntelliJ, put the change there, and told the IDE to push it
to Jenkins. At first GitHub refused the push, with some error message of
needing to merge first. I wasn't sure what that meant, but guessed that my
clone was no longer in sync with the repo. So I did:
- git fetch origin
- git pull
(after this, git status said I was ahead of master by 2 commits, which I
don't understand because I had made only 1 commit: my code change. What was
the second commit?)
I then retried pushing the change from the IDE, and this time it was
accepted. Only, unexpectedly, there were indeed 2 commits, both of which
were pushed. Since only 1 was intended
(8fb12c5<https://github.com/jenkinsci/jenkins/commit/8fb12c5>),
I was quite worried of having broken something. The second commit,
7b9becc<https://github.com/jenkinsci/jenkins/commit/7b9becc>,
had the title "Merge branch 'master' of https://github.com/jenkinsci/jenkins";,
and there were many changes in it (36 changed files), making me even more
worried. It looks like I merged some changes into master, but where did
they come from?

Going back to my pull request, I saw that jglick had some more useful
comments:
"There is no need to close a pull request after a comment; just push a new
change to your branch. (You used master—OK but better practice to create a
branch for the change, so you can have multiple pull requests open at
once.)"

I didn't fully understand this yet. How could I add more changes to a pull
request? Triggered by the 'branch' part, I looked up branching on GitHub
help, and continued, on the local clone of my fork:
- git branch mybranch
- git checkout mybranch

So now I have a branch of my fork, I have made another code change, and I
want to create a new pull request from it. In the meantime I read on the
help that you should use a separate branch for a pull request, and that any
changes you push to that branch are added to the pull request. That's all
good and well, but I still can't manage to create a pull request from by
branch, because I can't find my branch on GitHub. It seems to exist only on
my local computer. How do I push the branch to GitHub?

That's where I'm at now. Can you help me along further on this learning
curve? Any and all comments are welcome.

Thanks to jglick for his helpful feedback, even if I had to read it a few
times over before understanding (which is entirely due to my ignorance, not
the quality of the comments).


Best regards,
Erik Molekamp

Reply via email to