Workflow Strategies for Integrating/Merging Pull Requests and Establishing Traceability between commits and tasks (and pull requests).
Using your personal GitHub account create new a GitHub repository called CS471WorkflowsHomeworkAssignment
.
- The following option:
Initialize this repository with a README
should be disabled/unchecked.
Clone this CS471-Assignments-Workflows repository.
$ git clone https://github.com/BoiseState/CS471-Assignments-Workflows.git
$ cd CS471-Assignments-Workflows
The contents of master
branch of the cloned repository (from Step 2
) will be pushed the repository that you created (in Step 1
).
Check the existing origin
remote, which should indicate the URL of the cloned repository:
$ git remote --verbose
origin https://github.com/BoiseState/CS471-Assignments-Workflows.git (fetch)
origin https://github.com/BoiseState/CS471-Assignments-Workflows.git (push)
Inspect the history of the repository via:
- the GitHub visualization and
- the command line:
$ git log --oneline --decorate --graph --all --author-date-order
Create local branches from all remote branches:
$ for remote_branch in `git branch -r | grep -v HEAD | grep -v master`
do
# the ${remote_branch#"origin/"} means remove (#)
# the pattern "origin/" from the string variable ${remote_branch}
# to end up with the name of the local branch
git branch ${remote_branch#"origin/"} $remote_branch
done
Remove the origin
remote pointing to the cloned repository:
$ git remote remove origin
Add a new origin
remote that will point to the repository that you created (in Step 1
):
$ git remote add origin https://github.com/<GitHubUsername>/CS471WorkflowsHomeworkAssignment.git
or
$ git remote add origin [email protected]:<GitHubUsername>/CS471WorkflowsHomeworkAssignment.git
$ git remote --verbose
origin https://github.com/<GitHubUsername>/CS471WorkflowsHomeworkAssignment.git (fetch)
origin https://github.com/<GitHubUsername>/CS471WorkflowsHomeworkAssignment.git (push)
or
origin [email protected]:<GitHubUsername>/CS471WorkflowsHomeworkAssignment.git (fetch)
origin [email protected]:<GitHubUsername>/CS471WorkflowsHomeworkAssignment.git (push)
Push only the master
branch to your newly create repository (in Step 1
):
$ git push -u origin master
In your CS471WorkflowsHomeworkAssignment
repository created in Step 1
, go to Issues
-> New issue
and create one type of each of the six issues (i.e., one user story and five tasks), in the ascending order specified.
NOTE: The GitHub issue templates have already been configured to create these issues with ease.
At the end of this step, you should have the following issues created:
Issue ID | Issue Type | Title |
---|---|---|
#1 |
User Story | Workflow Integrating Strategies |
#2 |
Task | Merge Integration Strategy |
#3 |
Task | Rebase Integration Strategy |
#4 |
Task | Squash with Default Message Integration Strategy |
#5 |
Task | Squash with Traceability to Task and PR in Commit Message Integration Strategy, but with Some Commits in the Branch Referencing the Task |
#6 |
Task | Squash with Traceability to Task and PR in Commit Message Integration Strategy, without Any Commits in the Branch Referencing the Task |
Read and understand the user story #1
, and the tasks #2
, #3
, #4
, #5
and #6
which are all linked to user story #1
.
Push all remaining local branches to your newly create repository (in Step 1
):
$ git push --all
Complete task #2
according to its specifications.
Answer the corresponding questions in the Blackboard assignment.
Complete task #3
according to its specifications.
Answer the corresponding questions in the Blackboard assignment.
Complete task #4
according to its specifications.
Answer the corresponding questions in the Blackboard assignment.
Complete task #5
according to its specifications.
Answer the corresponding questions in the Blackboard assignment.
Complete task #6
according to its specifications.
Answer the corresponding questions in the Blackboard assignment.