[英]git-p4 How to fetch a changelist
git p4 submit --shelve
在本地git repo中獲取您提交的更改,並將它們放入更改列表X並放置它們。
假設我對擱置的更改進行了一些代碼審查,因此我本地git repo中的文件與更改列表X中的文件不同。如何將changelist X中的更新導入我的本地git repo?
我做了一個修改版的git-p4.py來支持這個。 您創建的文件具有每個擱置的更改列表的更改編號。 然后你只需運行git p4 sync --changesfile <filename>
。
唯一的問題是,這會將更改導入到您的p4/master
分支中,因此git-p4
會認為這些更改已經提交。 如果你使用它,你必須將一些本地git分支硬重置為新導入的提交,然后將p4/master
ref硬重置回導入之前的狀態。 它還將[git-p4: depot-paths = ...]
信息添加到提交消息的底部,因此它不適合直接運行git p4 submit
。 您可以編寫某種git commit過濾器來批量刪除它們。
盡管如此,我認為這比手動處理p4 unshelve
, p4 diff -dau > foo.patch
和patch -Npx -i
。
你可以生成一個diff然后將它應用到你的git樹。 (生成差異的最簡單,最可靠的方法可能是將變更集取消擱置到干凈的Perforce客戶端,然后執行p4 diff -du ...
,請注意,這對添加或刪除的文件不起作用。 )
將來,您應該避免這樣做。 首先使用git-p4
的關鍵是主要使用git,但要同步Perforce的更改。 因此,您的git環境應該是您的“主”環境,並且您的Perforce客戶端應該僅用作Perforce服務器的臨時區域。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.