Tag: git

什么是“git merge-base –fork-point branchA branchB”的jgit等价物

什么是“git merge-base –fork-point branchA branchB”的jgit等效代码? 我尝试了下面的代码,但我没有得到正确的答案。 我正在用它来寻找分支起源。 foreach.branch(git merge-base –fork-point mybranch theirbranch)将仅为起始点生成null提交ID。 所以,我需要做的就是弄清楚如何在jgit中执行此操作,并且我有一个计算分支原点的方法,当我还不知道它时。 private String getMergeBase(Repository repository, ObjectId commitIdA, ObjectId commitIdB) { RevWalk walk = new RevWalk(repository) try { RevCommit revA = walk.lookupCommit(commitIdA) RevCommit revB = walk.lookupCommit(commitIdB) walk.setRevFilter(RevFilter.MERGE_BASE) walk.markStart([revA,revB]) RevCommit mergeBase = walk.next() if (! mergeBase) { return null } return mergeBase.name } catch(Exception e) […]

Github for Windows忽略.gitignore文件

我试图让我的.gitignore忽略除了我的NetBeans项目中的src文件之外的所有内容。 我的gitignore看起来像这样 nbproject/private/ build/ nbbuild/ dist/ nbdist/ nbactions.xml nb-configuration.xml 并将其直接放在netbeans项目的根目录中。 每当我在NetBeans中构建/运行时,它总是说Netbeans Project / build / built-jar.properties和Netbeans Project / dist / CodeEditor.jar中的未提交的更改,这两者都应该被忽略。 (以及其他.class文件,如果我修改源代码)。 如何让Github for Windows忽略这些文件? git repo位于https://github.com/Arhowk/fJass

将授权的curl -u post请求与JSON数据转换为RestTemplate等效项

我正在使用github api使用curl命令创建存储库,如下所示,它工作正常。 curl -i -u “username:password” -d ‘{ “name”: “TestSystem”, “auto_init”: true, “private”: true, “gitignore_template”: “nanoc” }’ https://github.host.com/api/v3/orgs/Tester/repos 现在我需要通过HttpClient执行相同的上面的url,我在我的项目中使用RestTemplate 。 我之前使用过RestTemplate ,我知道如何执行简单的url但不知道如何使用RestTemplate将上述JSON数据发布到我的url – RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); // Create a multimap to hold the named parameters MultiValueMap parameters = new LinkedMultiValueMap(); parameters.add(“username”, username); parameters.add(“password”, password); // Create the […]

Windows和Mac上的Android库项目

我代表我的两个Android开发团队问这个问题。 我使用Windows,而我的合作伙伴使用的是Macbook。 当通过Git共享项目时, classpaths意外地搞砸了。 以下是一些观察: 引用的库项目(最初工作)无法再解析。 通过“Java Build Path”中的Projects选项卡添加时,可以找到库。 但应用程序崩溃(由于NoClassDefFoundError ),再次指向一个混乱的构建路径结构。 最初在Mac上引用的库项目曾经直接作为JAR出现在构建路径中。 现在他们在Android Dependencies下做了,这很奇怪(前者更多)。 在Windows上,上面的JAR一直在Dependencies和Referenced Libraries下。 我想以一种我们可以在Git上共享项目并在未来无缝工作的方式来解决这个问题。 🙂

使用git与apache sshd

我试图在我使用sshd用Java编写的SSH服务器上使用msysgit,我已经取得了很大的进步,我遇到了一些git错误,我能够使用putty进行连接并得到一个shell,我在我的窗口中有git路径,但我仍然无法使用git通过我的ssh守护程序连接到我的存储库。 我从msysgit收到以下错误: fatal: ”/C/gitrepo” does not appear to be a git repository fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 我使用以下内容将遥控器添加到我试图连接的repo: git remote set-url origin “ssh://test@localhost:22/C/gitrepo”. 我尝试了许多其他变化以及没有运气的路径。 我在localhost上设置了两个git repos,我正在运行git push和c:\gitrepo 。 我错过了什么? 此外,我不得不将mysysgit / bin的路径添加到我的windows 7环境变量中,但是还想要一种方法来实现它,而不是将其添加到我的Windows环境变量中,而是在我的ssh服务器中以编程方式指定它,但更重要的是我希望能够在这个ssh服务器上运行git。 我的服务器的代码如下。 import java.io.IOException; import java.net.InetSocketAddress; import java.util.ArrayList; […]

Jenkins – 如果git没有变化,请不要运行构建步骤

我正在设置jenkins来使用git和maven创建war版本。 我在bitbucket中创建了一个钩子来调用jenkins构建,还提到了jenkins中的分支名称,以便在特定的分支中构建。 问题是,只要在任何分支中有新的提交,jenkins就会构建并重新部署war文件。 我需要的是,如果git没有变化,jenkins应该中止构建。 请帮忙。 编辑:我确实尝试使用插件maven级别 org.apache.maven.plugins maven-war-plugin false ` 如果“没有可编译的源代码”,maven仍在构建war文件。

Ref Object的getPeeledObjectId()和getObjectId()有什么区别?

我正在使用jgit api来实现我的项目的构建,部署function( 在本地机器中 )。 我通过命令提示符通过以下命令提交了整个源代码(java项目) git add . git commit -a -m “Initial_Source” 这里我得到的提交ID为cb96c685a5a4338f852a782631df8d1cf5dca21d git tag Initial_Source cb96c685a5a4338f852a782631df8d1cf5dca21d [cb96c685a5a4338f852a782631df8d1cf5dca21d是commitid] git push git push –tags 但是当我试图通过getPeeledObjectId()获取提交id时,它返回null 我的代码是 Ref tag = git.getRepository().getRef(“Initial_Source”); Ref peeledRef = git.getRepository().peel(tag); return peeledRef.getPeeledObjectId(); — this is returning null 但我尝试使用getObjectId()而不是getPeeledObjectId() getObjectId() 。 它给出了commitId。 但我想知道何时使用getPeelObjectId()和getObjectId() 。 那些方法是什么?

如何将eclipse项目添加到现有的git repo中?

我已经在Eclipse中有一个现有的项目,我想添加到我的团队的github repo中。 github repo现在是空的。 将此项目添加到我们的github仓库的最佳方法是什么? 我想git clone我们的repo git clone到工作区文件夹(有问题的项目的父级),然后使用git add项目文件,然后pushing更改。 那会有用吗,还是有更好的方法(也许用EGit)?

Eclipse中的openshift私钥认证失败错误

在Eclipse中,当我尝试从openshift导入现有应用程序时,它会给我以下错误 – 无法克隆存储库。 validation失败。 请确保您将私钥添加到ssh首选项中。 我按照以下步骤进行了操作 – 1.在Eclipse中转到窗口 – >首选项 – >常规 – >网络连接 – > SSH2 – >密钥管理2.生成RSA密钥3.将公钥内容粘贴到openshift Express帐户中。 4.使用密码保存私钥。 即使按照上述步骤操作,我在克隆GIT仓库时遇到错误。 我在Eclipse日志文件中有以下错误 – !ENTRY org.jboss.tools.openshift.express.ui 4 0 2012-03-21 10:43:20.161 !MESSAGE Could not clone the repository. Authentication failed. Please make sure that you added your private key to the ssh preferences. !STACK 0 org.eclipse.jgit.errors.TransportException: ssh://7261e534e25842aaa353878a6c9af7cf@astofa-astofa.rhcloud.com/~/git/astofa.git/: […]

针对git项目的Eclipse设置

关于这个主题有很多问题,但现在没有令人满意的答案,例如这个 。 我正在使用Eclipse Kepler(20130529-2219),ME2(1.4.0.20130601-0317)和Eclipse Git Team Provider(GIT 3.0.0.201306040240-rc3的Java实现)。 因此,在阅读了git之后,我开始期待很高兴。 首先,我打开了一个现有项目并删除了所有.svn垃圾并将其提交到本地git存储库。 完美 – 现在是时候将文件推送到远程存储库了。 在Windows上创建known_hosts文件时遇到一些问题,推送成功。 现在问题已经开始了:我想为存储库提取更改,但是“…未配置为pull”。 好的, 这里讨论了这是一个常见的问题,你必须删除项目,然后从远程服务器重新导入它以允许拉动。 因此,我再次设置所有内容并取消了项目。 到目前为止,我总是被告知.project文件不应该提交版本控制,因此我没有包含它们。 “import – > from git – > local”-menu无法将repo中的文件识别为Java项目。 因此,我只能将项目作为一般项目导入或使用项目wizzard并设置一个新的Maven项目,这是愚蠢的,因为所有信息都已存在于POM.xml中。 如果我进行普通项目导入,Eclipse不知道它是Java或Maven项目并且会抛出大量错误。 问题 (跳过详细问题):当没有.project文件存在时,是否有一些不太笨拙的方法从远程git仓库导入Maven和Java项目?