所以我决定在本地安装Windows版本的Git(我做Unix web开发,但也开发.NET开发,所以在UNIX上为我的.NET项目运行Git似乎很迂回)。
对于Web开发工作,我只是自己用FTP部署它,但是想问一下:有没有方便的方法让Git为一个文件子集构建一个目录结构,比如一个文件中的所有文件特别分支?
例如:说我有这个Web服务器文件结构
/public_html/index.php
/public_html/config.php
/public_html/style/style.css
/public_html/style/typography.css
本地我只修改index.php和style.css
如果有某种方式来结识"那将是很好的。这些文件并让它构建完整的文件路径。在Visual Source Safe中,它实际上将所有文件存储在VSS数据库中。因此,您可以删除工作副本,并签出一些文件,然后将它们写入相应目录结构中的工作目录。在GIT中有类似的东西吗?如果是这样,那么我可以导出修改后的文件并将根文件夹(/ public_html)上传到服务器
答案 0 :(得分:1)
结帐git diff-tree
。您可以使用它比较两个提交树的状态并确定哪些文件已更改。例如:
git diff-tree --name-status -r `git merge-base master mybranch` mybranch
将显示已更改的任何文件的名称和状态。如果您确定仍然可以正确处理已删除文件之类的内容,也可以使用--name-only
代替--name-status
。
(当然,用``命令替换是UNIX-shell构造;在Windows上你可能需要使用像FOR / F这样的东西。)
然后,您可以将此命令列出的文件传递给git checkout
。如果要将文件检出到单独的目录中,可以使用--work-tree
参数:
git --work-tree=path/to/build checkout mybranch -- file file file...
答案 1 :(得分:0)
您可以使用以下内容恢复索引的所有file
的最新副本。
git checkout HEAD -- <file>
因此,如果您删除了工作目录中的文件,则可以使用该命令“恢复”它。