相关疑难解决方法(0)

找到git commit来自哪个分支

有没有办法找出一个提交来自哪个分支给它的sha1?

如果您能告诉我如何使用Ruby Grit完成此任务,那么奖励积分.

git

594
推荐指数
9
解决办法
20万
查看次数

如何在推送后压缩git中的提交?

这给出了压缩多个提交的一个很好的解释:

http://git-scm.com/book/en/Git-Branching-Rebasing

但它不适用于已被推送的提交.如何在我的本地和远程回购中压缩最近几次提交?

编辑:当我这样做时git rebase -i origin/master~4 master,保留第一个pick,将其他三个设置为squash,然后退出(通过emacs中的cx cc),我得到:

$ git rebase -i origin/master~4 master
# Not currently on any branch.
nothing to commit (working directory clean)

Could not apply 2f40e2c... Revert "issue 4427: bpf device permission change option added"
$ git rebase -i origin/master~4 master
Interactive rebase already started
Run Code Online (Sandbox Code Playgroud)

其中2f40是pick提交.现在,4个提交中没有一个出现git log.我希望我的编辑器能够重新启动,以便我可以输入提交消息.我究竟做错了什么?

git squash

494
推荐指数
9
解决办法
25万
查看次数

如何在Git中的分支上获取更改

自从当前分支分支以来,在分支上获取提交日志的最佳方法是什么?我目前的解决方案是:

git log $(git merge-base HEAD branch)..branch
Run Code Online (Sandbox Code Playgroud)

git-diff的文档表明它git diff A...B等同于git diff $(git-merge-base A B) B.另一方面,git-rev-parse的文档表明它r1...r2被定义为r1 r2 --not $(git merge-base --all r1 r2).

为什么这些不同?请注意,这git diff HEAD...branch给了我想要的差异,但相应的git log命令给了我更多的东西.

在图片中,假设:

         x---y---z---branch
        /
---a---b---c---d---e---HEAD

我想得到一个包含提交x,y,z的日志.

  • git diff HEAD...branch 给出了这些提交
  • 但是,git log HEAD...branch给出x,y,z,c,d,e.

git branch

257
推荐指数
7
解决办法
19万
查看次数

GIT - 我从哪里开始分支?

我回到了一个旧的项目,我跑了很好的git status去弄清楚发生了什么,我注意到了太多的分支!我想在开始再次工作之前做一些家务,但我不确定哪个分支来自哪个..

EG"branchA"是否来源于"发展"?"branchB"是否来自"master"或"branchA"?

我如何回答上面的示例问题?

git branch git-branch

44
推荐指数
5
解决办法
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 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万
查看次数

Tortoise GIT - 显示合并后在分支中创建的更改

是否可以仅显示提交a和在特定分支中创建的更改?如果我在合并之前这样做,它就有效.如果我将master分支合并到这个分支(使其成为实际),那么我会看到在master分支中进行的提交和合并.有一些方法如何过滤它?

感谢帮助

git git-merge tortoisegit git-log

7
推荐指数
1
解决办法
899
查看次数

标签 统计

git ×7

branch ×3

git-branch ×1

git-diff ×1

git-log ×1

git-merge ×1

github ×1

squash ×1

tortoisegit ×1