RRR*_*RSR 6 git sql-server-ce team-explorer visual-studio-2013
开始尝试使用git.无意中将项目中的所有文件添加到了团队资源管理器中的"包含的更改".我在最初的提交中承诺了所有.其中一个文件是SQL CE 4.0(基于文件)数据库.我明显在那里搞砸了.我不想跟踪数据库,也不想最终将数据库恢复到以前的某个点.
我的问题是我不知道如何将SQL CE 4.0 sdf文件从包含的更改移动到未跟踪.我对git没有经验,迄今为止我所知道的是团队资源管理器UI中提供给我的东西.
那么,如何将文件从(已提交和)跟踪移动到未跟踪?在成功操作结束时,我希望将sdf文件放在"未跟踪"的bin中,并希望将其从已经被推送到远程仓库的提交中删除.我只是不确切地知道从哪里开始和做什么
要解决它,只需删除它并提交它,这将从最新版本的存储库中删除数据库.从Visual Studio UI开始,这仍然很容易.如果您需要保留sdf,请将其复制到临时位置.
要从git中删除它(并将其保留在文件系统上),您可以从命令行发出remove命令.这不能通过Visual Studio UI轻松完成.
git rm --cached yourfile.sdf
Run Code Online (Sandbox Code Playgroud)
要从存储库中完全删除不需要的文件,您需要求助于命令行.这将从您的历史记录中删除该文件.
警告:这将重写历史记录,导致所有提交ID发生更改.警告
git filter-branch --prune-empty -d c:\temp\tempfolder
--index-filter "git rm --cached -f --ignore-unmatch yourfile.sdf"
--tag-name-filter cat -- --all
Run Code Online (Sandbox Code Playgroud)
该文件将不再被引用,并将在某些时候从repo中删除.要告诉git立即删除文件,您需要运行:
git update-ref -d refs/original/refs/heads/master
git reflog expire --expire=now --all
git gc --prune=now --aggressive
Run Code Online (Sandbox Code Playgroud)
最后将这些更改提交到您的远程:
git push origin --all --force
Run Code Online (Sandbox Code Playgroud)
此强制推送需要TFS中的其他权限.通过默认情况下只有项目管理员有此权限.
有关更多说明,请阅读相关问题的链接答案.
如果您的远程仓库具有本地没有的分支,则可能需要先拉出所有分支.你可以这样做:
git pull --all
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7312 次 |
| 最近记录: |