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

Verzeichnis suchen
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
Figuren

Name

git-commit  - 記錄對(duì)存儲(chǔ)庫(kù)的更改

概要

git commit [-a | --interactive | --patch] [-s] [-v] [-u<mode>] [--amend]           [--dry-run] [(-c | -C | --fixup | --squash) <commit>]           [-F <file> | -m <msg>] [--reset-author] [--allow-empty]           [--allow-empty-message] [--no-verify] [-e] [--author=<author>]           [--date=<date>] [--cleanup=<mode>] [--[no-]status]           [-i | -o] [-S[<keyid>]] [--] [<file>…]

描述

在新提交中存儲(chǔ)索引的當(dāng)前內(nèi)容以及來(lái)自描述更改的用戶的日志消息。

要添加的內(nèi)容可以通過(guò)幾種方式指定:

  1. 通過(guò)git add在使用commit命令之前使用增量“增加”索引更改(注意:即使修改過(guò)的文件也必須“添加”);

2. 通過(guò)git rm刪除從工作樹(shù)和索引文件,再次使用前commit命令;

3 . 通過(guò)將文件列為參數(shù)commit(不帶--interactive或--patch開(kāi)關(guān)),在這種情況下,提交將忽略在索引中執(zhí)行的更改,而是記錄列出的文件的當(dāng)前內(nèi)容(必須已知GIT);

4 . 通過(guò)使用帶commit命令的-a開(kāi)關(guān)自動(dòng)從所有已知文件(即索引中已列出的所有文件)中“添加”更改,并自動(dòng)從索引中刪除工作樹(shù)中的“rm”文件,然后執(zhí)行實(shí)際提交;

5. 通過(guò)使用--interactive或--patch開(kāi)關(guān)和commit命令,在完成操作之前,除索引中的內(nèi)容之外,逐個(gè)決定哪些文件或塊應(yīng)該是提交的一部分。請(qǐng)參閱git-add [1]的“交互模式”部分了解如何操作這些模式。該--dry-run選項(xiàng)可用于通過(guò)給出相同的一組參數(shù)(選項(xiàng)和路徑)。如果你提交了一個(gè)提交,然后在那之后立即發(fā)現(xiàn)一個(gè)錯(cuò)誤,你可以用它來(lái)恢復(fù)git reset.Options -a --all告訴命令自動(dòng)對(duì)已被修改和刪除的文件進(jìn)行分段,但沒(méi)有告知Git的新文件不受影響。-p --patch使用交互式補(bǔ)丁選擇界面來(lái)選擇要提交的更改。有關(guān)詳細(xì)信息,請(qǐng)參閱git-add [1]。-C <commit> --reuse-message = <commit>取一個(gè)現(xiàn)有的提交對(duì)象,并在創(chuàng)建提交時(shí)重用日志消息和作者信息(包括時(shí)間戳)。-c <commit> --reedit-message = <commit>好像-C,但是-c調(diào)用了編輯器,以便用戶可以進(jìn)一步編輯提交消息。--fixup = <commit>構(gòu)造一個(gè)提交消息以供使用rebase --autosquash。提交消息將成為指定提交的主題行,其前綴為“fixup!”。有關(guān)詳細(xì)信息,請(qǐng)參閱git-rebase [1]。--squash = <commit>構(gòu)造一個(gè)提交消息以供使用rebase --autosquash。提交消息主題行取自指定的提交,前綴為“squash!”??梢耘c其他提交消息選項(xiàng)(-m/ -c/ -C/ -F)一起使用。有關(guān)詳細(xì)信息,請(qǐng)參閱git-rebase [1]。--reset-author當(dāng)與-C / -c /  - 修改選項(xiàng)一起使用時(shí),或者在沖突櫻桃挑選后提交時(shí),聲明結(jié)果提交的作者現(xiàn)在屬于提交者。這也會(huì)更新作者的時(shí)間戳。 -  short當(dāng)進(jìn)行干運(yùn)行時(shí),以短格式輸出輸出。有關(guān)詳細(xì)信息,請(qǐng)參閱git-status [1]。暗示--dry-run。--branch甚至以短格式顯示分支和跟蹤信息。 - 陶瓷當(dāng)進(jìn)行干式運(yùn)行時(shí),請(qǐng)以陶瓷準(zhǔn)備好的格式輸出。有關(guān)詳細(xì)信息,請(qǐng)參閱git-status [1]。意味著--dry-run。 - 長(zhǎng)時(shí)間運(yùn)行時(shí),以長(zhǎng)格式輸出。意味著--dry-run。-z --null當(dāng)顯示shortporcelain狀態(tài)輸出時(shí),逐字打印文件名并用NUL而不是LF結(jié)束輸入。如果沒(méi)有給出格式,則表示--porcelain輸出格式。如果沒(méi)有這個(gè)-z選項(xiàng),帶有“不尋?!弊址奈募麑凑张渲米兞康恼f(shuō)明引用core.quotePath(請(qǐng)參閱git-config [1])。-F <file> --file = <file>從給定文件中獲取提交消息。使用-從標(biāo)準(zhǔn)輸入讀取消息。--author = <author>覆蓋提交作者。使用標(biāo)準(zhǔn)A U Thor <author@example.com>格式指定明確的作者。否則<author>被認(rèn)為是一個(gè)模式,用于搜索該作者現(xiàn)有的提交(即rev-list --all -i --author = <author>); 然后從第一個(gè)找到的提交中復(fù)制提交作者。--date = <date>覆蓋提交中使用的作者日期。-m <msg> --message = <msg>使用給定的<msg>作為提交消息。如果-m給出了多個(gè)選項(xiàng),則它們的值被連接為單獨(dú)的段落。-t <file> --template = <file>編輯提交信息時(shí),用給定文件中的內(nèi)容啟動(dòng)編輯器。該commit.template配置變量通常用于隱式地將該選項(xiàng)賦予命令。這種機(jī)制可以被那些想要引導(dǎo)參與者提供什么信息以什么順序?qū)懺谙⒅械陌凳镜捻?xiàng)目使用。如果用戶退出編輯器而不編輯消息,則提交將中止。當(dāng)通過(guò)其他方式給出消息時(shí),例如使用-m-F選項(xiàng),這不起作用。-s --signoff在提交日志消息結(jié)尾添加Sign-off-by行。簽名的含義取決于項(xiàng)目,但它通常證明提交者有權(quán)根據(jù)相同的許可證提交此項(xiàng)工作,并同意開(kāi)發(fā)者原始證書(參見(jiàn)http://developercertificate.org/)。了解更多信息)。-n --no-verify這個(gè)選項(xiàng)繞過(guò)預(yù)先提交和提交msg鉤子。另見(jiàn)githooks [5]。--allow-empty通常記錄與其唯一父提交完全相同的提交是一個(gè)錯(cuò)誤,并且該命令阻止您進(jìn)行此類提交。此選項(xiàng)繞過(guò)安全性,主要供外國(guó)SCM接口腳本使用。--allow-empty-message與--allow-empty一樣,此命令主要供外部SCM接口腳本使用。它允許你使用空的提交消息創(chuàng)建一個(gè)提交,而不使用像git-commit-tree [1]這樣的管道命令。--cleanup = <mode>該選項(xiàng)確定在提交之前應(yīng)如何清理提供的提交消息。該<mode>stripwhitespace,verbatimscissors或者default。帶剝離前導(dǎo)和尾隨空行,尾隨空白,評(píng)論和折疊連續(xù)的空行??崭衽c#strip注釋相同,不會(huì)被刪除。逐字不要改變信息。剪刀whitespace除了從下面找到的行(包括下面的行)中的所有內(nèi)容被截?cái)嘀?,如果要編輯的消息都一樣?!?#”可以用core.commentChar自定義。#------------------------> 8 ------------- ----------- default與strip消息編輯相同。否則whitespace。默認(rèn)值可以通過(guò)commit.cleanup配置變量進(jìn)行更改(請(qǐng)參閱git-config [1])。-e --edit從文件中提取的消息-F,命令行-m和從提交對(duì)象中提取的消息-C通常用作未修改的提交日志消息。該選項(xiàng)可讓您進(jìn)一步編輯從這些源獲取的消息。--no-edit在不啟動(dòng)編輯器的情況下使用選定的提交消息。例如,git commit --amend --no-edit修改提交而不更改其提交消息。--amend通過(guò)創(chuàng)建一個(gè)新的提交來(lái)替換當(dāng)前分支的提示。記錄的樹(shù)像往常一樣準(zhǔn)備(包括-i-o選項(xiàng)和顯式pathspec的效果),并且當(dāng)從命令行中未指定其他消息時(shí),將使用原始提交的消息作為起點(diǎn),而不是空消息通過(guò)選項(xiàng),如-m,-F,-c,等新犯有相同的父母和作者作為當(dāng)前一個(gè)(在--reset-author選項(xiàng)可以反制這個(gè))。它是一個(gè)粗略的等價(jià)物:$ git reset --soft HEAD ^ $ ...做一些其他的事情來(lái)得到正確的樹(shù)... $ git commit -c ORIG_HEADbut可以用來(lái)修改一個(gè)合并提交。如果您修改已發(fā)布的提交,您應(yīng)該了解重寫歷史記錄的含義。(請(qǐng)參閱git-rebase [1]中的“從上行鏈路重新啟動(dòng)”部分)。--no-post-rewrite繞過(guò)重寫后掛鉤。-i --include在到目前為止的階段性內(nèi)容提交之前,還要在命令行上給出路徑的內(nèi)容。這通常不是你想要的,除非你正在完成一個(gè)沖突的合并。-o  - 僅通過(guò)獲取命令行中指定路徑的更新工作樹(shù)內(nèi)容來(lái)進(jìn)行提交,無(wú)視任何已經(jīng)為其他路徑上演的內(nèi)容。這是默認(rèn)的操作模式git commit如果在命令行上給出了任何路徑,在這種情況下,該選項(xiàng)可以省略。如果此選項(xiàng)與“一起指定” --amend,則不需要指定任何路徑,可以使用這些路徑修改上次提交而不提交已經(jīng)執(zhí)行的更改。如果與--allow-empty路徑一起使用也不是必需的,并且將創(chuàng)建一個(gè)空的提交。-u <mode> --untracked-files = <mode>顯示未跟蹤的文件。模式參數(shù)是可選的(默認(rèn)為all),用于指定處理未跟蹤的文件; 當(dāng)-u未使用時(shí),默認(rèn)值是normal,即顯示未跟蹤的文件和目錄。可能的選項(xiàng)是:

  1. no  - 不顯示未跟蹤的文件

  • normal  - 顯示未跟蹤的文件和目錄

  • all  - 還顯示未跟蹤目錄中的單個(gè)文件。

可以使用git-config [1]中記錄的status.showUntrackedFiles配置變量來(lái)更改默認(rèn)值。

-v   --verbose

顯示HEAD提交與提交消息模板底部提交的內(nèi)容之間的統(tǒng)一差異,以幫助用戶通過(guò)提醒提交具有哪些更改來(lái)描述提交。請(qǐng)注意,此差異輸出的前面沒(méi)有前綴#。這個(gè)差異不會(huì)是提交消息的一部分。請(qǐng)參閱commit.verbosegit-config [1]中的配置變量。

如果指定了兩次,則另外顯示將提交的內(nèi)容和工作文件之間的統(tǒng)一差異,即對(duì)被跟蹤文件的未分離更改。

-q   --quiet

Suppress commit summary message.

--dry-run

不要?jiǎng)?chuàng)建提交,而是顯示要提交的路徑列表,包含未提交的本地更改的路徑以及未跟蹤的路徑。

--status

使用編輯器準(zhǔn)備提交消息時(shí),在提交消息模板中包含git-status [1]的輸出。默認(rèn)為打開(kāi),但可用于覆蓋配置變量commit.status。

--no-status

使用編輯器準(zhǔn)備默認(rèn)提交消息時(shí),不要在提交消息模板中包含git-status [1]的輸出。

-S<keyid>   --gpg-sign=<keyid>

GPG標(biāo)志提交keyid參數(shù)是可選的,并且默認(rèn)為提交者身份; 如果指定,它必須粘貼到選項(xiàng)沒(méi)有空格。

--no-gpg-sign

commit.gpgSign設(shè)置為強(qiáng)制每個(gè)提交進(jìn)行簽名的計(jì)數(shù)器配置變量。

--

不要將更多的參數(shù)解釋為選項(xiàng)。

<file>…

當(dāng)在命令行上給出文件時(shí),命令將提交指定文件的內(nèi)容,而不記錄已經(jīng)執(zhí)行的更改。這些文件的內(nèi)容也將在下一次提交之前進(jìn)行演示。

日期格式

GIT_AUTHOR_DATE,GIT_COMMITTER_DATE環(huán)境變量和--date選項(xiàng)支持以下日期格式:

Git內(nèi)部格式

這是<unix timestamp> <time zone offset>,在這里<unix timestamp>是從unix新紀(jì)元的秒數(shù)。<time zone offset>是UTC的正數(shù)或負(fù)數(shù)偏移量。例如CET(比UTC早1小時(shí))是+0100。

RFC 2822

例如,RFC 2822所描述的標(biāo)準(zhǔn)電子郵件格式Thu, 07 Apr 2005 22:13:13 +0200。

ISO 8601

例如,ISO 8601標(biāo)準(zhǔn)規(guī)定的時(shí)間和日期2005-04-07T22:13:13。解析器也接受一個(gè)空格而不是T字符。

Note

In addition, the date part is accepted in the following formats: YYYY.MM.DD, MM/DD/YYYY and DD.MM.YYYY.

例子

在錄制自己的作品時(shí),工作樹(shù)中修改文件的內(nèi)容將臨時(shí)存儲(chǔ)到一個(gè)名為“index”的臨時(shí)區(qū)域中git add。一個(gè)文件只能在索引中恢復(fù),但不能在工作樹(shù)中git reset HEAD -- <file>恢復(fù)為最后一次提交的文件,這會(huì)有效地恢復(fù)git add并阻止對(duì)該文件的更改參與下一次提交。在使用這些命令構(gòu)建要逐步提交的狀態(tài)之后,git commit(不帶任何路徑名參數(shù))用于記錄迄今為止已執(zhí)行的操作。這是命令的最基本形式。一個(gè)例子:

$ edit hello.c
$ git rm goodbye.c
$ git add hello.c
$ git commit

不要在每個(gè)單獨(dú)更改之后登臺(tái)文件,而是git commit要注意對(duì)在工作樹(shù)中跟蹤內(nèi)容的文件進(jìn)行更改,git addgit rm為您做相應(yīng)的工作。也就是說(shuō),如果工作樹(shù)中沒(méi)有其他更改,則此示例與前面的示例執(zhí)行的操作相同:

$ edit hello.c
$ rm goodbye.c
$ git commit -a

命令git commit -a首先查看您的工作樹(shù),注意到您修改了hello.c并刪除了goodbye.c,并執(zhí)行了必要的操作git addgit rm為您執(zhí)行。

在更改許多文件之后,您可以通過(guò)提供路徑名來(lái)更改記錄更改的順序git commit。當(dāng)給出路徑名時(shí),命令進(jìn)行提交,只記錄對(duì)指定路徑所做的更改:

$ edit hello.c hello.h
$ git add hello.c hello.h
$ edit Makefile
$ git commit Makefile

這使得提交記錄修改Makefile。所做的更改已進(jìn)行hello.c并且hello.h未包含在結(jié)果提交中。然而,他們的變化并沒(méi)有失去 - 他們?nèi)匀簧涎荩皇潜蛔柚?。在上述順序之后,如果你這樣做:

$ git commit

第二次提交會(huì)記錄更改hello.c并按hello.h預(yù)期進(jìn)行。

合并后(由git mergeor 發(fā)起git pull)由于沖突而停止,干凈合并的路徑已經(jīng)分階段為您提交,并且發(fā)生沖突的路徑處于未合并狀態(tài)。您必須首先檢查哪些路徑與git status您的工作樹(shù)中的手動(dòng)修復(fù)沖突,然后像往常一樣分階段執(zhí)行結(jié)果git add

$ git status | grep unmerged
unmerged: hello.c
$ edit hello.c
$ git add hello.c

解決沖突并分級(jí)后,git ls-files -u會(huì)停止提及沖突的路徑。完成后,運(yùn)行git commit以最終記錄合并:

$ git commit

與記錄您自己的更改的情況一樣,您可以使用-a選項(xiàng)來(lái)保存輸入。一個(gè)區(qū)別是,在合并解析期間,不能使用git commit路徑名來(lái)更改提交更改的順序,因?yàn)楹喜?yīng)該記錄為單個(gè)提交。事實(shí)上,命令在給定路徑名時(shí)拒絕運(yùn)行(但請(qǐng)參閱-i選項(xiàng))。

討論

雖然不是必需的,但最好先用一個(gè)簡(jiǎn)短的(少于50個(gè)字符)行來(lái)概述變化,然后再用空行和更徹底的描述來(lái)開(kāi)始提交消息。直到提交消息中的第一個(gè)空行的文本被視為提交標(biāo)題,并且該標(biāo)題在整個(gè)Git中使用。例如,git-format-patch [1]將提交轉(zhuǎn)換為電子郵件,并使用主題行上的標(biāo)題和正文中的其余提交。

Git在某種程度上是字符編碼不可知的。

  • blob對(duì)象的內(nèi)容是未解釋的字節(jié)序列。在核心層面沒(méi)有編碼翻譯。

  • 路徑名以UTF-8標(biāo)準(zhǔn)化形式C編碼。這適用于樹(shù)對(duì)象,索引文件,ref名稱,以及命令行參數(shù),環(huán)境變量和配置文件中的路徑名.git/config(請(qǐng)參閱git-config [1]) ,gitignore [5],gitattributes [5]和gitmodules [5])。

請(qǐng)注意,核心級(jí)Git將路徑名視為非NUL字節(jié)序列,不存在路徑名編碼轉(zhuǎn)換(Mac和Windows除外)。因此,即使在使用傳統(tǒng)擴(kuò)展ASCII編碼的平臺(tái)和文件系統(tǒng)上,使用非ASCII路徑名也可以工作。但是,在這些系統(tǒng)上創(chuàng)建的存儲(chǔ)庫(kù)在基于UTF-8的系統(tǒng)(例如Linux,Mac,Windows)上無(wú)法正常工作,反之亦然。此外,許多基于Git的工具只是假設(shè)路徑名稱為UTF-8,并且無(wú)法正確顯示其他編碼。

  • 提交日志消息通常以UTF-8編碼,但也支持其他擴(kuò)展ASCII編碼。這包括ISO-8859-x,CP125x等等,但是notUTF-16/32,EBCDIC和CJK多字節(jié)編碼(GBK,Shift-JIS,Big5,EUC-x,CP9xx等等)雖然我們鼓勵(lì)提交日志消息以UTF-8編碼,核心和Git瓷器都不會(huì)強(qiáng)制項(xiàng)目上使用UTF-8。如果特定項(xiàng)目的所有參與者發(fā)現(xiàn)使用遺留編碼更方便,Git不會(huì)禁止它。但是,有幾件事要牢記。

  • git commit并且git commit-tree如果提交給它的提交日志消息看起來(lái)不像一個(gè)有效的UTF-8字符串,則會(huì)發(fā)出警告,除非您明確聲明您的項(xiàng)目使用了舊版編碼。說(shuō)這個(gè)的方法是在.git/config文件中使用i18n.commitencoding ,如下所示:

i18n         commitEncoding = ISO-8859-1

使用上述設(shè)置創(chuàng)建的提交對(duì)象記錄i18n.commitEncodingencoding標(biāo)題中的值。這是為了幫助稍后看到他們的其他人。缺少這個(gè)頭部意味著提交日志消息以UTF-8編碼。

  1. git log,git showgit blameencoding一個(gè)提交對(duì)象的報(bào)頭,并且嘗試除非另有規(guī)定重新代碼日志消息轉(zhuǎn)換成UTF-8。您可以i18n.logOutputEncoding.git/config文件中指定所需的輸出編碼,如下所示:

i18n         logOutputEncoding = ISO-8859-1

如果您沒(méi)有此配置變量,i18n.commitEncoding則會(huì)使用該值。

請(qǐng)注意,在提交對(duì)象級(jí)別強(qiáng)制使用UTF-8時(shí),我們故意選擇不重新編寫提交日志消息,因?yàn)橹匦戮幋a為UTF-8不一定是可逆操作。

環(huán)境和配置變量

用于編輯提交日志消息的編輯器將從GIT_EDITOR環(huán)境變量,core.editor配置變量,VISUAL環(huán)境變量或EDITOR環(huán)境變量(按此順序)中進(jìn)行選擇。有關(guān)詳細(xì)信息,請(qǐng)參閱git-var [1]。

Hooks

這個(gè)命令可以運(yùn)行commit-msg,prepare-commit-msg,pre-commitpost-commitpost-rewritehooks。有關(guān)更多信息,請(qǐng)參閱githooks [5]。

文件

$GIT_DIR/COMMIT_EDITMSG

文件包含正在進(jìn)行的提交的提交消息。如果git commit在創(chuàng)建提交之前由于錯(cuò)誤而退出,則用戶提供的任何提交消息(例如,在編輯器會(huì)話中)將在此文件中可用,但將在下一次調(diào)用時(shí)被覆蓋git commit。

Vorheriger Artikel: N?chster Artikel: