Git中是否可以查看其他开发者的未提交代码变更?
Git中查看未提交改动的替代方案
早前使用TFS中的TFVC时,你可以查看到是谁检出了代码却迟迟未签入。
开发者经常会在下班前忘记提交改动,甚至完全忘了提交这回事,因此我作为团队负责人过去常会使用该功能提醒相关人员提交自己的工作内容。
请问在Git中有没有办法实现同样的功能?我现在每天都越来越怀念这个功能了。
首先要明确,TFVC是集中式版本控制系统,依托服务器端的「检出锁定」机制,所以服务端天然可以追踪所有用户的文件检出状态。但Git是分布式版本控制系统,默认没有服务器端的全局文件锁定逻辑,开发者本地的未提交改动如果没有推送到远端,服务器是完全无法感知的,因此没有和TFVC完全一致的原生功能,但可以通过以下方案达到类似的管理效果:
方案1:使用Git LFS 锁定功能(最接近原有体验)
如果你的团队需要管控的多是无法合并的二进制文件(比如设计稿、编译产物、资源文件),或者就是想复用之前的检出签入逻辑,推荐使用Git LFS的锁定功能:
- 该功能和TFVC的检出逻辑一致,用户修改文件前先执行
git lfs lock <文件路径>锁定文件,其他人就无法再锁定该文件,修改完成后执行git lfs unlock <文件路径>解除锁定 - 你只需要在终端执行
git lfs locks,就能看到所有当前处于锁定状态的文件、锁定人账号、锁定时间,直接就能找到锁定后长期未解锁的对应人员提醒提交
方案2:搭配团队开发规范实现进度追踪
如果团队大多开发的是可合并的文本代码文件,不需要强制锁定,可以通过简单的团队规则实现类似效果:
- 要求开发者所有的工作改动都要在对应命名的个人特性分支上开发,下班前即使功能未开发完成,也要提交为*WIP(工作进行中)*临时提交推送到远端,既避免本地代码丢失,也方便同步工作进度
- 你可以定期在Git托管平台的仓库页面查看所有活跃特性分支的最近提交时间,对超过1~2个工作日没有更新的分支,联系对应负责人确认是否有积压的本地改动未提交即可
方案3:自定义自动化提醒脚本
如果想要省去手动检查的成本,可以自己写简单的定时脚本实现自动提醒:
- 脚本定期拉取仓库所有远端分支的提交记录,和团队的工作项分配记录做匹配
- 对分配了工作项但对应分支长期没有提交记录的开发者,自动推送内部消息提醒及时提交推送改动,实现成本很低
Git的设计初衷就是支持离线分布式开发,和TFVC的集中式管控逻辑有本质差异,不需要完全照搬之前的使用习惯,稍微调整团队规范就能达到同样的管理效果,甚至还能避免TFVC独占检出导致的多人阻塞问题。
内容的提问来源于stack exchange,提问作者user1871183
相关产品推荐
相关产品推荐

