| Item | Detail |
|---|---|
| User | +++@lab.VirtualMachine(desktop1).Username+++ |
| Password | +++@lab.VirtualMachine(desktop1).Password+++ |
Establish a connection between your local Git repository and a remote GitHub repository to enable collaboration.
Requirements:
- Create a new directory called
github-collaboration-projectin your home directory - Initialize a new Git repository in this directory
- Configure Git with your name and email address
- Create a
README.mdfile with project description and setup instructions - Create a
.gitignorefile appropriate for a software project - Make an initial commit with both files
- Add this repository as a remote origin (the URL will be provided separately)
- Push the initial commit to the remote repository
- Verify the connection by checking remote status
- Document all remote setup commands in
remote-setup-log.txt
Implement a collaborative branching strategy that simulates working with a team on shared features.
Requirements:
- Create a
developbranch as the main development branch - Create a feature branch called
feature/user-authentication - On the feature branch, create files:
auth.py,user.py, andlogin.html - Add meaningful content to each file (simulating authentication functionality)
- Commit your changes with clear, descriptive commit messages
- Push the feature branch to the remote repository
- Create another feature branch called
feature/data-processing - On this branch, create files:
processor.py,data.json, andutils.py - Commit and push this branch as well
- Merge the
feature/user-authenticationbranch intodevelop - Push the updated
developbranch to remote - Document the branching workflow in
branching-strategy.txt
Simulate and resolve merge conflicts that commonly occur in collaborative development.
Requirements:
- Create a branch called
feature/config-updatesfromdevelop - Create a
config.pyfile with configuration settings - Commit and push this branch
- Switch back to
developand create a differentconfig.pyfile with conflicting content - Commit this change to
develop - Attempt to merge
feature/config-updatesintodevelop(this will create a conflict) - Resolve the merge conflict by combining both configurations appropriately
- Complete the merge and commit the resolution
- Push the resolved
developbranch to remote - Create a file called
conflict-resolution-log.txtdocumenting the conflict and resolution process - Delete the merged feature branches (both locally and remotely)
- Document the cleanup process in
branch-cleanup-log.txt
Simulate a pull request workflow and code review process using Git commands.
Requirements:
- Create a new branch called
feature/documentation - Create a
docsfolder with the following files:API.md- API documentationCONTRIBUTING.md- Contribution guidelinesCHANGELOG.md- Change log
- Add substantial content to each documentation file
- Commit changes with well-formatted commit messages
- Push the branch to remote
- Create a file called
pull-request-description.txtthat simulates a PR description - Create a file called
code-review-checklist.txtwith items to check during code review - Simulate addressing review feedback by making additional commits
- Merge the documentation branch into
develop - Push the updated
developbranch - Document the entire PR workflow in
pr-workflow-guide.txt
Demonstrate advanced Git techniques used in professional collaborative environments.
Requirements:
- Create a
release/v1.0.0branch fromdevelop - Create a
VERSION.txtfile with version information - Create a
RELEASE_NOTES.mdfile documenting features and changes - Use
git tagto create an annotated tag for the release - Push the tag to the remote repository
- Create a hotfix branch called
hotfix/critical-security-fix - Make a critical fix (create/modify a security-related file)
- Merge the hotfix into both
developandrelease/v1.0.0 - Create a new tag
v1.0.1for the hotfix - Push all changes and tags to remote
- Use
git rebaseto clean up commit history on a new feature branch - Demonstrate
git stashfor temporarily saving work - Create a comprehensive
git-collaboration-guide.txtthat documents:- Remote repository workflows
- Branching strategies for teams
- Merge vs rebase strategies
- Tag management
- Best practices for collaborative development
- Ensure all work is properly committed and pushed to remote
@lab.Activity(CFU2)