【问题标题】:jgit - clone a branch of a repo without a checkoutjgit - 在没有结账的情况下克隆一个 repo 的分支
【发布时间】:2013-12-18 23:16:53
【问题描述】:

如果您不进行结帐,CloneRepository 命令似乎会忽略 setBranch 参数。有没有办法指定分支(而不是 master )?我不想检查整个分支,但我想向该分支添加一个文件(添加、提交和推送)

【问题讨论】:

    标签: repository branch clone jgit


    【解决方案1】:

    当我使用 jgit-cookbook 中的 existing snippet for cloning 并且仅在第 33 行添加以下内容时,这对我有用:

                .setBranch("email")
    

    sn -p 执行后,临时目录中的本地克隆已将给定分支签出。

    另一种选择可能是使用 org.eclipse.jgit.storage.dfs.InMemoryRepository 克隆内存中的 Git 存储库并从那里工作。

    【讨论】:

    • 你有 .setNoCheckout(true) 吗?当它设置为 false 时,您是正确的。但是当设置为 true 时,本地目录不会被跟踪到指定的分支 - 而是跟踪到 master。 git status 确认当前跟踪。
    • 嗯,我不确定这是否可能,只要你想在分支中添加一些东西,据我所知,你需要结帐。或者你能用命令行 git 做到这一点吗?
    • 我在看测试 github.com/eclipse/jgit/blob/master/org.eclipse.jgit.test/tst/… 。它使用 RefUpdate 对象来“愚弄” git,使其认为提交已被签出。我不清楚这个测试是如何工作的,但希望让 git 认为工作存储库处于特定状态的关键。我无法让命令行做我想做的事 - 我总是必须做一个 CO。
    • 我正在寻找克隆除 master 之外的特定分支。帮助。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    • 2021-10-15
    • 2022-01-20
    • 2020-07-01
    • 2012-02-14
    • 2016-12-12
    • 1970-01-01
    相关资源
    最近更新 更多