[英]JGit sparse checkout keeps adding files
在 Java 中,我正在使用JGit使用遠程存儲庫執行一些操作。 但是,當我在版本之間按順序進行稀疏結帳時:
checkout.
setCreateBranch(false).
setName(tag).
addPath("server/scripts/").
setStartPoint(tag);
它保留最后一個結帳文件並添加新文件。 只有當目錄中的文件名不同時才會發生這種情況。 以這種方式使用 checkout 命令時如何避免這種情況?
我想刪除正在結帳的文件夾內的文件(在這種情況下是腳本),但是我不知道當“下載”的文件具有相同名稱時是否會帶來沖突。
首先請注意setCreateBranch()
默認為 false ,因此無需顯式調用setCreateBranch( false )
。
此外,您不能混合使用addPath()
和setName()
addPath()
的 JavaDoc 說:
如果設置了此選項,則既不考慮 setCreateBranch(boolean) 也不考慮 setName(String) 選項。 換句話說,這些選項是排他的。
但是,我不確定您看到的行為是否正確。 有疑問,請使用命令行 git 檢查它是否顯示相同的結果,如果 JGit 不同,則提交錯誤報告。
要解決孤立文件,您可以使用StatusCommand
手動刪除所有未跟蹤的文件:
Status status = git.status().call();
for( String fileName : status.getUntracked() ) {
// delete fileName
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.