Git 是一个基于 macOS 命令行 Git 工具的高级 Swift 框架。
git clone
和 git fetch
)。包括浅克隆支持 (--depth
选项);git checkout
);git commit
和 git push
);git log
);git stash
);git merge
);Git.framework
没有依赖项。只需克隆并构建即可。
在安装此框架之前,请确保您在系统中使用的是正确版本的 Git。您可以通过终端应用查看当前版本
git --version
$ git version 2.15.1
要安装 Carthage,您可以使用 Homebrew。在终端应用中使用以下命令
$ brew update
$ brew install carthage
要使用 Carthage 将 Git.framework 集成到您的 Xcode 项目中,请在您的 Cartfile
中指定它
github "way-to-code/git-macOS" ~> 3.2.0
运行 carthage update
以构建框架,并将构建的 Git.framework
拖到您的 Xcode 项目中。
如果您想在 Xcode 10.1 或更低版本上使用 Git.framework
,请使用版本 1.5.1
github "way-to-code/git-macOS" ~> 1.5.1
您可以手动安装 Git.framework。在本地克隆项目,构建并将其作为框架集成到您的项目中
您可以从最新的 发布页面 下载 XCFramework,并将其集成到您的项目中。
请注意,XCFramework 支持 自版本 3.0.0 起可用。
当您想在其他包中使用 Git.framework 作为依赖项时,您可以按照给定的示例进行操作
let package = Package(
name: "MyPackage",
products: [
.library(name: "myProduct", targets: ["myTarget"]),
],
dependencies: [
.package(name: "Git",
url: "https://github.com/way-to-code/git-macOS.git",
.upToNextMajor(from: "3.2.0")),
],
targets: [
.target(name: "myTarget", dependencies: [
.product(name: "Git", package: "Git")
]),
]
)
在 Wiki 页面 中阅读更多关于 Git.framework
的信息
要克隆远程仓库,您需要创建一个 GitRepository 对象
let repository = GitRepository(fromUrl: URL(string: "https://github.com/github/hub.git"))
接下来,只需调用 clone 方法
try? repository.clone(atPath: "/Users/youruser/hub")
您可以使用 GitCredentialsProvider 帮助为仓库指定凭据。如果未指定凭据,则默认使用来自全局 macOS 系统 git 配置的凭据。
let credentialsProvider = GitCredentialsProvider(username:"user", password:"****")
let repository = GitRepository(from: URL(string: "https://github.com/github/hub.git"), using: credentialsProvider)
您可以通过在仓库上设置委托对象来跟踪克隆操作的进度
let progressTracker = MyCustomObject()
let repository: GitRepository
repository.delegate = progressTracker
// implement RepositoryDelegate protocol in order to track the events
extension MyCustomObject: RepositoryDelegate {
func repository(_ repository: Repository, didProgressClone progress: String) {
}
}