在git分支之间的某个文件夹中的差异

10 浏览
0 Comments

在git分支之间的某个文件夹中的差异

我想要在主分支和我创建的一个分支之间得到一个特定文件夹的差异文件。

0
0 Comments

在Git中,git diff用于比较两个不同时间点的树(即源代码文件的层次结构),因此它无法提取特定作者所做的更改。如果您想查看某个用户提交的更改内容,则需要使用git log命令。

以下是一种解决方法:

git log --author=jdoe oldbranch..newbranch -p -- path/to/subdirectory > myChangesInSubdirectory.patch

该命令会列出jdoe在两个提交之间所做的每个提交,并将它们以补丁形式打印出来,仅限于目标子目录中存在更改的提交,并将输出重定向到一个文件中。

0
0 Comments

在不同的git分支之间比较特定文件夹的差异是一个常见的需求。有几种方法可以解决这个问题。

一种方法是使用以下命令:

git diff master..yourbranch -- path/to/folder

这将比较`master`分支和`yourbranch`分支之间的`path/to/folder`文件夹的差异。

另外一个问题是如何指定特定的提交者,并将这个差异提取到一个txt文件中。可以通过以下命令将差异写入文件:

git diff master..yourbranch path/to/file > filename

这将把差异写入一个名为`filename`的txt文件中。

如果要仅提取某个作者在分支中添加的提交差异,可以使用以下命令:

git diff master..yourbranch --author="authorname" -- path/to/folder

这将只比较`authorname`添加的提交在`master`分支和`yourbranch`分支之间的`path/to/folder`文件夹的差异。

当然,有时候可能会遇到一些问题。例如,如果出现以下错误:

fatal: bad revision 'master..develop_content'

这可能是因为你没有在本地检出分支。请确保已经在本地检出了相关的分支。

另一种可能的解决方法是使用以下命令:

git fetch
git diff master..origin/develop_content

这将从远程仓库获取最新的提交并比较`master`分支和`origin/develop_content`分支之间的差异。

如果只显示了新增的文件而没有显示所有的差异,可以尝试添加`--staged`选项:

git diff --staged master..yourbranch -- path/to/folder

这将比较`master`分支和`yourbranch`分支之间的`path/to/folder`文件夹的差异,并包括已暂存的差异。

最后,需要注意的是,为了正确比较文件夹的差异,需要在分支名和文件夹路径之间添加两个连字符:

git diff master..yourbranch -- path/to/folder

这样才能正确地比较`master`分支和`yourbranch`分支之间`path/to/folder`文件夹的差异。

总之,通过使用适当的命令和选项,可以很方便地比较不同git分支之间特定文件夹的差异,并将差异提取到txt文件中。

0