DEV Community

hijuliancode
hijuliancode

Posted on

Effective Git Workflow: Managing Version Control in Team Environments

Git is a version control system used to manage changes to files, typically in code or design projects.

What is Version Control?

Version control refers to managing changes made to files over time. It allows us to:

  • Track modifications,
  • Revert to previous versions,
  • Collaborate effectively.

Why do we use Git?

Git helps us:

  • Preserve changes,
  • Track modifications across one or multiple files,
  • Save progress in projects, whether code or design.

While Git can be used for personal notes or academic purposes, it's mainly used for team collaboration. Simply put, Git is "a tool that helps me organize with my team and track the work we do."

Remember, Git operates within a directory, so even if you want to track a single file, Git must be initialized in the directory containing that file.


Useful Commands for Team Collaboration

# Initialize a Git repository in a directory git init # Update all remote branches git fetch --all # List local branches git branch # List both local and remote branches git branch -a # Add a remote repository git remote add origin https://gitlab.com/hijuliancode/demo-git-tutorial # Add a Heroku remote repository git remote add heroku https://git.heroku.com/demo-heroku-repo.git # Remove a remote repository git remote remove heroku # View all configured remote repositories git remote -v # Fetch and merge changes from the master branch of the remote repository git pull origin master # Push changes from the local master branch to the remote repository git push origin master # Display the state of your working directory and staging area git status # Stage a file for commit git add filename.html # Stage all changes in the current directory for commit git add . # Remove a file from the staging area git reset filename.html # Remove all changes from the staging area git reset . # Rename a file git mv oldname.js newname.js # Rename a file within a directory git mv folder/oldname.js folder/newname.js # Temporarily save changes and revert to the last commit git stash # Restore changes from the stash git stash apply # Create a commit with a descriptive message git commit -m "Message" 
Enter fullscreen mode Exit fullscreen mode

Example Workflow

Imagine we’re building a house as a project. Here’s how a workflow might look with three team members: Person A, Person B, and Person C.

  1. Person A initializes the repository:

    git init git remote add origin git@gitlab.com:hijuliancode/demo-git-tutorial.git 
  2. Person A creates an initial file and pushes it to the repository:

    echo "## demo-git-tutorial" >> README.md git add README.md git commit -m "initial commit" git branch -M master git push origin master 
  3. Person B and Person C clone the repository:

    git clone git@gitlab.com:hijuliancode/demo-git-tutorial.git cd demo-git-tutorial 
  4. Person A creates the develop branch and pushes it to the remote:

    git checkout -b develop git push origin develop 
  5. Person B and Person C update their local repositories to include the develop branch:

    git fetch --all git checkout develop 

Now everyone has the repository and can start contributing.

  1. Person A creates a feature branch to work on the house plans:

    git checkout -b feature/house-plans touch house-plans.js git add house-plans.js git commit -m "Add house plans" git push origin feature/house-plans 
  2. Person B and Person C update their local repositories to access the new branch:

    git fetch --all git branch -a git checkout feature/house-plans 
  3. Person B wants to suggest improvements to the house plans. They can do so by creating a Pull Request (or Merge Request):

    • Navigate to the repository's GitHub or GitLab page,
    • Go to the Pull Request or Merge Request section,
    • Assign a reviewer (like a team lead or peer).

To apply the suggested changes:

 git add house-plans.js git commit -m "Improve house plans" git push origin feature/house-plans 
Enter fullscreen mode Exit fullscreen mode
  1. Once the feature branch is reviewed and merged, it can be deleted:

    git checkout develop git pull origin develop git branch -D feature/house-plans 

Repeat this process for new features or changes!

Top comments (0)