git - 如何查看有关Git的特定提交

我使用git review命令发送了一个提交(名为“提交”)给review(gerrit)。
现在,我做了一个新的提交(名为“b commit”),我也想将其发送到review,但我不想重新发送“a commit”。彼此之间没有依赖关系。
如何向gerrit发送特定提交的评审?是的。
更新:

$ git add --all


$ git status

# On branch delete_role
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   path/to/file.ext


$ git status

# On branch delete_role
nothing to commit (working directory clean)


$ git branch

*delete_role
 master


$ git log --graph --decorate --oneline -n13

* 531bd84 (HEAD, delete_role) commit 3
* df68f1a (master) commit 2
* 4ce2d8d commit 1
*   6751c7d (origin/master, origin/HEAD, gerrit/master)

commit“df68f1a”和“4ce2d8d”是依赖的,它们是在以前的git review命令中发送的,但是commit“531bd84”属于一个新分支(删除角色),因为这是一个新问题。
$ git review

You have more than one commit that you are about to submit.
The outstanding commits are:

531bd84 (HEAD, delete_role) commit 3
df68f1a (master) commit 2
4ce2d8d commit 1

我只想把“531BD84”提交给Gerrit,而不是其他提交。

最佳答案

在新分支中创建b commit。
在这个分支上使用git review时,它只会将这个分支的内容推送到gerrit。
这样,gerrit就不会认为commit b需要commit a,如果需要,可以在commit a之前将commit b合并到工作分支
如果你的历史是这样的:

...-old(merged)-A(waiting for review)

你想做的是:
...-old(merged)-A(waiting for review) <-master branch
       \B(new commit)                 <-new branch

然后,如果您在branch b上,并且使用git review,那么除了commit b之外,它不会推送任何东西
如果你遇到这种情况:
...-old(merged)-A(waiting for review)-B

,要实现我们想要的配置,您要做的是:
git log (Note the SHA1 of your B commit)
git reset HEAD^^^ (you go back in detched state three commits before, before the two you don't want to send)
git checkout -b Breview (you create a new branch there)
git cherry-pick +the SHA1 you noted (you copy your B commit on your new branch)
git checkout master (you return on your branch with the two commit)
git reset HEAD^--hard (you delete the B commit from this branch where you don't need it)

现在,您实现了所需的配置,要推送b提交,只需执行以下操作:
git checkout Breview
git review

它只会提交你的B承诺

本文翻译自 https://stackoverflow.com/questions/19768959/

网站遵循 CC BY-SA 4.0 协议,转载或引用请注明出处。

标签 git gerrit git-commit git-review


相关文章:

git - 如何不使用git-stash保存进行中的工作?

git - 如何忽略TortoiseGit的空白更改

git - gitignore不会忽略文件夹

git - Gerrit合并两次提交

git - 为什么过去应该创建git commit的可能情况是什么?

git - 如何提交单个暂存文件?

git - git如何处理现在已删除的分支中以前的非快进合并?

git - Git GUI,Git Bash,Git CMD之间的区别

ssl - 由nginx代理的gerrit仅在“托管”在顶层目录中时有效

java - Gerrit移除Need Authentic +1(已验证)