如何在提交之间获取所有新代码并将其保存到文件夹中



由于法律问题,我需要在两次远程提交(2年的开发(之间获得所有新的代码文件。我只需要全新的文件,不需要对现有文件进行更改。我正在使用Fork,我可以看到所有的新文件,但我需要将所有文件提取到文件夹中,我不知道如何做到。如何使用git命令做到这一点?

列出commitB中相对于commitA:的所有新文件

git diff --name-only --no-renames --diff-filter=A <commitA> <commitB>

用这些制作一个tar档案:

# the active commit must be commitB,
# 'git status' must indicate a clean worktree (no changes to any versioned files)
git diff --name-only ... | xargs tar -cf newfiles.tar
# if you want it gzipped :
git diff --name-only ... | xargs tar -czf newfiles.tgz

https://superuser.com/questions/117626/find-recently-added-files-with-git

我能想到的另一种方式,没有任何数字魔法:

签出提交A,将您的项目复制到某个文件夹中。结账提交B.

现在找到存在于B中但不存在于A中的文件。这些文件是自A.以来添加的

使用git reset HEAD~<number of commits to go back>将软位数重置为最早的提交

这将重置所有更改,并使代码库处于最早提交状态。您应该能够看到所有更改,包括对现有文件和新文件的修改。

现在执行git checkout .,这将删除对该提交和以后提交时存在的文件的所有更改。您将只剩下在最早提交时不存在的文件。

此外,如果您还想删除这些新文件,则必须执行git clean -f .

最新更新