You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Git分支操作咨询:新特性分支创建及推送至Dev分支的正确方法

Git Feature Branch Workflow Check & Clean Commit History Tips

Hey there! Let's walk through your workflow to confirm it's on the right track, plus share tips to keep your commit history nice and tidy.

1. Branch Creation: You're Off to a Great Start

Creating a feature-specific branch from dev is exactly the right approach—this isolates your logout feature work from ongoing development in the main dev branch. Your branch name feature/user-can-logout is also super规范 (clean and descriptive), which helps your team instantly understand what the branch is for.

Just to recap the correct command sequence (in case you want to double-check):

# Switch to your dev branch first and pull the latest changes
git switch dev
git pull origin dev

# Create and switch to your feature branch
git switch -c feature/user-can-logout

2. Development & Commit Best Practices for Clean History

To keep your commit history tidy, follow these rules as you build the logout feature:

  • Small, focused commits: Each commit should represent one logical change (e.g., "feat(logout): add logout API endpoint" instead of "work on logout"). Avoid dumping all changes into a single giant commit.
  • Use Conventional Commits: Structure your commit messages like type(scope): description (e.g., feat(logout): add logout button UI, fix(logout): resolve session cleanup bug). This makes history scannable and works well with tools like changelog generators.
  • Squash messy commits mid-development: If you have a bunch of WIP (work-in-progress) commits, use interactive rebase to clean them up before pushing or merging:
    # Squash the last 3 commits (adjust the number as needed)
    git rebase -i HEAD~3
    
    In the editor that pops up, change pick to squash (or s) for the commits you want to merge into the previous one, then rewrite the combined commit message to be clear.

3. Pushing Your Feature Branch

Your push workflow is straightforward, but here's the exact command to make sure you set up the remote branch correctly the first time:

# First push: link your local branch to the remote
git push -u origin feature/user-can-logout

# Subsequent pushes (after making more commits)
git push

If you're working in a team, regularly sync with the dev branch to avoid big merge conflicts later:

# Fetch the latest dev changes
git fetch origin dev

# Rebase your feature branch on top of the latest dev (keeps history linear)
git rebase origin dev

Resolve any conflicts during the rebase, then force push if needed (only do this if no one else is working on your feature branch!):

git push --force-with-lease

4. Merging to Dev: Keep History Clean

Once your feature is done, tested, and reviewed:

  1. Final sync: Rebase your feature branch on the latest dev one last time to ensure no conflicts.
  2. Create a Pull Request (PR): Submit your feature branch to dev for team review—this is a critical step you shouldn't skip (it catches bugs and ensures alignment with team standards).
  3. Merge strategically: When merging the PR, prefer these options over a default merge commit:
    • Squash Merge: Combines all your feature branch commits into a single clean commit on dev (great for keeping dev history concise).
    • Rebase Merge: Applies your feature commits linearly on top of dev (preserves individual commit history but keeps it clean and linear).
      Avoid the default "Create a merge commit" option—it adds unnecessary merge nodes and clutters the history.

5. Post-Merge Cleanup

After merging, don't forget to clean up:

# Switch back to dev and pull the merged changes
git switch dev
git pull origin dev

# Delete your local feature branch (the -d flag ensures it's merged first)
git branch -d feature/user-can-logout

# Delete the remote feature branch (if your team doesn't need it anymore)
git push origin --delete feature/user-can-logout

Quick Check: Did You Miss Anything?

From what you described, your core workflow is correct! The key missing steps most people overlook are:

  • Regularly rebasing against dev to avoid conflicts and keep history linear.
  • Using interactive rebase to clean up messy commits before merging.
  • Doing a team review via PR before merging into dev.

By following these steps, you'll keep your project's commit history clean, readable, and easy to debug!

内容的提问来源于stack exchange,提问作者MonaHansen

火山引擎 最新活动