相关疑难解决方法(0)

如何在git中找到下一个提交?(参考儿童/儿童)

ref^是指之前ref的提交,之后 获取提交ref怎么样?

例如,如果我git checkout 12345如何检查下一次提交?

谢谢.

PS是的,git是一个DAG节点指针结构树,无论如何. 如何在此之后找到提交?

git version-control

218
推荐指数
9
解决办法
5万
查看次数

检索Git中特定提交的子提交列表

我想知道是否有一种有效的方法来检索给定提交的子节点.尽管在Git引用提交的子进程中讨论了一种方法,但效率非常低.

我认为这将是一个在Git中完成的直接事情,但显然,事实并非如此.

问候.

git

18
推荐指数
1
解决办法
5444
查看次数

如何找到分支的第一个提交?

假设如下图:

A -- B -- C -- D -- E -- F
      \
       G -- H -- I
Run Code Online (Sandbox Code Playgroud)

我想找到G以便能够通过交互式rebase来压缩提交(但仍然在主题分支上保留一个提交),稍后将对其进行检查和合并.我不想仅仅修改整个分支,因为我想保留有分支的信息并将其合并.

(我知道我可以查看历史记录,只使用提交的SHA校验和,但我正在寻找一种方法来实现它,而无需手动挖掘信息或计算提交了多少提交并使用〜来自HEAD那个数字).

编辑:澄清我想要实现的目标:

我想避免这个:

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

而是有类似的东西:

A -- B -- C -- D -- E -- F -- J
      \                      /
       G' -- -- -- -- -- -- -
Run Code Online (Sandbox Code Playgroud)

换句话说,我想将主题分支上的交互式rebase压缩为一个,但仍保留分支并使用常规合并将主题分支中的更改集成到主分支中.

git

9
推荐指数
2
解决办法
4607
查看次数

找到两个提交的第一个普通孩子

           :
           A
T         / \
i        B   C
m        :   :
e        D   E
          \ /
|          F
V          :
Run Code Online (Sandbox Code Playgroud)

git merge-base B E允许查找A两个提交的共同祖先的位置.有没有办法找到F两个分支再次合并的提交?

git merge branch git-branch

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

如何结账提交的孩子?

如何在HEAD 之前引用提交?

例如, HEAD 后面提交1次的提交是HEAD~1.

相对于HEAD,我如何向相反的方向移动?

基本上,我做了git checkout HEAD~13次.现在我想向前推进1次提交,有效地撤消我的最后一次提交git checkout HEAD~1.我怎样才能做到这一点?

我知道提交的一个分支就像一个单独的链表,每个提交只指向它的父.因此,如果遍历提交的孩子是不合理的,我想知道如何在他们之间进行处理.

git git-checkout git-commit git-bash git-branch

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

Git结账HEAD + 1和HEAD-1

在这种情况下:

              v HEAD
     o--o--o--x--o--o (foo)
    /
o--o--o--o--o--o--o (master)
Run Code Online (Sandbox Code Playgroud)

如果我想向后移动一步我输入:

$ git checkout HEAD~1
           v HEAD   
     o--o--o--x--o--o (foo)
    /
o--o--o--o--o--o--o (master)
Run Code Online (Sandbox Code Playgroud)

如果我想向前迈出一步,我会带着这个荒谬的命令:

$ git log --pretty=oneline --all | \
       grep -B1 `git rev-parse HEAD` | \
       head -n1 | egrep -o '[a-f0-9]{20,}' | xargs git checkout

                 v HEAD
     o--o--o--x--o--o (foo)
    /                 
o--o--o--o--o--o--o (master)
Run Code Online (Sandbox Code Playgroud)

我可以做得更好git checkout HEAD+1吗?

我目前在我的实现~/.gitconfig是:

[alias]
    # Move forward/Backward
    fw = "!git log --pretty=oneline --all | grep -B1 `git rev-parse HEAD` | head -n1 | …
Run Code Online (Sandbox Code Playgroud)

git

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

有没有办法引用当前分离的 HEAD 的子提交?

我知道如何将父提交称为HEAD^.

但是是否有可能以类似的方式引用子提交?

git version-control parent-child git-checkout git-revision

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

Git List由Blob提交

说我有一个blob的SHA.我可以去git show并查看blob的内容.是否有可能获得包含该blob的所有提交的列表?

git

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