相关疑难解决方法(0)

如何仅列出两次提交之间更改的文件名?

我在回购中有一堆提交.我想看到两个提交之间更改的文件列表 - 从SHA1到SHA2.

我应该使用什么命令?

git git-diff git-show

1807
推荐指数
11
解决办法
65万
查看次数

如何樱桃挑选多个提交

我有两个分支.提交a是一个头,而其他有b,c,d,ef之上a.我想移动c,d,ef第一支没有提交b.使用樱桃挑选很容易:结帐第一个分支樱桃 - 一个接一个c地挑选f第二个分支到第一个.但有没有办法挑选所有c- f一个命令?

这是场景的直观描述(感谢JJD):

在此输入图像描述

git git-rebase cherry-pick

779
推荐指数
11
解决办法
39万
查看次数

Git提交范围中双点".."和三点"..."之间有什么区别?

一些Git命令采用提交范围,一个有效语法是用两个点分隔两个提交名称..,另一个语法使用三个点....

两者有什么不同?

git git-diff git-log

380
推荐指数
4
解决办法
6万
查看次数

在提交之间显示差异

我在Ubuntu 10.04(Lucid Lynx)上使用Git .

我已经向我的主人做了一些提交.

但是,我希望得到这些提交之间的区别.所有这些都在我的主分支上.

例如:

commit dj374
made changes

commit y4746
made changes

commit k73ud
made changes
Run Code Online (Sandbox Code Playgroud)

我想得到k73ud和dj374之间的区别.但是,当我做了以下操作时,我无法看到我所做的更改k73ud.

git diff k73ud..dj374 > master.patch
Run Code Online (Sandbox Code Playgroud)

git git-diff

200
推荐指数
8
解决办法
24万
查看次数

我无法理解git rebase --onto的行为

我注意到以下git命令的两个块有不同的行为,我不明白为什么.

我有一个A和B分支,一个提交分歧

---COMMIT--- (A)
\
 --- (B)
Run Code Online (Sandbox Code Playgroud)

我想在最新的A上重新绑定B分支(并且在B分支上有commit1)

---COMMIT--- (A)
         \
          --- (B)
Run Code Online (Sandbox Code Playgroud)

如果我这样做没问题:

checkout B
rebase A
Run Code Online (Sandbox Code Playgroud)

但如果我这样做:

checkout B
rebase --onto B A
Run Code Online (Sandbox Code Playgroud)

它根本不起作用,没有任何反应.我不明白为什么这两种行为是不同的.

Phpstorm git客户端使用第二种语法,所以在我看来完全破坏了,这就是我要求这个语法问题的原因.

git git-rebase

136
推荐指数
7
解决办法
5万
查看次数

Git与Windows上的Meld合并工具

在Linux中,我最喜欢的合并工具是Meld,我使用或配置它与Git一起工作时没有任何问题.然而,在Windows中它是一个不同的故事.

首先,我从我在这里找到的软件包中安装了Meld:https://code.google.com/p/meld-installer/

然后,我配置了我的.gitconfig,以支持Meld作为默认的mergetool

[merge]                                                      
    tool = meld                                                                         

[mergetool "meld"]                                           
    path = C:\\Program Files (x86)\\Meld\\meld\\meld.exe
    keepBackup = false                                   
    trustExitCode = false
Run Code Online (Sandbox Code Playgroud)

所以,当我遇到冲突时,我会做git difftool而Meld确实打开了.但是,Git写入传递给diff工具的文件的路径不正确.例如,即使Git在存储库目录(我称之为git mergetool的位置)中生成BASE,LOCAL和REMOTE文件,Meld也会尝试打开可执行文件目录中的每个文件.

Meld尝试打开C:\ Program Files(x86)\ Meld\meld\roses.txt.LOCAL.2760.txt,而不是打开C:\ repo\roses.txt.LOCAL.2760.txt.

有没有人遇到过这个或知道如何配置Git/Meld在Windows中正常工作?

git meld

83
推荐指数
4
解决办法
6万
查看次数

显示自分支创建以来的提交

有没有办法只看到git log分支创建后添加的提交或其他命令?

usage: git log [<options>] [<since>..<until>] [[--] <path>...]
   or: git show [options] <object>...

    --quiet               suppress diff output
    --source              show source
    --decorate[=...]      decorate options
Run Code Online (Sandbox Code Playgroud)

git git-log

58
推荐指数
4
解决办法
2万
查看次数

如何在从远程分支合并之前检查真正的git diff?

我想检查远程分支和本地分支之间的真正差异.我怎样才能做到这一点?

发出以下命令部分有效,但它也显示了我本地分支的新变化的差异.

git diff remote/branch
Run Code Online (Sandbox Code Playgroud)

git diff

55
推荐指数
3
解决办法
5万
查看次数

如何在git rebase期间通过哈希识别冲突提交?

当我遇到使用合并冲突时git rebase,如何根据提交识别冲突的来源,而不仅仅是文件差异?

我已经知道如何使用(git mergetool或基本)使用或git add之前git rebase --continue,但有时文件之间的差异是不够的:我想看到提交的提交日志和差异,但未能应用于工作树.

我已经读过其他问题,git log --merge如果我使用的话会显示父提交git merge.当我遇到冲突并被告知时,我还是尝试过fatal: --merge without MERGE_HEAD?.

如何识别有问题的提交?

git merge git-rebase

40
推荐指数
4
解决办法
6625
查看次数

git diff显示不够

我想看看master分支和我的功能分支之间的区别.我有很多从主服务器到我的功能分支的东西,并希望看到如果我将我的功能合并到主服务器中将添加的更改.

这是我的情况:

-*--*--*-----*<master>
  \     \     \
   1--*--*--*--2--*<feature>
Run Code Online (Sandbox Code Playgroud)

我的问题是git diff master feature似乎只显示提交号2.我想看到一个github pull请求将显示的差异,我相信这是提交的所有方式1.我注意到git cherry显示我提交的我希望看到的区别为.

谢谢你的建议.

git github git-diff

26
推荐指数
2
解决办法
1万
查看次数

标签 统计

git ×10

git-diff ×4

git-rebase ×3

git-log ×2

cherry-pick ×1

diff ×1

git-show ×1

github ×1

meld ×1

merge ×1