两个不同文件夹

时间:2015-09-29 09:06:25

标签: git github git-diff

我想知道如何从9.3.1-STABLE和TN-9.3.1-STABLE获取git diff,并使用以下文件夹/ git结构

root@build3:/tank/home/stable-builds/FN # git branch
  9.3-STABLE
* 9.3.1-STABLE

root@build3:/tank/home/stable-builds/TN # git branch
TN-9.3-STABLE
* TN-9.3.1-STABLE
master

任何答案都将不胜感激。

3 个答案:

答案 0 :(得分:3)

首先我们让两个git repos彼此认识

转到一个存储库

cd /tank/home/stable-builds/FN

将其他仓库添加为“远程”

git remote add TN /tank/home/stable-builds/TN

获取其他仓库

git fetch TN

现在,我们要求一个差异

git diff 9.3.1-STABLE remotes/TN/TN-9.3.1-STABLE

答案 1 :(得分:3)

如果您打算定期制作此类差异,我建议使用远程存储库 如 @BartBog 的答案所述。

如果没有,您可以在不添加远程存储库的情况下执行以下操作:

选项1:

git diff --no-index -- /tank/home/stable-builds/FN /tank/home/stable-builds/TN

或简单地说:

git diff /tank/home/stable-builds/FN /tank/home/stable-builds/TN

从git手册:

  

git diff [options] [--no-index] [--] <path> <path>

     

此表单用于比较文件系统上给定的两个路径。在由Git控制的工作树中运行命令时,可以省略--no-index选项,并且至少有一个路径指向工作树外部,或者在Git控制的工作树外运行命令。

注意:它会比较文件系统上的工作副本。

选项2:

如果要将FN工作副本与TN中的TN-9.3.1-STABLE分支进行比较,可以执行以下操作:

  • 如果您在/tank/home/stable-builds/FN

    git --git-dir=../TN/.git diff TN-9.3.1-STABLE
    
  • 如果你在其他地方:

    git --git-dir=/tank/home/stable-builds/TN/.git --work-tree=/tank/home/stable-builds/FN diff TN-9.3.1-STABLE
    

从git手册:

  

--git-dir=<path>设置存储库的路径。

     

--work-tree=<path>设置工作树的路径。

答案 2 :(得分:0)

git diff origin/9.3.1-STABLE TN-9.3.1-STABLE

这对我有用,实际上原点/ 9.3.1-STABLE和TN-9.3.1-STABLE是同一个回购中的分支。

当我发布这个问题时,我认为这是9.3.1-STABLE和TN-9.3.1-STABLE是不同的回购,所以很抱歉混淆,如果有的话。

# git diff --stat origin/9.3.1-STABLE TN-9.3.1-STABLE
 ChangeLog                                                |  26 +++++-
 Makefile                                                 |  12 +--
 README.md                                                |   6 +-
 ReleaseNotes                                             |  97 ++++------------------
 build/README                                             |   6 +-
 build/create_redmine_changelog.py                        |   4 +-
 build/files/install.sh                                   |   4 +-
 build/nanobsd-cfg/FREENAS.amd64                          |   3 -
 build/nanobsd-cfg/Files/etc/rc.conf.local                |   7 +-

^^^只会为您提供已更改的文件,完整路径,您可以执行以下操作,以清楚地了解确切更改的位置和位置。

# git diff origin/9.3.1-STABLE:ChangeLog TN-9.3.1-STABLE:ChangeLog
diff --git a/origin/9.3.1-STABLE:ChangeLog b/TN-9.3.1-STABLE:ChangeLog
index 35e315e..656c681 100644
--- a/origin/9.3.1-STABLE:ChangeLog
+++ b/TN-9.3.1-STABLE:ChangeLog
@@ -1,2 +1,24 @@
-#11936 Bug     Critical        UI left pane does not populate
-#12208 Bug     Critical        Fix late-breaking issue with ntpd update
+o Add a vCenter plugin.  This functionality allows you to install
+  the TrueNAS 1.0 vCenter plugin in to vCenter, which will then
+  allow you to create iSCSI and NFS datastores directly from vCenter.