TFS命令tf:undo(强制签入别人签出的文件)
我们在使用TFS源代码管理的时候,会遇到这样的情况,源代码管理会在每个客户PC上创建一个工作区,然后这个工作区域映射到服务器上的源码文件夹,我们在正常签入,签出的时候,我们的源码会在服务器到客户端的工作区进行操作,但是一旦有项目组成员在告假或者离职之前签出,并且加入了签出锁,这时如果项目组的其他成员想要修改被锁定的文件,或者是TFS的管理员想要在源代码管理中删除这个项目,这时问题出现了,因为我们无法通过Team Explorer图形界面来进行撤出签出操作,只能通过TFS命令:undo来进行操作,强行撤出别人签出的文件。
![TFS命令tf:undo(强制签入别人签出的文件) - 紫轩丹亭 - 紫轩丹亭](http://img.ph.126.net/tfI2qA4oOMZdbyxLKLBLIQ==/3397121493920984789.jpg)
删除工作区:
tf workspace /delete PING-PC;pjc/serverhttp://192.168.111.216:8080
然后刷新你的Team Explorer看看那个加锁的文件是不是不见了。
1、在命令行中输入"cd C:\Program Files\Microsoft Visual Studio 8\Common7\IDE"(tf程序在文件夹)
2、查找那个人所用到的workspace,操作如下:tf workspaces /owner:mj /server:http://192.168.111.216:8080
![TFS命令tf:undo(强制签入别人签出的文件) - 紫轩丹亭 - 紫轩丹亭](http://img.ph.126.net/tfI2qA4oOMZdbyxLKLBLIQ==/3397121493920984789.jpg)
3、查看那个人挂起的更改:tf status /server:http://192.168.111.216:8080 /workspace:* /user:mj
4、撤销他的签出(强制),操作如下:
tf undo /workspace:MJBOOK(工作区名字);mj(用户名)$/xxx/xxxxx/aaa.csproj(文件所在的路径) /Server:http://192.168.1.200:8080(TFS服务器)
eg:tf undo /workspace:MJBOOK;mj $/JY-ADSCS2.0/JY-ADSCS2.0/01 Development/SRC/ElawCounty/Web/Bin/CountyMine.DALFactory.xml /server:http://192.168.111.216:8080
5、结束。
问题补充:有时会提示工作区不存在,执行undo失败,如下图:
![TFS命令tf:undo(强制签入别人签出的文件) - 紫轩丹亭 - 紫轩丹亭](http://img7.ph.126.net/s0jcjLd-7QSKySmoTCmVaw==/2664723604537215077.jpg)
解决办法如下:
查看该项目组成员的工作区:
tf workspaces /server:http://192.168.111.216:8080 /owner:pjc
tf workspaces /server:http://192.168.111.216:8080 /owner:pjc
或者知道计算机名的:tf workspaces /computer:PING-PC /server:http://192.168.111.216:8080 /owner:pjc
![TFS命令tf:undo(强制签入别人签出的文件) - 紫轩丹亭 - 紫轩丹亭](http://img8.ph.126.net/fXclcTjdeyVlbX6A611tsw==/1123366632069654358.jpg)
删除工作区:
tf workspace /delete PING-PC;pjc/serverhttp://192.168.111.216:8080
然后刷新你的Team Explorer看看那个加锁的文件是不是不见了。