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
