我一直在想是否有一个很好的"git export"解决方案,它创建了一个没有.git存储库目录的树的副本.我知道至少有三种方法:
git clone然后删除.git存储库目录.git checkout-index 提到这个功能,但开头是"只需将所需的树读入索引...",我不完全确定如何做.git-export是第三方脚本,基本上git clone进入临时位置,然后rsync --exclude='.git'进入最终目的地.这些解决方案都没有让我感到满意.最接近的一个svn export选项可能是选项1,因为这两个都要求目标目录首先为空.但是假设我可以弄清楚将树读入索引意味着什么,选项2似乎更好.
我在SO上看到了一些脚本示例,但它们似乎都没有提供如何从.txt列表中读取文件名的示例.
这个例子很好,以便将所有文件从A文件复制到B文件夹
xcopy c:\olddir\*.java c:\newdir /D /E /Q /Y
Run Code Online (Sandbox Code Playgroud)
但我需要像下一个,我可以填写实际的源和目标文件夹:
@echo off
set src_folder = c:\whatever\*.*
set dst_folder = c:\foo
xcopy /S/E/U %src_folder% %dst_folder%
Run Code Online (Sandbox Code Playgroud)
而不是src_folder = c:\whatever\*.*,那些*.*需要是从txt文件读取的文件列表.
File-list.txt(示例)
file1.pds
filex.pbd
blah1.xls
Run Code Online (Sandbox Code Playgroud)
有人可以建议我怎么做吗?
我对Git很新,我有一个小问题.
在SVN [这感觉就像阿尔伯特叔叔的傻瓜和马的故事......"在战争期间......"]当我想用最新的更改来更新生产网站时,我会在TSVN中做一个差异并导出所有两个修订版之间更改/添加的文件.您可以想象,之后很容易将这些文件存入生产站点.
但是,似乎我无法在Git中找到"导出已更改的文件"选项.我可以做差异并看到更改,我可以得到一个文件列表,但我实际上无法导出它们.有合理的方法吗?我错过了一些简单的事吗?
为了再次澄清,我需要导出两个特定提交之间的所有更改.
提前致谢!
与此问题非常相似的问题:在Git中仅导出具有文件夹结构的已修改和添加的文件
给定的答案似乎只输出给定提交中更改的文件($ commit_id):
git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT $commit_idRun Code Online (Sandbox Code Playgroud)
我想获取commit1和commit2之间的修改文件列表......这可能吗?
git ×3
batch-file ×1
export ×1
git-archive ×1
git-diff ×1
msysgit ×1
svn-export ×1
tar ×1
tortoisegit ×1