相关疑难解决方法(0)

显示两个修订版之间已更改的文件

我想合并两个已分开一段时间的分支,并想知道哪些文件已被修改.

遇到这个链接:http://linux.yyz.us/git-howto.html这非常有用.

比较我遇到的分支的工具是:

  • git diff master..branch
  • git log master..branch
  • git shortlog master..branch

想知道是否有类似"git status master..branch"的东西只能看到两个分支之间不同的文件.

在没有创建新工具的情况下,我认为这是您现在可以做到的最接近的工具(如果文件被多次修改,当然会显示重复):

  • git diff master..branch | grep "^diff"

想知道是否有我遗漏的东西......

git branch git-diff git-branch

2041
推荐指数
12
解决办法
72万
查看次数

Git diff对付藏匿处

如何查看取消对当前工作树的更改?我想知道在应用它们之前会做出哪些改变!

git git-stash

1265
推荐指数
12
解决办法
32万
查看次数

如何从另一个分支中获取一个文件

我正在使用git并在master分支上工作.这个分支有一个名为的文件app.js.

我有一个experiment分支,我做了一堆变更和大量的提交.现在我希望把做只对所有变化app.jsexperimentmaster分支.

我怎么做?

再一次,我不想合并.我只是想把所有的变化app.jsexperiment分支带到master分支.

git git-checkout

1154
推荐指数
10
解决办法
51万
查看次数

如何比较两个标签?

我想在两个标签之间进行差异,并在这两个标签之间进行更改.你能告诉我这个命令吗?

git

404
推荐指数
3
解决办法
20万
查看次数

设置并使用Meld作为你的git difftool和mergetool

虽然这个问题和答案中的大部分信息都可以在StackOverflow上获得,但它分布在许多页面以及其他错误或误导性的答案中.我花了一段时间拼凑出我想知道的一切.

有很多不同的程序可以用作你的git difftool和mergetool,对于哪个是最好的(意见,要求和操作系统明显不同)肯定没有共识.

Meld是一个流行的跨平台(UNIX/Linux,OSX,Windows)选择,如StackOverflow问题所示,什么是Git最好的可视化合并工具?其中提出梅尔德的答案的答案是其他任何工具的3倍以上.

我的答案将在下面回答以下两个问题:

  • 如何设置和使用Meld作为我的git difftool?
  • 如何设置和使用Meld作为我的git mergetool?

注意:没有必要使用与difftool和mergetool相同的程序,可以为两者设置不同的程序.

git meld

216
推荐指数
5
解决办法
15万
查看次数

Git - 在meld(作为difftool)中所做的更改未保存

我在这篇文章中关注了JörgWMittag 的回答,并将meld配置为我的git中的difftool.现在,我可以使用此命令完美地查看和比较不同分支中文件的差异:

git checkout branch1
git difftool branch1:file.f90 branch2:file.f90
Run Code Online (Sandbox Code Playgroud)

我执行了上面的命令,制作并保存了变化.但是,当我使用以下方法检查文件时:

emacs file.f90
Run Code Online (Sandbox Code Playgroud)

我之前在meld中所做的更改根本没有保存.我不明白为什么会这样; 我必须没有完全正确配置融合作为差异工具.任何人都可以帮我解决这个问题吗?谢谢!!

git git-diff meld

11
推荐指数
3
解决办法
2617
查看次数

找到源从git分支的位置

我有一个git存储库(包含或多或少的项目历史记录)和单独的源代码(只是一个包含少量文件的tarball),它们已经分了一段时间(实际上在2004年或2005年的某个地方).

tarball的来源经历了很多变化,我想从中加入一些变化.现在的问题是 - 如何找出变化的源的实际分支点,以获得最小的差异.

所以我基本上想要的是在git历史中找到位置,其中代码与我拥有的源代码的tarball最相似.我不想手动这样做.

还值得一提的是,更改的源仅包含文件子集,并将一些文件拆分为更多.然而,那里的代码似乎只得到了很小的修改和几个补充.

如果你想自己玩这个,有源的tarball就在这里,Git在Gitorious托管:git://gitorious.org/gammu/mainline.git

git diff search branching-and-merging

8
推荐指数
1
解决办法
616
查看次数

使用meld作为git的difftool,但在一个窗口中列出所有文件

我想使用meld作为git的diff工具.

如果我这样配置.gitconfig:

[difftool]
    prompt = false
[diff]
    tool = meld
Run Code Online (Sandbox Code Playgroud)

并运行命令:$ git difftool
然后git为每个有更改的文件打开一个meld窗口.

但我希望在meld列表框中显示一个包含所有文件的窗口.我已经阅读了一些关于-d--dir-diff选择的内容.
当我尝试:$ git difftool -d
然后打开一个窗口,每个meld部分中有一个目录树,但是包含空目录.
我无法从这里打开我的文件.

在此输入图像描述

有关信息:

$ git --version
git version 1.9.1
$ meld --version
meld 1.8.4
$ lsb_release -d
Description:    Ubuntu 14.04.2 LTS
Run Code Online (Sandbox Code Playgroud)

git svn也在使用,但我不认为这与我的问题有关; 因为据我所知git-svn,我的目录是一个简单的git目录.

相关问题:
查看分支与融合的差异?

git meld git-config difftool git-difftool

6
推荐指数
1
解决办法
8383
查看次数

从git存储库中提取树的最佳方法是什么?

从任意修订版中提取blob(文件)很容易git show,例如:

 git show master:src/hello-world.c > /tmp/hello.c
Run Code Online (Sandbox Code Playgroud)

但是,我想知道在git中是否有类似的方法来提取树(目录)以及递归下的所有内容?

我已经编写了一个小脚本来执行此操作,因此我将其添加为可能的答案.看来这可能是git内置的那种东西,但我只是不知道如何找到它...

git

5
推荐指数
2
解决办法
2249
查看次数

如何使用meld审查远程更改.使用git作为dvcs

我在Ubuntu 10.04上使用GIT作为我的DVCS.只需运行:

meld .
Run Code Online (Sandbox Code Playgroud)

在您当前的工作目录中是非常棒的...显示从您的工作文件夹到上次提交的差异.

我希望能够在其他情况下做同样的事情.假设我想在获取远程分支后查看更改?我该怎么办?我怎样才能看出两个地方分支机构之间的差异......我很想知道是否有一种相对简单的方法可以做到这一点.

谢谢.

git meld

4
推荐指数
1
解决办法
3284
查看次数