Hi dev,

I recently faced a trivial problem due to my lack of understanding on how we 
create different PRs for different tasks – my code for different tasks were 
getting added to the same PR because I was using a single branch to commit my 
code & creating PRs from that branch.

Problem:
Eg: I forked the airavata repository and cloned the develop branch. I worked on 
2 tasks A, B. I pushed changes for A to my forked develop branch, and created a 
PR #1. When I pushed changes for B to my forked develop and tried creating a 
new PR, it added the new code to PR #1 (instead of creating PR #2).

Solution (There might be other/better ways to do this):
Let me explain in a step by step manner.



1.       Fork the “apache/airavata” repository to my personal profile. This 
will now be “gouravshenoy/airavata” repository.



2.       Since I will be working on the “develop” branch, I cloned the develop 
branch from this forked repository.
$ git clone –b develop 
[email protected]:gouravshenoy/airavata.git<mailto:[email protected]:gouravshenoy/airavata.git>


3.       I now create a new branch from my forked develop branch to work on 
Task A. Say I name this branch “task-A”.

$ git checkout –b task-A develop



This will automatically switch to the new branch “task-A” for me to work on and 
commit my changes.


4.        I make my changes and commit my code. I then push my code to this new 
branch.

$ git commit –m "changes for task-A"         # commit changes

$ git push --set-upstream origin task-A      # push changes to new branch


5.       Create a PR #1 for this task by comparing base “apache/airavata : 
develop” with head “gouravshenoy/airavata : task-A”.


6.  Similarly for Task B, I can create a new branch from “develop” and commit 
my changes to it.
$ git checkout –b task-B develop

$ git commit –m "changes for task-B"         # commit changes

$ git push --set-upstream origin task-B      # push changes to new branch




7.       I can then create a new PR #2 for this task by comparing base 
“apache/airavata : develop” with head “gouravshenoy/airavata : task-B”.


8.       Once the PR has been reviewed and the code merged, you can safely 
delete these new branches.
$ git push origin :task-A
$ git push origin :task-B

Again there might be other effective ways to do this, but this worked well for 
me and helped me understand better how we can create new PRs without adding 
everything to one. Hope this helps!

Note: Also while pushing commits, it is recommended to add the JIRA issue 
number to the commit so that Git automatically links the JIRA issue with the 
commit/merge.

Thanks and Regards,
Gourav Shenoy

Reply via email to