亚洲国产日韩欧美一区二区三区,精品亚洲国产成人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
テキスト

Name

git-commit  - 記錄對存儲庫的更改

概要

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>…]

描述

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

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

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

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

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

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

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

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

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

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

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

-v   --verbose

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

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

-q   --quiet

Suppress commit summary message.

--dry-run

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

--status

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

--no-status

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

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

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

--no-gpg-sign

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

--

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

<file>…

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

日期格式

GIT_AUTHOR_DATEGIT_COMMITTER_DATE環(huán)境變量和--date選項支持以下日期格式:

Git內(nèi)部格式

這是<unix timestamp> <time zone offset>,在這里<unix timestamp>是從unix新紀(jì)元的秒數(shù)。<time zone offset>是UTC的正數(shù)或負(fù)數(shù)偏移量。例如CET(比UTC早1小時)是+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ī)定的時間和日期2005-04-07T22:13:13。解析器也接受一個空格而不是T字符。

Note

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

例子

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

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

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

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

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

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

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

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

$ git commit

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

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

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

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

$ git commit

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

討論

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

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

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

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

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

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

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

i18n         commitEncoding = ISO-8859-1

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

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

i18n         logOutputEncoding = ISO-8859-1

如果您沒有此配置變量,i18n.commitEncoding則會使用該值。

請注意,在提交對象級別強(qiáng)制使用UTF-8時,我們故意選擇不重新編寫提交日志消息,因為重新編碼為UTF-8不一定是可逆操作。

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

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

Hooks

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

文件

$GIT_DIR/COMMIT_EDITMSG

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

前の記事: 次の記事: