小编Joh*_*tle的帖子

"未指定提交且未设置merge.defaultToUpstream"

作为一个新的git用户,他是SVN和CVS的专家,我正在努力让最基本的git函数工作.

我在assembla.com上使用共享仓库

我创建了一个本地克隆,并添加了一个文件:

$ git clone repository-url
$ echo "hello" > ha.txt
$ git add -A
$ git commit -a -m "haha"
$ git push
Run Code Online (Sandbox Code Playgroud)

注意:此时我得到"没有共同的参考,没有指定;什么都不做"错误.经过几个小时的谷歌搜索,我发现解决方案是键入此

$ git push origin master
Run Code Online (Sandbox Code Playgroud)

然后我去了另一台计算机,修改了文件,并提交了它(令人惊讶的是,我不需要做git push origin magic).然后我回到主计算机,再次修改它,所以我可以看到合并是如何工作的.

$ git fetch
$ git merge
Run Code Online (Sandbox Code Playgroud)

现在我收到错误:

致命:未指定提交且未设置merge.defaultToUpstream.

查看"git merge"的手册页,你必须指定如下内容:

$ git merge [< commit >..]
Run Code Online (Sandbox Code Playgroud)

问题是,我无法找出什么< commit >意思,应该是什么.例如它应该是文件,回购,消息,版本吗?

我还没有创建一个分支 - 我只是在研究"头"或主人,因为我认为git称之为

不幸的是,谷歌对这个没什么帮助.手册页似乎希望你知道什么是< refspec >,< commit >origin是.

任何关于这个noob问题的帮助表示赞赏.

git

33
推荐指数
3
解决办法
2万
查看次数

我在哪里可以下载mysql jdbc jar?

我安装并尝试使用jasper report studio.当您尝试为报告创建数据源时,您遇到的第一个砖墙是

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
Run Code Online (Sandbox Code Playgroud)

论坛说我需要在类路径上安装一个jar.我不知道怎么做,所以第一个障碍是如何获得罐子.我唯一能找到的地方是:

http://dev.mysql.com/downloads/connector/j/

但不幸的是,这会给你一个msi安装程序,而不是jar.我不想安装东西,只需拿到罐子.

我安装了mysql DB,已经通过程序文件中的安装目录进行了拖网,但找不到jar.

有人知道官方(不是恶意软件网站)获取mysql jar的方法吗?它很难找到,这似乎很奇怪.

我有Windows 8 64位和mysql 5.6.

mysql jar jdbc

31
推荐指数
2
解决办法
13万
查看次数

Groovy控制台无法"记住"任何变量 - 总是说"未知属性"

在Groovy shell中,您可以输入命令,例如

def x = 1
Run Code Online (Sandbox Code Playgroud)

并运行它们.该行回来了:

groovy:000> > def x = 1
def x = 1
===> 1
groovy:000>
Run Code Online (Sandbox Code Playgroud)

现在,如果我输入:

 println(x) 
Run Code Online (Sandbox Code Playgroud)

我明白了:

groovy:000> > println(x)
println(x)
Unknown property: x
groovy:000> 
Run Code Online (Sandbox Code Playgroud)

所以似乎控制台和shell都记得对象定义,这是正常的吗?

console grails groovy

27
推荐指数
1
解决办法
4350
查看次数

如何为jenkins设置ssh密钥以通过ssh发布

Jenkins需要证书才能使用ssh发布和ssh命令.它可以在下配置"manage jenkins" -> "Configure System"-> "publish over ssh".

问题是:如何创建证书?

我有两个ubuntu服务器,一个运行Jenkins,另一个运行应用程序.

我是否设置了Jenkins证书并将其中的一部分放在部署框上,或者在部署框上设置了证书,并将其中的一部分放在Jenkins上?证书是否需要名为Jenkins的用户名,或者是否适用于任何用户?我们在开发框中没有Jenkins用户.

我知道有许多不兼容的ssh类型,Jenkins需要它吗?

有没有人找到如何设置这一切的指南(如何生成密钥,在哪里放置它们等)?

ssh jenkins

24
推荐指数
3
解决办法
10万
查看次数

如何为Ubuntu的war文件创建debian包

我们有一个war文件,liquibase xml文件和sha1校验和我们想要打包成Debian脚本部署到一个平台:ubuntu 14.1 64bit with tomcat 7和java 7.

我们已经搜索了大量难以理解的(对于我们作为Java开发人员)Debian打包指南,其中大部分需要"上游源tar球"(例如这一个:https://wiki.debian.org/IntroDebianPackaging)和/或者通过make/install生成的东西.

我们既没有,这也是我们问题的症结所在.

我们有两个阶段:

  1. 初始安装(完成一次)
  2. 更新(多次完成)

指南没有提到如何管理这两个阶段.

初始安装(我们现在在每台服务器上手动执行的操作):

  1. 使用apt-get作为root安装java,tomcat7.据推测,这可以通过依赖性自动化
  2. 使用目标数据库连接字符串/密码等大量编辑var/lib/tomcat7/conf/context.xml.据推测,安装后仍需手动完成.
  3. 为我们的应用创建一个新用户和组,例如"foo".
  4. 以foo身份登录
  5. 在foos home目录中,安装基本应用程序:4.1创建脚本目录并复制install.sh文件4.2编辑install.sh文件并更改数据库连接字符串,最高机密用户并传递以匹配目标数据库(在另一台服务器上) )4.3将liquibase二进制分布的jar和脚本复制到liquibase子目录中.

我们通过使用Jenkins构建的tar文件分发应用程序本身.在tar中如下:

  1. app.sha1
  2. migration/changelog.xml(以及一堆liquibase xml文件)
  3. app.war
  4. classes.sha1

我们将tar文件scp到/ home/foo目录中,并运行/home/foo/scripts/install.sh,它执行以下操作:

  1. 从/ home/foo删除旧焦油和未经处理的东西
  2. 解开新的tar文件.
  3. 停止tomcat
  4. 使用untarred migrations dir运行liquibase jar命令来创建/更新db
  5. 删除/ var/lib/tomcat7/webapps/*
  6. 将新战争复制到var/lib/tomcat7/webapps /
  7. 启动tomcat
  8. 等一下
  9. 使用sha1sum来确保类是正确的(除了客户的要求之外,这没有用处)

我们的问题是:

  1. 用户在哪里以及如何创建?例如foo在我们的情况下,或tomcat7在tomcats的情况下.
  2. 包"是否自行安装"?或者它只将文件放在文件系统中(因此需要管理员以后运行一个或多个脚本来完成工作?是否有一些标准用于执行工作的脚本,例如标准名称?
  3. 有很多包装工具,例如,Jenkins插件,dpkg,fpm,debuild,dpkg-buildpackage.我们应该使用哪个?我们查看了fpm,但它假设你有一个带有make文件等源代码安装的目录,我们没有.
  4. 包安装在哪里?它会以/ var/lib/foo或var/lib/foo-0.3.4结尾吗?如果是后者,我们就麻烦了,因为系统的其他部分需要访问.sha1文件,因此需要一个固定的地方来安装.
  5. 有没有比手动编辑每个服务器context.xml和install.sh更好的方法,以使每个客户拥有正确的数据库连接详细信息?例如,人们使用awk/sed从脚本中获取此类内容,还是有某种mysql密码和连接字符串存储库?
  6. 如何设置目标文件的所有权和权限?
  7. 有没有人碰到一个"Hello World"式包装的教程,不依赖于现有的"源焦油+制作+安装",并显示在目标服务器的安装后的包文件和文件之间的关系,以及包生命周期包括更新如何工作?
  8. 系统如何管理仅发送更新的文件,例如在这种情况下不是liquibase二进制文件?我假设我们需要两个软件包,一个用于基本安装,一个用于tar,以避免重复?

    我们知道我们需要将工件放在一个特殊的目录结构中,并且它以某种方式映射到目标服务器文件结构,我们需要构建各种控制文件,但不是它在各个阶段如何粘合在一起,以及什么脚本是需要.

    我们试图阅读Debian政策手册(https://www.debian.org/doc/debian-policy/),但这是对Linux体验开发人员的一个参考.我们确信答案在那里,但我们无法弄清楚在哪里.

这篇文章: https: //help.ubuntu.com/community/Tomcat/PackagingWebapps还有另外两个选项(我们选择"将系统范围的实例击败提交"),但没有提供有关如何实际构建软件包的线索.

debian war

15
推荐指数
1
解决办法
745
查看次数

tomcat 7 + ssl无法正常工作 - ERR_SSL_VERSION_OR_CIPHER_MISMATCH

Ubuntu 14,tomcat 7,java 7

godaddy提供的our.crt,our.key和gd_bundle-g2-g1.crt.该捆绑包中有3个证书(通过vi'ing文件看到).

注意,我们的key和crt在node.js上使用没有问题.

我们从现有的crt创建了一个密钥库:

cd /etc/ssl
openssl pkcs12 -export -in our.crt -inkey our.key -out our.p12 -name tomcat -CAfile gd_bundle-g2-g1.crt -caname root -chain
Run Code Online (Sandbox Code Playgroud)

server.xml是这样的:

<Server port="8005" shutdown="SHUTDOWN">

<Listener className="org.apache.catalina.core.JasperListener" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />



<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
          type="org.apache.catalina.UserDatabase"
          description="User database that can be updated and saved"
          factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
          pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>


<Service name="Catalina">

<Connector port="80" protocol="HTTP/1.1"
           connectionTimeout="20000"
           URIEncoding="UTF-8"
           redirectPort="8443" />

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="200" scheme="https" secure="true"
           keystoreType="PKCS12"
           keystoreFile="/etc/ssl/our.p12" keystorePass=""
           clientAuth="false" sslProtocol="TLS" /> …
Run Code Online (Sandbox Code Playgroud)

ssl tomcat

14
推荐指数
1
解决办法
2万
查看次数

如何从JSON恢复原始对象/类型?

使用eval或JSON.parse可以轻松地将JSON加载到javascript中的对象中.

但是如果你有一个像函数这样的"类",那么如何将JSON数据输入呢?

例如

function Person(name) {
  this.name=name;
  this.address = new Array();
  this.friendList;

  this.promote = function(){
     // do some complex stuff
  }
  this.addAddress = function(address) {
    this.address.push(address)
  }
}

var aPersonJSON = '{\"name\":\"Bob\",\"address\":[{\"street\":\"good st\",\"postcode\":\"ADSF\"}]}'

var aPerson = eval( "(" + aPersonJSON + ")" ); // or JSON.parse
//alert (aPerson.name);    // Bob
var someAddress = {street:"bad st",postcode:"HELL"};
//alert (someAddress.street); // bad st
aPerson.addAddress(someAddress); // fail!
Run Code Online (Sandbox Code Playgroud)

关键是我需要能够从JSON创建适当的Person实例,但我能得到的只是一个愚蠢的对象.我想知道它是否有可能用原型做一些事情?

我不想要解析JSON的每一行并将每个变量分配给相应的函数属性,这太难了.我所拥有的实际JSON和函数比上面的例子复杂得多.

我假设可以将函数方法JSONify转换为JSON字符串,但是因为我需要保持结果数据尽可能小这不是一个选项 - 我只想存储和加载数据,而不是方法的javascript代码.

我也不想将JSON加载的数据作为子对象放入,如果我可以帮助它(但可能是唯一的方法),例如

function Person(name) {
  this.data = {};
  this.data.name=name;
}

var newPerson = …
Run Code Online (Sandbox Code Playgroud)

javascript json

12
推荐指数
4
解决办法
1万
查看次数

windows:git有旧的github用户名,无法更改git用户

我有2个github帐户,新旧.当我检查新的回购时,我不能提交它,因为它说我的旧github用户未被授权.

让我说我的旧github帐户用户名是旧的,电子邮件是old@old.com 让我说我的新github帐户用户名是新的,电子邮件是new@new.com

旧的github帐户没有与之关联的SSH密钥.新帐户有我的ssh密钥.当我使用Windows时,ssh键是一个噩梦,因为putty/pagent使用ppk格式,但gitbash使用的openssh使用rsa.前段时间,我设法将我的ppk转换为rsa并将其放入我的windows用户.ssh dir.

我这样做了:

$ git config --global user.name new
$ git config --global user.email new@new.com
Run Code Online (Sandbox Code Playgroud)

如果我这样做:

$ git config --global -l
Run Code Online (Sandbox Code Playgroud)

要么

$ git config -l
Run Code Online (Sandbox Code Playgroud)

我知道了:

 user.email=new@new.com
 user.name=new
Run Code Online (Sandbox Code Playgroud)

当我尝试做的时候 $git push origin

remote: Permission to new/test.git denied to old.
fatal: unable to access 'https://github.com/new/test.git/': 
403 user old not authorised
Run Code Online (Sandbox Code Playgroud)

如果我使用gitbash,tortoise或VS代码来执行推送,我会收到此错误.

如果我删除克隆的repo,并从头再次克隆它,然后提交任何东西,同样的问题.

$ git clone git@github.com:new/test.git
Run Code Online (Sandbox Code Playgroud)

知道为什么以及在哪里获得旧用户?在我的机器上的任何地方都没有引用旧的github用户,它阻止我做任何工作.

似乎没有办法从github删除旧用户,但即使我可以,它仍然无法解决问题.我几个月都无法工作,因为我无法向github提交任何内容.

我尝试的另一件事是在克隆repo后编辑.git/config.我尝试将https更改为ssh url,因为https在使用github的所有年份中从未为我工作过.https允许您克隆,但永远不会推送.如果我用ssh签出,使用适量的vodoo,它曾经工作,但现在它总是得到老用户没有明显的原因.

git

12
推荐指数
1
解决办法
1482
查看次数

即使 Azure Devops 用户拥有完整的读取/贡献权限,也无法看到存储库。我们怎么修?

如果我们向团队添加新用户,只需添加他们的电子邮件地址,新用户就可以登录项目,但他们看不到任何 repos,甚至看不到左侧的 repos 图标(他们请参阅概述、板、管道和工件)。这些用户已被授予对所有存储库的完全访问权限,即他们在贡献者组中。如果我查看项目设置中的存储库,然后找到用户,他们拥有所有存储库的所有权限,包括读取和贡献。

我怎样才能给他们“更多”访问权限,以便他们可以查看和使用 git 存储库?

我看过类似的帖子,其中提到用户是“基本的”或“利益相关者”,但这不是我能看到或改变的。

我是该项目的完全管理员。

有什么建议?

azure-devops

12
推荐指数
2
解决办法
9016
查看次数

如何恢复推送提交?

我们想要撤消最后 2 次都推送到原始主控的提交。在 tortoise git 中,我们可以查看历史记录,然后单击上次提交后的第 3 个,然后选择“将 master 重置为此”,我们猜测这意味着恢复到此版本。

但是,当您选择此选项时,您必须从以下三个选项之一中进行选择:

  1. soft - 保持工作树和索引不变。
  2. 混合 - 保持工作树不变,重置索引
  3. 硬重置工作树和索引。

不幸的是,我们不知道我们应该选择这 3 个选项中的哪一个 - 我们只想撤消最后两次提交并及时返回。

下一个问题是此操作是在远程源、您的存储库、您的工作目录还是这三者的组合上发生?例如,是否必须在还原后进行提交和推送,或者它是否为您执行此操作?

我们会猜测 HARD 是我们想要的 - 它会将存储库(不确定是哪个)和我们的本地源代码恢复到以前的版本。如果是这种情况,为什么这不是默认值,另外两个选项的用例是什么?要么你想恢复,要么不恢复,如果你只恢复远程仓库,而不是你的本地工作文件,那么你将处于混乱状态。

我们没有任何本地修改的文件。

请注意,我们非常渴望一个不会破坏 git 的解决方案(我们过去曾破坏过 git,不得不创建一个新的 repo)。也许另一种方法是可行的,例如检出以前的版本,然后在最新版本的顶部检入,但我们不知道如何执行此操作。

我们知道我们可以做这样的事情:

git checkout [revision]
Run Code Online (Sandbox Code Playgroud)

但是我们如何告诉 git 我们想要让这个版本成为新的 head 或者用这个替换 head 呢?我猜我们不能只提交,因为没有什么可提交的,因为我们不再是主人。顺便说一句,如果您查看上一个。版本,修改它,然后提交,你提交什么,提交到哪里?

我已经阅读了https://www.atlassian.com/git/tutorials/undoing-changes但它没有解决本地和远程 repos 之间的关系。如果要撤消的提交全部推送到远程源主机,则不清楚恢复远程源、本地存储库和工作目录的方法是什么——所有 3 项都必须恢复到 3 次提交之前的提交。我们真的不在乎这是通过重置还是还原来完成的——我们只需要一种方法来做到这一点,它适用于所有 3 个位置。

正确的接收方可能是这样的:

   git status (we are on master with a clean working dir)
   git git revert HEAD~2
   git commit -m "revert"
   git push origin …
Run Code Online (Sandbox Code Playgroud)

git tortoisegit

11
推荐指数
4
解决办法
5万
查看次数

标签 统计

git ×3

azure-devops ×1

console ×1

debian ×1

grails ×1

groovy ×1

jar ×1

javascript ×1

jdbc ×1

jenkins ×1

json ×1

mysql ×1

ssh ×1

ssl ×1

tomcat ×1

tortoisegit ×1

war ×1