Skip to content

MultiverseLearningProducts/JSE-Unit-1.6

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

<style> .box { display: Inline-block; text-align: center; padding: 15px; background-color: #23EB9A; border-radius: 10px; align-items: Center; display: flex; justify-content: center; } </style>

Collaborating with Git & GitHub Skills Application


Access and Credentials

Item Detail
User +++@lab.VirtualMachine(desktop1).Username+++
Password +++@lab.VirtualMachine(desktop1).Password+++

Challenge Tasks

Task 1: Setting Up Remote Repository Connection

Establish a connection between your local Git repository and a remote GitHub repository to enable collaboration.

Requirements:

  1. Create a new directory called github-collaboration-project in your home directory
  2. Initialize a new Git repository in this directory
  3. Configure Git with your name and email address
  4. Create a README.md file with project description and setup instructions
  5. Create a .gitignore file appropriate for a software project
  6. Make an initial commit with both files
  7. Add this repository as a remote origin (the URL will be provided separately)
  8. Push the initial commit to the remote repository
  9. Verify the connection by checking remote status
  10. Document all remote setup commands in remote-setup-log.txt

Task 2: Collaborative Branching Workflow

Implement a collaborative branching strategy that simulates working with a team on shared features.

Requirements:

  1. Create a develop branch as the main development branch
  2. Create a feature branch called feature/user-authentication
  3. On the feature branch, create files: auth.py, user.py, and login.html
  4. Add meaningful content to each file (simulating authentication functionality)
  5. Commit your changes with clear, descriptive commit messages
  6. Push the feature branch to the remote repository
  7. Create another feature branch called feature/data-processing
  8. On this branch, create files: processor.py, data.json, and utils.py
  9. Commit and push this branch as well
  10. Merge the feature/user-authentication branch into develop
  11. Push the updated develop branch to remote
  12. Document the branching workflow in branching-strategy.txt

Task 3: Handling Merge Conflicts and Collaboration

Simulate and resolve merge conflicts that commonly occur in collaborative development.

Requirements:

  1. Create a branch called feature/config-updates from develop
  2. Create a config.py file with configuration settings
  3. Commit and push this branch
  4. Switch back to develop and create a different config.py file with conflicting content
  5. Commit this change to develop
  6. Attempt to merge feature/config-updates into develop (this will create a conflict)
  7. Resolve the merge conflict by combining both configurations appropriately
  8. Complete the merge and commit the resolution
  9. Push the resolved develop branch to remote
  10. Create a file called conflict-resolution-log.txt documenting the conflict and resolution process
  11. Delete the merged feature branches (both locally and remotely)
  12. Document the cleanup process in branch-cleanup-log.txt

Task 4: Pull Requests and Code Review Simulation

Simulate a pull request workflow and code review process using Git commands.

Requirements:

  1. Create a new branch called feature/documentation
  2. Create a docs folder with the following files:
    • API.md - API documentation
    • CONTRIBUTING.md - Contribution guidelines
    • CHANGELOG.md - Change log
  3. Add substantial content to each documentation file
  4. Commit changes with well-formatted commit messages
  5. Push the branch to remote
  6. Create a file called pull-request-description.txt that simulates a PR description
  7. Create a file called code-review-checklist.txt with items to check during code review
  8. Simulate addressing review feedback by making additional commits
  9. Merge the documentation branch into develop
  10. Push the updated develop branch
  11. Document the entire PR workflow in pr-workflow-guide.txt

Task 5: Advanced Git Collaboration Techniques

Demonstrate advanced Git techniques used in professional collaborative environments.

Requirements:

  1. Create a release/v1.0.0 branch from develop
  2. Create a VERSION.txt file with version information
  3. Create a RELEASE_NOTES.md file documenting features and changes
  4. Use git tag to create an annotated tag for the release
  5. Push the tag to the remote repository
  6. Create a hotfix branch called hotfix/critical-security-fix
  7. Make a critical fix (create/modify a security-related file)
  8. Merge the hotfix into both develop and release/v1.0.0
  9. Create a new tag v1.0.1 for the hotfix
  10. Push all changes and tags to remote
  11. Use git rebase to clean up commit history on a new feature branch
  12. Demonstrate git stash for temporarily saving work
  13. Create a comprehensive git-collaboration-guide.txt that documents:
    • Remote repository workflows
    • Branching strategies for teams
    • Merge vs rebase strategies
    • Tag management
    • Best practices for collaborative development
  14. Ensure all work is properly committed and pushed to remote

@lab.Activity(CFU2)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages