相关疑难解决方法(0)

用Git找到分支点?

我有一个存储库,其中包含分支主服务器和A以及两者之间的大量合并活动.当基于master创建分支A时,如何在我的存储库中找到提交?

我的存储库基本上是这样的:

-- X -- A -- B -- C -- D -- F  (master) 
          \     /   \     /
           \   /     \   /
             G -- H -- I -- J  (branch A)
Run Code Online (Sandbox Code Playgroud)

我正在寻找修订版A,这不是git merge-base (--all)找到的.

git branch

420
推荐指数
11
解决办法
16万
查看次数

为什么`git diff`没有调用外部差异工具?

在我的存储库中,如果我输入

$ git diff some-file
Run Code Online (Sandbox Code Playgroud)

要么

$ git difftool some-file
Run Code Online (Sandbox Code Playgroud)

我得到了终端差异显示.我认为这不应该发生,因为我已经设置了一个外部差异工具,如输出所示git config -l:

$ git config -l
user.name=blah blah
user.email=blah blah
http.sslverify=true
diff.external=/home/daniel/bin/git-diff  <--This is the important line
push.default=simple
core.filemode=false
core.editor=gedit
alias.tree=log --all --graph --decorate=short --color --format=format:'%C(bold blue)%h%C(reset) %C(auto)%d%C(reset)
         %C(black)[%cr]%C(reset)  %x09%C(black)%an: %s %C(reset)'
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
remote.origin.url=https://daniel@skynet/git/pyle.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
branch.daniel.remote=origin
branch.daniel.merge=refs/heads/daniel
Run Code Online (Sandbox Code Playgroud)

diff.external行中引用的git-diff文件如下所示

#!/bin/bash

meld $2 $5
Run Code Online (Sandbox Code Playgroud)

为什么不git diff援引融合?

如果我设置git config -l了以下行,我会得到相同的行为:

diff.tool = meld
Run Code Online (Sandbox Code Playgroud)

要么

diff.external = usr/bin/meld
Run Code Online (Sandbox Code Playgroud)

注意 …

git diff meld

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

我怎样才能看到另一个分支从哪个分支分叉?

我的git存储库有三个分支devel,stablecustomers/acme_patches.很久以前,它stable是分叉的devel,并且所有的错误修正都发生在stable.时不时地stable被合并回来devel.customers/acme_patches是一个具有一些客户特定补丁的分支.该分支未合并为develstable.

一些ASCII艺术来说明场景:

            o---o---o          customers/acme_patches?
           /
  o---o---1---o---o---o        stable
 /     \           \
o---o---o---2---o---o---o---o  devel
             \
              o---o---o        customers/acme_patches?

现在我想知道:

customers/acme_patches分叉的是什么分支- devel或者stable?我只是知道它过去曾分离过其中一个,但我不知道哪个.例如它可能已经提交12在上图中.

我一直在玩git log --oneline --graph,gitk但自从customers/acme_patches分开了几百次提交之后,很难按照画出的线条.

是否有一个快速命令(一个小脚本也可以),它可以以某种方式跟随提交customers/acme_patches向后找到第一个提交有两个孩子(叉点),然后确定是否在stable或在中提交devel

在最好的情况下,我可以执行类似的操作(请原谅,我在Windows上):

C:\src> git fork-origin customers/acme_patches
stable
Run Code Online (Sandbox Code Playgroud)

git branch

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

标签 统计

git ×3

branch ×2

diff ×1

meld ×1