- GRAYBYTE UNDETECTABLE CODES -

403Webshell
Server IP : 184.154.167.98  /  Your IP : 18.191.103.29
Web Server : Apache
System : Linux pink.dnsnetservice.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64
User : puertode ( 1767)
PHP Version : 7.2.34
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/doc/git/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/doc/git//git-cherry.txt
git-cherry(1)
=============

NAME
----
git-cherry - Find commits yet to be applied to upstream

SYNOPSIS
--------
[verse]
'git cherry' [-v] [<upstream> [<head> [<limit>]]]

DESCRIPTION
-----------
Determine whether there are commits in `<head>..<upstream>` that are
equivalent to those in the range `<limit>..<head>`.

The equivalence test is based on the diff, after removing whitespace
and line numbers.  git-cherry therefore detects when commits have been
"copied" by means of linkgit:git-cherry-pick[1], linkgit:git-am[1] or
linkgit:git-rebase[1].

Outputs the SHA1 of every commit in `<limit>..<head>`, prefixed with
`-` for commits that have an equivalent in <upstream>, and `+` for
commits that do not.

OPTIONS
-------
-v::
	Show the commit subjects next to the SHA1s.

<upstream>::
	Upstream branch to search for equivalent commits.
	Defaults to the upstream branch of HEAD.

<head>::
	Working branch; defaults to HEAD.

<limit>::
	Do not report commits up to (and including) limit.

EXAMPLES
--------

Patch workflows
~~~~~~~~~~~~~~~

git-cherry is frequently used in patch-based workflows (see
linkgit:gitworkflows[7]) to determine if a series of patches has been
applied by the upstream maintainer.  In such a workflow you might
create and send a topic branch like this:

------------
$ git checkout -b topic origin/master
# work and create some commits
$ git format-patch origin/master
$ git send-email ... 00*
------------

Later, you can see whether your changes have been applied by saying
(still on `topic`):

------------
$ git fetch  # update your notion of origin/master
$ git cherry -v
------------

Concrete example
~~~~~~~~~~~~~~~~

In a situation where topic consisted of three commits, and the
maintainer applied two of them, the situation might look like:

------------
$ git log --graph --oneline --decorate --boundary origin/master...topic
* 7654321 (origin/master) upstream tip commit
[... snip some other commits ...]
* cccc111 cherry-pick of C
* aaaa111 cherry-pick of A
[... snip a lot more that has happened ...]
| * cccc000 (topic) commit C
| * bbbb000 commit B
| * aaaa000 commit A
|/
o 1234567 branch point
------------

In such cases, git-cherry shows a concise summary of what has yet to
be applied:

------------
$ git cherry origin/master topic
- cccc000... commit C
+ bbbb000... commit B
- aaaa000... commit A
------------

Here, we see that the commits A and C (marked with `-`) can be
dropped from your `topic` branch when you rebase it on top of
`origin/master`, while the commit B (marked with `+`) still needs to
be kept so that it will be sent to be applied to `origin/master`.


Using a limit
~~~~~~~~~~~~~

The optional <limit> is useful in cases where your topic is based on
other work that is not in upstream.  Expanding on the previous
example, this might look like:

------------
$ git log --graph --oneline --decorate --boundary origin/master...topic
* 7654321 (origin/master) upstream tip commit
[... snip some other commits ...]
* cccc111 cherry-pick of C
* aaaa111 cherry-pick of A
[... snip a lot more that has happened ...]
| * cccc000 (topic) commit C
| * bbbb000 commit B
| * aaaa000 commit A
| * 0000fff (base) unpublished stuff F
[... snip ...]
| * 0000aaa unpublished stuff A
|/
o 1234567 merge-base between upstream and topic
------------

By specifying `base` as the limit, you can avoid listing commits
between `base` and `topic`:

------------
$ git cherry origin/master topic base
- cccc000... commit C
+ bbbb000... commit B
- aaaa000... commit A
------------


SEE ALSO
--------
linkgit:git-patch-id[1]

GIT
---
Part of the linkgit:git[1] suite

Youez - 2016 - github.com/yon3zu
LinuXploit