?
This document uses PHP Chinese website manual Release
git-p4 - 從 Perforce 存儲(chǔ)庫導(dǎo)入和提交
git p4 clone [<sync options>] [<clone options>] <p4 depot path>… git p4 sync [<sync options>] [<p4 depot path>…]git p4 rebase git p4 submit [<submit options>] [<master branch name>]
該命令提供了一種使用 Git 與 p4 存儲(chǔ)庫交互的方式。
使用現(xiàn)有的 p4 存儲(chǔ)庫創(chuàng)建一個(gè)新的 Git 存儲(chǔ)庫git p4 clone
,并為其提供一個(gè)或多個(gè) p4 depot 路徑。將 p4 更改中的新提交合并到git p4 sync
。該sync
命令還用于包含來自其他 p4 軟件倉庫路徑的新分支。使用提交 Git 回到 p4 git p4 submit
。該命令git p4 rebase
執(zhí)行 sync 并將當(dāng)前分支重新綁定到更新的 p4 遠(yuǎn)程分支上。
克隆存儲(chǔ)庫:$ git p4 clone // depot / path / project
在新創(chuàng)建的 Git 倉庫中做一些工作:$ cd project $ vi foo.h $ git commit -a -m“edited foo.h”
使用 p4 的最近更改更新 Git 存儲(chǔ)庫,重新定位頂層的工作:$ git p4 rebase
提交你的提交到 p4:$ git p4 submit
通常git p4 clone
用于從現(xiàn)有的 p4 存儲(chǔ)庫創(chuàng)建新的 Git 目錄:
$ git p4 clone //depot/path/project
這個(gè):
在名為的子目錄中創(chuàng)建一個(gè)空的 Git 存儲(chǔ)庫project
。
將來自給定 p4 倉庫路徑的頭部修訂版的完整內(nèi)容導(dǎo)入到 Git 分支中的單個(gè)提交中refs/remotes/p4/master
。
master
從這個(gè)遠(yuǎn)程創(chuàng)建一個(gè)本地分支并將其檢出。
要在 Git 中重現(xiàn)整個(gè) p4 歷史記錄,請(qǐng)@all
在軟件倉庫路徑中使用修飾符:
$ git p4 clone //depot/path/project@all
隨著 p4 存儲(chǔ)庫中的開發(fā)繼續(xù),可以使用以下方法將這些更改包含在 Git 存儲(chǔ)庫中:
$ git p4 sync
該命令在 p4 中查找新的更改,并將它們作為 Git 提交導(dǎo)入。
P4 存儲(chǔ)庫也可以使用以下方式添加到現(xiàn)有的 Git 存儲(chǔ)庫git p4 sync
:
$ mkdir repo-git $ cd repo-git $ git init $ git p4 sync //path/in/your/perforce/depot
這會(huì)將指定的軟件倉庫導(dǎo)入到refs/remotes/p4/master
現(xiàn)有的 Git 倉庫中。該--branch
選項(xiàng)可用于指定用于 p4 內(nèi)容的不同分支。
如果一個(gè) Git 倉庫包含分支refs/remotes/origin/p4
,那么它們將在第一次被提取和咨詢git p4 sync
。由于從 p4 直接導(dǎo)入比從 Git 遠(yuǎn)程獲取更改要慢得多,所以這在多開發(fā)人員環(huán)境中很有用。
如果有多個(gè)分支,git p4 sync
則會(huì)自動(dòng)使用“ 分支檢測”算法嘗試將新更改劃分到正確的分支中。這可以通過--branch
指定只更新一個(gè)分支的選項(xiàng)來覆蓋。
一個(gè)常見的工作模式是從 p4 倉庫獲取最新的更改,并將它們與本地未提交的更改合并。通常,p4 存儲(chǔ)庫是所有代碼的最終位置,因此重定位工作流程是有意義的。這個(gè)命令git p4 sync
之后會(huì)git rebase
在更新的 p4 更改之前移動(dòng)本地提交。
$ git p4 rebase
將來自 Git 存儲(chǔ)庫的更改提交回 p4 存儲(chǔ)庫需要單獨(dú)的 p4 客戶端工作區(qū)。這應(yīng)該使用P4CLIENT
環(huán)境變量或 Git 配置變量來指定git-p4.client
。p4 客戶端必須存在,但如果客戶端根目錄尚不存在,它將被創(chuàng)建并填充。
要提交當(dāng)前 Git 分支但不在分支中的所有更改p4/master
,請(qǐng)使用:
$ git p4 submit
要指定除當(dāng)前分支以外的分支,請(qǐng)使用:
$ git p4 submit topicbranch
上游引用通常是refs/remotes/p4/master
,但可以使用--origin=
命令行選項(xiàng)覆蓋。
p4 的更改將在用戶調(diào)用時(shí)創(chuàng)建git p4 submit
。該--preserve-user
選項(xiàng)將根據(jù) Git 提交的作者來修改所有權(quán)。此選項(xiàng)需要 p4 中的管理員權(quán)限,可以使用該權(quán)限授予p4 protect
。
除克隆以外的所有命令均接受這些選項(xiàng)
--git-dir <dir>
設(shè)置GIT_DIR
環(huán)境變量。見 git [1] 。
-v --verbose
提供更多進(jìn)度信息。
這些選項(xiàng)可以在初始clone
和后續(xù)sync
操作中使用。
--branch <ref>
將更改導(dǎo)入 <ref> 而不是 refs / remotes / p4 / master 。如果 <ref> 以 refs /開頭,則按原樣使用。否則,如果它不以 p4 /開頭,則添加該前綴。
默認(rèn)情況下,不以 refs /開始的 <ref> 被視為遠(yuǎn)程跟蹤分支的名稱(在 refs / remotes / 下)。這種行為可以使用 --import-local 選項(xiàng)來修改。
默認(rèn)的 <ref> 是“master”。
本示例將新的遠(yuǎn)程 “p4 / proj2” 導(dǎo)入到現(xiàn)有的 Git 存儲(chǔ)庫中:
$ git init $ git p4 sync --branch=refs/remotes/p4/proj2 //depot/proj2
--detect-branches
使用分支檢測算法在 p4 中查找新路徑。它在“分支檢測”中記錄如下。
--changesfile <file>
準(zhǔn)確導(dǎo)入列出的 p4 更改編號(hào)file
,每行一個(gè)。通常,git p4
檢查當(dāng)前 p4 存儲(chǔ)庫狀態(tài)并檢測它應(yīng)導(dǎo)入的更改。
--silent
不要打印任何進(jìn)度信息。
--detect-labels
查詢與倉庫路徑關(guān)聯(lián)的標(biāo)簽的 p4 ,并將它們作為標(biāo)簽添加到 Git 中。由于只有與新的更改列表相關(guān)的導(dǎo)入標(biāo)簽才有用。已過時(shí)。
--import-labels
將標(biāo)簽從 p4 導(dǎo)入到 Git 中。
--import-local
默認(rèn)情況下,p4 分支存儲(chǔ)在refs/remotes/p4/
其中,它們將被 git-branch [1] 和其他命令視為遠(yuǎn)程跟蹤分支。這個(gè)選項(xiàng)代替了 p4 分支refs/heads/p4/
。請(qǐng)注意,未來的同步操作也必須指定--import-local
,以便他們可以在 refs / heads 中找到 p4 分支。
--max-changes <n>
導(dǎo)入大多數(shù)n
變化,而不是包含在給定修訂說明符中的整個(gè)變化范圍。一個(gè)典型的用法將被@all
用作修訂說明符,然后用于--max-changes 1000
僅導(dǎo)入最后的1000個(gè)修訂版本而不是整個(gè)修訂歷史記錄。
--changes-block-size <n>
將修訂說明符(例如,@all
轉(zhuǎn)換為特定更改編號(hào)列表)時(shí)使用的內(nèi)部塊大小。不是使用單個(gè)調(diào)用來p4 changes
查找轉(zhuǎn)換的完整更改列表,而是調(diào)用一系列調(diào)用p4 changes -m
,其中每個(gè)調(diào)用都請(qǐng)求一個(gè)給定大小的更改塊。默認(rèn)塊大小為500,通常應(yīng)該是合適的。
--keep-path
缺省情況下,文件名從 p4 軟件倉庫路徑到 Git 的映射涉及刪除整個(gè)軟件倉庫路徑。使用此選項(xiàng),完整的 p4 倉庫路徑將保留在 Git 中。例如,//depot/main/foo/bar.c
從中導(dǎo)入的路徑//depot/main/
變?yōu)?code>foo/bar.c。與此同時(shí)--keep-path
,Git 路徑是depot/main/foo/bar.c
。
--use-client-spec
使用客戶端規(guī)格在 p4 中查找感興趣的文件列表。請(qǐng)參閱下面的“客戶端規(guī)格”部分。
-/ <path>
克隆或同步時(shí)排除選定的軟件倉庫路徑。
這些選項(xiàng)可以在初始階段clone
與上述sync
選項(xiàng)一起使用。
--destination <directory>
在哪里創(chuàng)建 Git 存儲(chǔ)庫。如果未提供,則使用 p4 depot 路徑中的最后一個(gè)組件創(chuàng)建新目錄。
--bare
執(zhí)行克隆空項(xiàng)。參見 git-clone [1] 。
這些選項(xiàng)可以用來修改git p4 submit
行為。
--origin <commit>
確認(rèn)提交到 p4 的上游位置。默認(rèn)情況下,這是可從中獲得的最新 p4 提交HEAD
。
-M
檢測重命名。參見 git-diff [1] 。重命名將使用顯式move
操作在 p4 中表示。沒有對(duì)應(yīng)的選項(xiàng)來檢測副本,但移動(dòng)和副本都有變量。
--preserve-user
在提交給 p4 之前,重新創(chuàng)建 p4 更改。該選項(xiàng)需要 p4 管理員權(quán)限。
--export-labels
從 Git 導(dǎo)出標(biāo)簽作為 p4 標(biāo)簽。在 Git 中找到的標(biāo)簽應(yīng)用于 perforce 工作目錄。
-n --dry-run
顯示將提交給 p4 的提交; 不要在 Git 或 p4 中更改狀態(tài)。
--prepare-p4-only
將提交應(yīng)用于 p4 工作區(qū),在 p4 中打開,添加和刪除文件,就像正常的提交操作一樣。不要發(fā)布最終的“ p4 提交”,而是要打印一條關(guān)于如何手動(dòng)提交或回復(fù)的消息。該選項(xiàng)總是在第一個(gè)(最早的)提交之后停止。Git 標(biāo)簽不會(huì)導(dǎo)出到 p4 。
--shelve
而不是提交創(chuàng)建一系列擱置的更改表。創(chuàng)建每個(gè)擱置后,相關(guān)文件將被還原/刪除。如果您有多個(gè)提交,則會(huì)創(chuàng)建多個(gè)擱板。
--update-shelve CHANGELIST
使用此提交更新現(xiàn)有的擱置更改列表。意味著 --shelve。
--conflict=(ask|skip|quit)
將提交應(yīng)用于 p4 時(shí)可能會(huì)發(fā)生沖突。發(fā)生這種情況時(shí),默認(rèn)行為(“詢問”)是提示是否跳過此提交并繼續(xù)或退出。此選項(xiàng)可用于繞過提示,導(dǎo)致提交沖突自動(dòng)跳過,或退出嘗試提交而不提示。
--branch <branch>
提交后,同步該命名分支,而不是默認(rèn)的 p4 / master 。有關(guān)更多信息,請(qǐng)參閱上面的“同步選項(xiàng)”一節(jié)。
這些選項(xiàng)可以用來修改git p4 rebase
行為。
--import-labels
導(dǎo)入 p4 標(biāo)簽。
p4 的貯庫路徑參數(shù)git p4 sync
和git p4 clone
可以是一個(gè)或多個(gè)空格分隔 P4 貯庫的路徑,與在端部的可選 P4 修訂說明符:
"//depot/my/project"
#head
在樹下的更改中導(dǎo)入一個(gè)具有所有文件的提交。
"//depot/my/project@all"
為該軟件倉庫路徑的歷史記錄中的每個(gè)更改導(dǎo)入一個(gè)提交。
"//depot/my/project@1,6"
只導(dǎo)入更改1到6。
"//depot/proj1@all //depot/proj2@all"
將來自兩個(gè)指定軟件倉庫路徑的所有更改導(dǎo)入單個(gè)存儲(chǔ)庫。只包含這些目錄下的文件。每個(gè) “proj1” 和 “proj2” 在 Git 中都沒有一個(gè)子目錄。--destination
指定多個(gè)軟件倉庫路徑時(shí)必須使用該選項(xiàng)。修訂說明符必須在每個(gè)軟件倉庫路徑上指定相同。如果軟件倉庫路徑中有相同名稱的文件,則具有該文件最近更新版本的路徑就是出現(xiàn)在 Git 中的路徑。
請(qǐng)參閱p4 help revisions
p4 修訂說明符的完整語法。
p4 客戶端規(guī)范是使用該p4 client
命令維護(hù)的,并在其他字段中包含一個(gè)視圖,指定倉庫如何映射到客戶端存儲(chǔ)庫。在clone
與sync
給定的命令時(shí),可以咨詢客戶規(guī)范--use-client-spec
選項(xiàng),或當(dāng) useClientSpec 變量為真。之后git p4 clone
,useClientSpec 變量將在存儲(chǔ)庫配置文件中自動(dòng)設(shè)置。這允許未來的git p4 submit
命令正常工作; 提交命令僅查看變量并且沒有命令行選項(xiàng)。
有關(guān) p4 視圖的完整語法記錄在中p4 help views
。git p4
只知道視圖語法的一個(gè)子集。它理解多行映射,覆蓋+
,排除-
和空白處的雙引號(hào)。可能的通配符中git p4
只有句柄…
,并且只有在路徑的末尾。git p4
如果遇到未處理的通配符將會(huì)投訴。
存在重疊映射的實(shí)現(xiàn)中的錯(cuò)誤。如果多個(gè)軟件倉庫路徑通過疊加層映射到存儲(chǔ)庫中的相同位置,則git p4
可以選擇錯(cuò)誤的路徑。如果沒有專門的客戶端規(guī)范,這很難解決git p4
。
客戶的名字可以以git p4
多種方式給出。git-p4.client
如果該變量存在,則該變量優(yōu)先。否則,將使用確定客戶端的普通 p4 機(jī)制:環(huán)境變量 P4CLIENT ,由 P4CONFIG 引用的文件或本地主機(jī)名。
P4 與 Git 沒有相同的分支概念。相反,p4將其內(nèi)容組織為目錄樹,根據(jù)約定,不同的邏輯分支位于樹中的不同位置。該p4 branch
命令用于維護(hù)樹中不同區(qū)域之間的映射,并指示相關(guān)內(nèi)容。git p4
可以使用這些映射來確定分支關(guān)系。
如果您有一個(gè)存儲(chǔ)庫,其中所有感興趣的分支都作為單個(gè)軟件倉庫路徑的子目錄存在,則可以--detect-branches
在克隆或同步時(shí)使用git p4
自動(dòng)在 p4 中查找子目錄,并在 Git 中將其作為分支生成。
例如,如果 P4 存儲(chǔ)庫結(jié)構(gòu)是:
//depot/main/...//depot/branch1/...
并且“p4 分支 - o 分支1”顯示一個(gè) View 行,如下所示:
//depot/main/... //depot/branch1/...
然后這個(gè)git p4 clone
命令:
git p4 clone --detect-branches //depot@all
refs/remotes/p4/
為// depot / main 生成一個(gè)單獨(dú)的分支master
,并調(diào)用一個(gè)/ depot / branch1 depot/branch1
。
但是,沒有必要在 p4 中創(chuàng)建分支以便像分支一樣使用它們。由于很難自動(dòng)推斷分支關(guān)系,git-p4.branchList
因此可以使用 Git 配置設(shè)置來明確標(biāo)識(shí)分支關(guān)系。它是一個(gè) “source :destination” 對(duì)的列表,就像一個(gè)簡單的 p4 分支規(guī)范,其中 “source” 和 “destination” 是 p4 存儲(chǔ)庫中的路徑元素。上面的例子依賴于 p4 分支的存在。沒有 p4 分支,相同的結(jié)果將會(huì)發(fā)生:
git init depot cd depot git config git-p4.branchList main:branch1 git p4 clone --detect-branches //depot@all .
快速導(dǎo)入機(jī)制git p4
為每次調(diào)用創(chuàng)建一個(gè)包文件git p4 sync
。通常,Git 垃圾壓縮( git-gc [1] )會(huì)自動(dòng)將這些壓縮到更少的包文件,但顯式調(diào)用git repack -adf
可能會(huì)提高性能。
以下配置設(shè)置可用于修改git p4
行為。他們都在該git-p4
部分。
git-p4.user
用戶指定為所有p4命令的選項(xiàng),并帶有-u <user>
。該環(huán)境變量P4USER
可以用來代替。
git-p4.password
作為所有 p4 命令的選項(xiàng)指定的密碼-P <password>
。該環(huán)境變量P4PASS
可以用來代替。
git-p4.port
端口被指定為所有 p4 命令的選項(xiàng)-p <port>
。該環(huán)境變量P4PORT
可以用來代替。
git-p4.host
主機(jī)被指定為所有 p4 命令的選項(xiàng),其中包含-h <host>
。該環(huán)境變量P4HOST
可以用來代替。
git-p4.client
客戶端指定為所有 p4 命令的選項(xiàng)-c <client>
,包括客戶端規(guī)范。
git-p4.retries
指定在p4 sync
網(wǎng)絡(luò)超時(shí)的情況下重試 p4 命令(特別是)的次數(shù)。默認(rèn)值為3.將該值設(shè)置為0以禁用重試,或者如果您的 p4版本不支持重試(2012年之前)。
git-p4.syncFromOrigin
因?yàn)閺钠渌?Git 存儲(chǔ)庫導(dǎo)入提交比從 p4 導(dǎo)入提交要快得多,因此存在一種機(jī)制來首先在 Git 遠(yuǎn)程中查找 p4 更改。如果存在分支refs/remote/origin/p4
,那么當(dāng)從 p4 同步時(shí),這些分支將被提取和使用??梢詫⒋俗兞吭O(shè)置false
為禁用此行為。
git-p4.branchUser
分支檢測的一個(gè)階段涉及查看 p4 分支以找到要導(dǎo)入的新分支。默認(rèn)情況下,檢查所有分支。此選項(xiàng)將搜索限制為僅由變量中指定的單個(gè)用戶擁有的搜索。
git-p4.branchList
分支檢測啟用時(shí)要導(dǎo)入的分支列表。每個(gè)條目應(yīng)該是一對(duì)由冒號(hào)(:)分隔的分支名稱。這個(gè)例子聲明 branchA 和 branchB 都是從 main 創(chuàng)建的:
git config git-p4.branchList main:branchA git config --add git-p4.branchList main:branchB
git-p4.ignoredP4Labels
要忽略的 p4 標(biāo)簽列表。這是在發(fā)現(xiàn)不可引用的標(biāo)簽時(shí)自動(dòng)構(gòu)建的。
git-p4.importLabels
根據(jù) --import-labels 將 p4 標(biāo)簽導(dǎo)入到 git 中。
git-p4.labelImportRegexp
只有與此正則表達(dá)式匹配的 p4 標(biāo)簽才會(huì)被導(dǎo)入。默認(rèn)值是[a-zA-Z0-9_\-.]+$
。
git-p4.useClientSpec
指定應(yīng)該使用 p4 客戶端規(guī)范來識(shí)別感興趣的 p4 倉庫路徑。這相當(dāng)于指定選項(xiàng)--use-client-spec
。請(qǐng)參閱上面的“客戶端規(guī)格”部分。這個(gè)變量是一個(gè)布爾值,而不是 p4 客戶端的名字。
git-p4.pathEncoding
Perforce 保留原始操作系統(tǒng)給定的路徑編碼。Git 預(yù)計(jì)編碼為 UTF-8 的路徑。使用此配置來告訴 git-p4 Perforce 用于路徑的編碼。此編碼用于將路徑轉(zhuǎn)碼為 UTF-8 。例如,Windows 上的 Perforce 通常使用 “cp1252” 來編碼路徑名稱。
git-p4.largeFileSystem
指定用于大型(二進(jìn)制)文件的系統(tǒng)。請(qǐng)注意,大文件系統(tǒng)不支持該git p4 submit
命令。只有 Git LFS 現(xiàn)在被實(shí)現(xiàn)(請(qǐng)參閱https://git-lfs.github.com/了解更多信息)。下載并安裝 Git LFS 命令行擴(kuò)展以使用此選項(xiàng)并像這樣配置它:
git config git-p4.largeFileSystem GitLFS
git-p4.largeFileExtensions
所有與列表中文件擴(kuò)展名匹配的文件都將由大文件系統(tǒng)處理。不要以擴(kuò)展名為前綴.
。
git-p4.largeFileThreshold
所有未壓縮大小超過閾值的文件都將由大文件系統(tǒng)處理。默認(rèn)情況下,閾值以字節(jié)為單位定義。添加后綴 k ,m 或 g 以更改單位。
git-p4.largeFileCompressedThreshold
壓縮大小超過閾值的所有文件都將由大文件系統(tǒng)處理。此選項(xiàng)可能會(huì)減慢您的克隆/同步過程。默認(rèn)情況下,閾值以字節(jié)為單位定義。添加后綴 k ,m 或 g 以更改單位。
git-p4.largeFilePush
定義大文件是否自動(dòng)推送到服務(wù)器的布爾變量。
git-p4.keepEmptyCommits
如果此布爾選項(xiàng)設(shè)置為 true ,則僅包含排除文件的更改列表將作為空提交導(dǎo)入。
git-p4.mapUser
將 P4 用戶映射到 Git 中的名稱和電子郵件地址。使用以下格式的字符串來創(chuàng)建映射:
git config --add git-p4.mapUser "p4user = First Last <mail@address.com>"
映射將覆蓋來自 P4 的任何用戶信息??梢远x多個(gè) P4 用戶的映射。
git-p4.detectRenames
檢測重命名。參見 git-diff [1] 。這可能是真實(shí)的,錯(cuò)誤的,或者如預(yù)期的那樣git diff -M
。
git-p4.detectCopies
檢測副本。參見 git-diff [1] 。這可能是真實(shí)的,錯(cuò)誤的,或者如預(yù)期的那樣git diff -C
。
git-p4.detectCopiesHarder
更難檢測副本。參見 git-diff [1] 。一個(gè)布爾值。
git-p4.preserveUser
在提交時(shí),無論誰調(diào)用,都要重新編寫更改以反映 Git 作者git p4 submit
。
git-p4.allowMissingP4Users
如果preserveUser
屬實(shí),git p4
通常會(huì)在 p4 用戶映射中找不到作者的情況下死亡。無論如何,此設(shè)置都會(huì)提交更改。
git-p4.skipSubmitEdit
提交過程在提交每個(gè) p4 更改之前調(diào)用編輯器。但是,如果此設(shè)置為 true ,則跳過編輯步驟。
git-p4.skipSubmitEditCheck
編輯 p4 更改消息后,git p4
通過查看文件修改時(shí)間確保描述確實(shí)發(fā)生了變化。該選項(xiàng)禁用該測試。
git-p4.allowSubmit
默認(rèn)情況下,任何分支都可以用作git p4 submit
操作的源。這個(gè)配置變量(如果設(shè)置的話)只允許指定的分支用作提交源。分支名稱必須是短名稱(不包括 “refs / heads /” ),并且應(yīng)該用逗號(hào)(“,”)分隔,而不能有空格。
git-p4.skipUserNameCheck
如果git p4 submit
在 p4 用戶映射中不存在正在運(yùn)行的用戶,則git p4
退出。無論如何,此選項(xiàng)都可用于強(qiáng)制提交。
git-p4.attemptRCSCleanup
如果啟用,git p4 submit
將嘗試清理 RCS 關(guān)鍵字($ Header $等)。否則這些會(huì)導(dǎo)致合并沖突并阻止提交進(jìn)行。目前這個(gè)選項(xiàng)應(yīng)該被認(rèn)為是實(shí)驗(yàn)性的。
git-p4.exportLabels
根據(jù) --export-labels 將 Git 標(biāo)簽導(dǎo)出到 p4 標(biāo)簽。
git-p4.labelExportRegexp
只有與此正則表達(dá)式匹配的 p4 標(biāo)簽才會(huì)被導(dǎo)出。默認(rèn)值是[a-zA-Z0-9_\-.]+$
。
git-p4.conflict
根據(jù) --conflict 發(fā)現(xiàn)與 p4 發(fā)生沖突時(shí)的指定提交行為。默認(rèn)行為是ask
。
使用 Git 快速導(dǎo)入來導(dǎo)入 p4 中的更改集。
克隆或同步不需要 p4 客戶端; 文件內(nèi)容使用收集p4 print
。
提交需要一個(gè)與 Git 存儲(chǔ)庫不在同一位置的 p4 客戶端。修補(bǔ)程序一次一個(gè)地應(yīng)用于此 p4 客戶端并從那里提交。
導(dǎo)入的每個(gè)提交git p4
在日志消息末尾都有一行指示 p4 倉庫位置和更改編號(hào)。此行被以后的git p4 sync
操作用于了解哪些 p4 更改是新的。