2019独角兽企业重金招聘Python工程师标准>>>
项目组的C#项目都是放在vss中,现要迁移到gitlab服务器
软件环境:
vss2005
git for windows 2.5.0
vs2015
gitlab 6.2.4
1.从vss获取最新的网站项目Suntime.DigitalMarketing.Web到D盘vssdb目录下
2.使用vs2015打开解决方案,当提示登录vss时直接选择取消,并选择永久移除源代码的关联绑定,点击确定
3.关闭vs2015并保存更改
4.再次打开解决方案,此时不再提示登录vss。若继续提示登录vss表示未移除完整,用记事本打开sln文件,移除GlobalSection(SourceCodeControl)节点下的内容
5.切换到项目下,下载.gitignore到项目中(地址:https://github.com/github/gitignore/blob/master/VisualStudio.gitignore),用于过滤可忽略文件及文件夹,如生成解决方案后的bin目录等
此时的项目目录如下:
6.在gitlab中创建项目digitalmarket_web,第一次提交项目需要设置SSH keys
7.在项目下执行git命令
git init . #初始化项目
git status #查看项目git状态
git add . #添加跟踪
git commit -m "init" #提交变更到暂存区
git remote add origin git@XXX:dotnet_web/digitalmarket_web.git #建立与gitlab中项目的连接
git push origin master #推送暂存区内容到gitlab服务器
8.由于项目中有效文件可能会被.gitignore过滤,造成编译错误,需要从gitlab服务器下拉一个完整的项目到本地做校验。
先在D盘新建文件夹dotnet_repo专门用于存放git项目,执行git命令
git clone git@XXX:dotnet_web/digitalmarket_web.git #克隆项目到本地
此时的项目目录如下,可以看到.scc等可忽略文件已被.gitignore过滤
9.用vs2015打开克隆项目,重新生成解决方案
提示缺少文件,这里是因为Log文件夹被过滤的缘故
切回vssdb的项目下,使用git命令,强制提交Log文件夹到跟踪列表,并推送到gitlab
git add -f Suntime.DigitalMarketing.Utilities/Log
git commit -m "add Log file"
git push origin master
切回dotnet_repo下项目中执行git命令从gitlab服务器获取刚刚提交的Log文件
git pull
再次生成解决方案成功,下一节讲解如何使用nuget管理C#网站项目