How to get the changes on a branch in Git
自分支从当前分支分支分支以来,获取分支上提交日志的最佳方法是什么?到目前为止,我的解决方案是:
1 | git log $(git merge-base HEAD branch)..branch |
git diff的文档表明
为什么这些不同?请注意,
在图片中,假设:
1 2 3 | 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。
在当前的研究中,
日志就得到含x,y,z),(二)
1 | git cherry branch [newbranch] |
是什么让你问,当你在
我也很喜欢:
1 | git diff --name-status branch [newbranch] |
这是不是是你要求的,但仍然是非常有用的上下文中。
你想要看到的是即将离任的邮件列表。你可以这样使用
1 | git log master..branchName |
或
1 | git log master..branchName --oneline |
"我认为在branchname"是由跟踪分行的"大师"。
同样,你可以使用传入的变化看:
1 | git log branchName..master |
这是一个类似的答案发布时间:一天推在线预览
这些功能将删除你的数据库:
- gbout -即将离任的分支
- 希望能收到你的Git分支
你可以使用这个类。
- 如果在线大师:希望能branch1<--这你会表演什么的在branch1和不在主
- 如果在线大师:gboutbranch1<这将显示你是什么这是不是在主分公司1
这将与任何公司工作。
1 2 3 4 5 6 7 8 9 10 11 12 13 | function parse_git_branch { git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/' } function gbin { echo branch \($1\) has these commits and \($(parse_git_branch)\) does not git log ..$1 --no-merges --format='%h | Author:%an | Date:%ad | %s' --date=local } function gbout { echo branch \($(parse_git_branch)\) has these commits and \($1\) does not git log $1.. --no-merges --format='%h | Author:%an | Date:%ad | %s' --date=local } |
亚历克斯回答类似的几类和ndavis V的,但它们是很不相同的。
当已经在分支中的问题
使用:
1 | git diff master... |
这种结合的几个特点:
- 它的超短裤
- 显示当前的变化
更新:
这应该是一
掷中,P -有看到一些文件。
1 | git log -p master..branch |
别名:make some
1 2 3 | alias gbc="git branch --no-color | sed -e '/^[^\*]/d' -e 's/* \\(.*\\)/\1/'" alias gbl='git log -p master..\`gbc\`' |
国有企业分公司的独特的承诺:
1 | gbl |
给当前的日志从主分断:开叉
如果你对目前在线的高手,看到不同的分支,因为它的日志院:从主分支
1 | git log --cherry-mark --oneline from_branch...to_branch |
但有时它显示(3dots)"+"而不是"="
我发现
1 | git diff <branch_with_changes> <branch_to_compare_to> |
更多有用的,因为你只把这个消息,但整个不同的提交。如果你已经在你想看到的变化分和(例如)是改变了对国有企业要有主,你可以使用:
1 | git diff HEAD master |