亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

?? ??? ??
Guides gitattributes giteveryday gitglossary gitignore gitmodules gitrevisions gittutorial gitworkflows Administration git archive git bundle git clean git filter-branch git fsck git gc git instaweb git reflog Basic Snapshotting git add git commit git diff git mv git reset git rm git status Branching and Merging git branch git checkout git log git merge git mergetool git stash git tag Debugging git bisect git blame git grep Email git am git format-patch git request-pull git send-email External Systems git fast-import git svn Getting and Creating Projects git clone git init Git git annotate git archimport git bisect-lk2009 git check-attr git check-mailmap git check-ref-format git checkout-index git cherry git citool git column git credential git credential-cache git credential-store git cvsexportcommit git cvsimport git cvsserver git diff-files git diff-tree git difftool git fast-export git fetch-pack git fmt-merge-msg git get-tar-commit-id git gui git http-backend git http-fetch git http-push git imap-send git index-pack git interpret-trailers git ls-remote git ls-tree git mailinfo git mailsplit git merge-file git merge-index git merge-one-file git merge-tree git mktag git mktree git name-rev git notes git p4 git pack-objects git pack-redundant git pack-refs git parse-remote git patch-id git prune git prune-packed git quiltimport git receive-pack git remote-ext git remote-fd git remote-testgit git repack git replace git rerere git send-pack git sh-i18n git sh-setup git shell git show-branch git show-index git stripspace git unpack-file git unpack-objects git upload-archive git upload-pack git var git verify-commit git verify-tag git whatchanged git worktree Inspection and Comparison git describe git shortlog git show Miscellaneous api credentials api index gitcli gitcore tutorial gitcredentials gitcvs migration gitdiffcore githooks gitk gitnamespaces gitremote helpers gitrepository layout gitsubmodules gittutorial 2 gitweb gitweb.conf pack format User Manual Patching git apply git cherry-pick git rebase git revert Plumbing Commands git cat-file git check-ignore git commit-tree git count-objects git diff-index git for-each-ref git hash-object git ls-files git merge-base git read-tree git rev-list git rev-parse git show-ref git symbolic-ref git update-index git update-ref git verify-pack git write-tree Server Admin git daemon git update-server-info Setup and Config git git config git help Sharing and Updating Projects git fetch git pull git push git remote git submodule
??

名稱

gitrevisions  - 指定 Git 的修訂和范圍

概要

gitrevisions

描述

許多 Git 命令都將修訂參數(shù)作為參數(shù)。根據(jù)命令的不同,它們表示特定的提交,或者對(duì)于遍歷修訂圖形的命令(例如 git-log [1]),可以提交可訪問的所有提交。對(duì)于遍歷修訂圖的命令,還可以明確指定一系列修訂。

另外,一些 Git 命令(例如 git-show [1])也會(huì)使用修改參數(shù)來表示其他對(duì)象而不是提交,例如 blob (“文件”)或樹(“文件目錄”)。

指定修訂

修訂參數(shù)<rev>通常(但不一定)命名提交對(duì)象。它使用所謂的extended SHA-1語法。以下是拼寫對(duì)象名稱的各種方法。列表附近列出的名稱包含在提交中的樹和 blob 。

<sha1>, e.g. dae86e1950b1277e545cee180551750029cfe735, dae86e

完整的 SHA-1 對(duì)象名稱(40字節(jié)的十六進(jìn)制字符串)或存儲(chǔ)庫中唯一的前導(dǎo)子字符串。例如, dae86e1950b1277e545cee180551750029cfe735 和 dae86e 都會(huì)命名相同的提交對(duì)象,前提是存儲(chǔ)庫中沒有其他對(duì)象,并且其對(duì)象名稱以 dae86e 開頭。

<describeOutput>, e.g. v1.7.4.2-679-g3bee7fb

輸出來自git describe; 即最接近的標(biāo)記,可選地后跟破折號(hào)和多個(gè)提交,后跟短劃線, g和縮寫對(duì)象名稱。

<refname>, e.g. master, heads/master, refs/heads/master

符號(hào)參考名稱。例如,master通常意味著由引用的提交對(duì)象refs/heads/master。如果你碰巧有兩個(gè)heads/mastertags/master,你可以明確地說heads/master要告訴Git的你的意思是哪一個(gè)。當(dāng)模棱兩可時(shí),<refname>通過在以下規(guī)則中進(jìn)行第一次匹配來消除:

  1. 如果$GIT_DIR/<refname>存在,那就是你的意思(這通常只有為HEAD,FETCH_HEAD,ORIG_HEAD,MERGE_HEADCHERRY_PICK_HEAD是有用的);

2. 否則,如果存在refs/<refname>;

3. 否則,如果存在refs/tags/<refname>;

4. 否則,如果存在refs/heads/<refname>;

5. 否則,如果存在refs/remotes/<refname>;

6. 否則,如果存在refs/remotes/<refname>/HEAD。

HEAD命名您在工作樹中基于更改的提交。FETCH_HEAD記錄您在上次git fetch調(diào)用時(shí)從遠(yuǎn)程存儲(chǔ)庫中獲取的分支。ORIG_HEAD是通過命令創(chuàng)建的,這些命令HEAD以激烈的方式移動(dòng)您的行為,記錄HEAD它們在操作之前的位置,以便您可以輕松地將分支的頂端更改回到運(yùn)行之前的狀態(tài)。MERGE_HEAD記錄您在運(yùn)行時(shí)正在合并到您的分支中的提交git merge。CHERRY_PICK_HEAD記錄您在運(yùn)行時(shí)正在挑選的提交git cherry-pick。

請(qǐng)注意,refs/*上述任何情況都可能來自$GIT_DIR/refs目錄或$GIT_DIR/packed-refs文件。盡管未指定 ref 名稱編碼,但首選 UTF-8,因?yàn)槟承┹敵鎏幚砜赡懿捎?UTF-8 中的 ref 名稱。

@

單獨(dú)@是一個(gè)HEAD的捷徑。

<refname>@{<date>}, e.g. master@{yesterday}, HEAD@{5 minutes ago}

后面跟著@帶括號(hào)中的后綴(例如{yesterday},{1 month 2 weeks 3 days 1 hour 1 second ago}{1979-02-26 18:30:00})的后綴指定前一個(gè)時(shí)間點(diǎn)的 ref 的值。后綴只能在 ref 名稱后面使用,并且 ref 必須具有現(xiàn)有的日志($GIT_DIR/logs/<ref>)。請(qǐng)注意,這會(huì)在給定的時(shí)間查看當(dāng)?shù)?/strong>裁判的狀態(tài); 例如master上周您當(dāng)?shù)氐姆种C(jī)構(gòu)。如果您想查看某些時(shí)間內(nèi)提交的內(nèi)容,請(qǐng)參閱--since--until

<refname>@{<n>}, e.g. master@{1}

后綴為@帶括號(hào)的后綴(例如{1},{15})指定了 ref 的第n個(gè)前置值。例如master@{1},masterwhile master@{5}是第5個(gè)先前值的即時(shí)先驗(yàn)值master。該后綴只能在 ref 名稱后面使用,并且 ref 必須具有現(xiàn)有的日志($GIT_DIR/logs/<refname>)。

@{<n>}, e.g. @{1}

您可以使用帶有@空引用部分的構(gòu)造來獲取當(dāng)前分支的 reflog 條目。例如,如果您在分支上,blabla@{1}意味著與之相同blabla@{1}。

@{-<n>}, e.g. @{-1}

構(gòu)造@{-<n>}意味著在當(dāng)前之前檢出的第n個(gè)分支/提交。

<branchname>@{upstream}, e.g. master@{upstream}, @{u}

@{upstream} branchname (簡稱<branchname>@{u})的后綴是指由 branchname 指定的分支設(shè)置為在(使用branch.<name>.remotebranch.<name>.merge)配置的基礎(chǔ)上構(gòu)建的分支。缺少的 branchname 默認(rèn)為當(dāng)前的。當(dāng)用大寫拼寫時(shí),這些后綴也是可接受的,無論大小寫是什么,它們都表示相同的事物。

<branchname>@{push}, e.g. master@{push}, @{push}

如果在檢出@{push}時(shí)git push運(yùn)行branchname(或當(dāng)前HEAD沒有指定branchname),后綴將報(bào)告分支 “where we would push to” 。由于我們的推送目標(biāo)位于遠(yuǎn)程存儲(chǔ)庫中,當(dāng)然,我們會(huì)報(bào)告與該分支對(duì)應(yīng)的本地跟蹤分支(即,某處refs/remotes/)。

這里有一個(gè)例子可以使它更加清晰:

$ git config push.default current
$ git config remote.pushdefault myfork
$ git checkout -b mybranch origin/master

$ git rev-parse --symbolic-full-name @{upstream}refs/remotes/origin/master

$ git rev-parse --symbolic-full-name @{push}refs/remotes/myfork/mybranch

在示例中請(qǐng)注意,我們建立了一個(gè)三角形工作流程,我們從一個(gè)位置拉出并推送到另一個(gè)位置。在非三角形工作流程中,@{upstream}@{push}相同,這里不需要它。

當(dāng)拼寫成大寫字母時(shí),這個(gè)后綴也是可以接受的,無論大小寫意思都是相同的。

<rev>^, e.g. HEAD^, v1.5.1^0

修訂參數(shù)的后綴^表示提交對(duì)象的第一個(gè)父代。^<n>意味著第n個(gè)父母(即<rev>^相當(dāng)于<rev>^1)。作為一個(gè)特殊規(guī)則,<rev>^0意味著提交本身,并在<rev>引用提交對(duì)象的標(biāo)記對(duì)象的對(duì)象名稱時(shí)使用。

<rev>~<n>, e.g. master~3

修訂參數(shù)的后綴~<n>表示作為指定提交對(duì)象的第n代父類的提交對(duì)象,僅在第一個(gè)父代之后。即<rev>~3相當(dāng)于<rev>^^^,同樣相當(dāng)于<rev>^1^1^1。請(qǐng)參閱下面的表格來說明此表格的用法。

<rev>^{<type>}, e.g. v0.99.8^{commit}

后綴^跟在括號(hào)內(nèi)的對(duì)象類型名稱意味著以<rev>遞歸方式解引用對(duì)象,直到<type>找到類型的對(duì)象或者對(duì)象不能被解除引用(在這種情況下,barf)。例如,如果<rev>是 commit-ish,則<rev>^{commit}描述相應(yīng)的提交對(duì)象。同樣,如果<rev>是樹形,則<rev>^{tree}描述相應(yīng)的樹形對(duì)象。<rev>^0是短暫的<rev>^{commit}。

rev^{object}可以用來確定rev存在的對(duì)象的名稱,而不需要rev作為標(biāo)簽,也不需要解引用rev; 因?yàn)橐粋€(gè)標(biāo)簽已經(jīng)是一個(gè)對(duì)象,所以即使一次到達(dá)一個(gè)對(duì)象也不需要解除引用。

rev^{tag}可以用來確保rev識(shí)別現(xiàn)有的標(biāo)簽對(duì)象。

<rev>^{}, e.g. v0.99.8^{}

后綴^跟一個(gè)空括號(hào)對(duì)意味著對(duì)象可以是一個(gè)標(biāo)記,并遞歸地引用該標(biāo)記,直到找到一個(gè)非標(biāo)記對(duì)象。

<rev>^{/<text>}, e.g. HEAD^{/fix nasty bug}

后綴^的修正參數(shù),其次,它包含用斜線為首的文本的一對(duì)括號(hào),是一樣的:/fix nasty bug下面的語法不同之處在于它返回最年輕的匹配提交其是從^可到達(dá)<rev>之前。

:/<text>, e.g. :/fix nasty bug

一個(gè)冒號(hào),跟一個(gè)斜線,后跟一個(gè)文本,命名提交消息與指定正則表達(dá)式匹配的提交。名稱返回可從任何ref訪問的最新匹配提交。正則表達(dá)式可以匹配提交消息的任何部分。要匹配以字符串開頭的消息,可以使用例如:/^foo。特殊序列:/!保留給修飾符以匹配內(nèi)容。:/!-foo執(zhí)行否定匹配,同時(shí):/!!foo匹配文字!字符,然后匹配foo。任何以其他序列開始的序列:/!現(xiàn)在都被保留。

<rev>:<path>, e.g. HEAD:README, :README, master:./README

后綴:后面跟著一個(gè)路徑的名稱是由冒號(hào)前部分命名的 tree-ish 對(duì)象中給定路徑上的 blob 樹。:path(在冒號(hào)前有一個(gè)空白部分)是下面描述的語法的特例:記錄在給定路徑索引處的內(nèi)容。以當(dāng)前工作目錄開始./../相對(duì)于當(dāng)前工作目錄的路徑。給定的路徑將被轉(zhuǎn)換為相對(duì)于工作樹的根目錄。這對(duì)于從具有與工作樹相同樹結(jié)構(gòu)的提交或樹來處理 blob 樹是非常有用的。

:<n>:<path>, e.g. :0:README, :README

一個(gè)冒號(hào),后跟一個(gè)階段號(hào)(0到3)和一個(gè)冒號(hào),后跟一個(gè)路徑,在給定路徑的索引中命名一個(gè) blob 對(duì)象。缺少的階段編號(hào)(以及后面的冒號(hào))命名為0階段編號(hào)。在合并期間,階段1是共同的父類,階段2是目標(biāo)分支的版本(通常是當(dāng)前分支),階段3是來自正在合并的分支的版本。

以下是 Jon Loeliger 的插圖。提交節(jié)點(diǎn) B 和 C 都是提交節(jié)點(diǎn) A 的父節(jié)點(diǎn)。父代提交按從左到右的順序排列。

G   H   I   J
 \ /    \ /
  D   E   F
   \  |  / \
    \ | /   |
     \|/    |
      B     C
       \   /
        \ /
         A
A =      = A^0
B = A^   = A^1     = A~1
C = A^2  = A^2
D = A^^  = A^1^1   = A~2
E = B^2  = A^^2
F = B^3  = A^^3
G = A^^^ = A^1^1^1 = A~3
H = D^2  = B^^2    = A^^^2  = A~2^2
I = F^   = B^3^    = A^^3^
J = F^2  = B^3^2   = A^^3^2

指定范圍

歷史遍歷命令,例如git log對(duì)一組提交進(jìn)行操作,而不僅僅是一次提交。

對(duì)于這些命令,使用上一節(jié)中描述的符號(hào)來指定單個(gè)修訂,意味著reachable來自給定提交的一組提交。

提交的可達(dá)集是提交本身和祖先鏈中的提交。

提交排除項(xiàng)

^<rev> (caret) Notation

要排除提交可達(dá)的提交,使用前綴^符號(hào)。例如,^r1 r2意味著提交可達(dá),r2但不包括從r1(即r1其祖先)可達(dá)的。

虛線表示法

(雙點(diǎn))范圍標(biāo)識(shí)

^r1 r2組操作似乎經(jīng)常有它的簡寫。當(dāng)你有兩個(gè)提交r1并且r2(根據(jù)上面指定版本中所述的語法命名)時(shí),你可以要求提交從r2到達(dá)的提交,但不包括那些從r1可到達(dá)的提交,^r1 r2它可以寫為r1..r2。

(三點(diǎn))對(duì)稱差符號(hào)

類似的符號(hào)r1...r2被稱為和的對(duì)稱差,r1r2定義為r1 r2 --not $(git merge-base --all r1 r2)。它是從r1(左側(cè))或r2(右側(cè))中的任一個(gè)可達(dá)的提交集合,但不是來自兩者。

在這兩個(gè)簡寫符號(hào)中,可以省略一端,并將其默認(rèn)為 HEAD 。例如,origin..是一個(gè)簡寫,origin..HEAD并問“自從我從原始分支分出后,我做了什么?” 同樣,它..origin也是一種速記,HEAD..origin并問道:“我從他們身上分離出來后,起源究竟發(fā)生了什么?” 請(qǐng)注意,..這意味著HEAD..HEAD空白區(qū)域可以從 HEAD 到達(dá)和無法到達(dá)。

Other <rev>^ Parent Shorthand Notations

還有三個(gè)其他的shorthands,對(duì)于合并提交,對(duì)于由提交和它的父代提交形成的集合進(jìn)行命名特別有用。

r1^@符號(hào)表示的所有父代r1。

r1^!表示包括提交r1但排除其所有父代。這個(gè)符號(hào)本身表示單個(gè)提交r1。

<rev>^-<n>符號(hào)包括<rev>但不包括<N>個(gè)親本(即,簡寫<rev>^<n>..<rev>),其中<n>= 1,如果沒有給出。這對(duì)合并提交通常很有用,您可以通過合并提交<commit>^-來獲取合并提交中合并的分支中的所有提交<commit>(包括<commit>它自己)。

雖然<rev>^<n>是關(guān)于指定一個(gè)單一的承諾父母,這三種表示法也考慮其父母。例如,你可以說HEAD^2^@,但是你不能說HEAD^@^2。

修訂范圍摘要

<rev>

包含從<rev>(即<rev>及其祖先)訪問的提交。

^<rev>

排除從<rev>(即<rev>及其祖先)訪問的提交。

<rev1>..<rev2>

包含從<rev2>訪問的提交,但不包括從<rev1>訪問的提交。當(dāng)<rev1>或<rev2>被省略時(shí),它默認(rèn)為HEAD。

<rev1>...<rev2>

包含從<rev1>或<rev2>訪問的提交,但排除可從兩者訪問的提交。當(dāng)<rev1>或<rev2>被省略時(shí),它默認(rèn)為HEAD。

<rev>^@, e.g. HEAD^@

后綴^后跟一個(gè)符號(hào)與列出所有父母的<rev>意思相同(意思是,包括任何可從其父母獲得的東西,但不包括承諾本身)。

<rev>^!, e.g. HEAD^!

后綴^后跟一個(gè)感嘆號(hào)的方式與提交相同<rev>,然后它的所有父母前綴^以排除它們(和它們的祖先)。

<rev>^-<n>, e.g. HEAD^-, HEAD^-2

相當(dāng)于<rev>^<n>..<rev>,<n>如果沒有給出,則= 1。

這里有一些使用上面的 Loeliger 插圖的例子,仔細(xì)地說明了符號(hào)的擴(kuò)展和選擇中的每一步:

Args   Expanded arguments    Selected commits
D                            G H D
D F                          G H I J D F^G D                         H D^D B                         E I J F B^D B C                       E I J F B C
C                            I J F C
B..C   = ^B C                C
B...C  = B ^F C              G H D E B C
B^-    = B^..B= ^B^1 B              E I J F B
C^@    = C^1= F                   I J F
B^@    = B^1 B^2 B^3= D E F               D G H E F I J
C^!    = C ^C^@= C ^C^1= C ^F                C
B^!    = B ^B^@= B ^B^1 ^B^2 ^B^3= B ^D ^E ^F          B
F^! D  = F ^I ^J D           G H D F
?? ??: ?? ??: