Initial commit with translated description
This commit is contained in:
36
collaboration.md
Normal file
36
collaboration.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# Collaboration Traps
|
||||
|
||||
## Push/Pull
|
||||
|
||||
- `git pull` = fetch + merge — can create unexpected merge commits
|
||||
- `git pull --rebase` avoids merge commits but can have conflicts
|
||||
- Push rejected for non-fast-forward ≠ you need force — pull first
|
||||
- `--force` overwrites others' history — `--force-with-lease` is safer
|
||||
|
||||
## Force Push
|
||||
|
||||
- `--force` ignores others' changes — coworkers' commits lost
|
||||
- `--force-with-lease` fails if remote changed — safer but not foolproof
|
||||
- Force push to main/master = broken CI/CD references, failed deploys
|
||||
- Branch protection on GitHub/GitLab prevents force push — always configure
|
||||
|
||||
## Remote Branches
|
||||
|
||||
- `git fetch` doesn't update working directory — only refs
|
||||
- Branch tracking doesn't update automatically if remote renames
|
||||
- `origin` is convention, not requirement — other remotes can exist
|
||||
- `git remote prune origin` cleans refs but not local branches
|
||||
|
||||
## Code Review
|
||||
|
||||
- Push during review = new commits not necessarily reviewed
|
||||
- Force push during review = diff changes, comments may become obsolete
|
||||
- Approve before CI complete = bugs merged
|
||||
- Squash merge loses individual commit history
|
||||
|
||||
## Team Coordination
|
||||
|
||||
- Multiple people on same branch = constant conflicts
|
||||
- No branch naming convention = chaos in long-running projects
|
||||
- Forgetting to pull before starting work = divergent history
|
||||
- Rebasing shared branch without warning = teammates' work broken
|
||||
Reference in New Issue
Block a user