小编ski*_*ppy的帖子

你如何存放未跟踪的文件?

我对文件进行了更改,加上一个新文件,并希望在切换到另一个任务时使用git stash将它们删除.但git stash本身只会隐藏对现有文件的更改; 新文件仍然存在于我的工作树中,使我未来的工作变得混乱.如何存放这个未跟踪的文件?

git git-stash

1287
推荐指数
13
解决办法
39万
查看次数

有哪些常用的命名git分支实例的例子?

现在,我已经使用本地git存储库与我的组的CVS存储库进行了几个月的交互.我已经制作了一个几乎神经质的分支,其中大部分幸运地合并回我的行李箱.但是命名开始成为一个问题.如果我有一个容易用简单标签命名的任务,但是我在三个阶段完成它,每个阶段都包含它们自己的分支和合并情况,那么我每次都可以重复分支名称,但这会使历史有点混乱.如果我在名称中有更具体的说明,并且每个阶段都有单独的描述,那么分支名称开始变得冗长而且难以处理.

我确实在这里学习通过旧线程查看我可以开始用名称中的/来命名分支,即主题/任务,或类似的东西.我可能会开始这样做,看看它是否有助于保持更好的组织.

命名git分支有哪些最佳实践?

编辑:实际上没有人建议任何命名约定.当我完成分支时,我会删除分支.由于管理层不断调整我的优先事项,我恰巧有几个人.:)作为为什么我可能需要在任务上需要多个分支的示例,假设我需要将任务中的第一个离散里程碑提交到组的CVS存储库.那时,由于我与CVS的不完美交互,我会执行该提交然后杀死该分支.(如果我在那时尝试继续使用相同的分支,我看到太多奇怪的事情与CVS交互.)

git branch naming-conventions

1034
推荐指数
7
解决办法
48万
查看次数

如何处理未经检查的投射警告?

Eclipse正在向我发出以下形式的警告:

类型安全:从Object到HashMap的未选中转换

这是来自对我无法控制的API的调用返回Object:

HashMap<String, String> getItems(javax.servlet.http.HttpSession session) {
  HashMap<String, String> theHash = (HashMap<String, String>)session.getAttribute("attributeKey");
  return theHash;
}
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我想避免Eclipse警告,因为理论上它们至少表明存在潜在的代码问题.但是,我还没有找到一种消除这种方法的好方法.我可以将涉及的单行提取到方法中并添加@SuppressWarnings("unchecked")到该方法,从而限制了我忽略警告的代码块的影响.有更好的选择吗?我不想在Eclipse中关闭这些警告.

在我来到代码之前,它更简单,但仍然引发了警告:

HashMap getItems(javax.servlet.http.HttpSession session) {
  HashMap theHash = (HashMap)session.getAttribute("attributeKey");
  return theHash;
}
Run Code Online (Sandbox Code Playgroud)

当您尝试使用哈希时,问题出在其他地方,您会收到警告:

HashMap items = getItems(session);
items.put("this", "that");

Type safety: The method put(Object, Object) belongs to the raw type HashMap.  References to generic type HashMap<K,V> should be parameterized.
Run Code Online (Sandbox Code Playgroud)

java generics warnings

583
推荐指数
12
解决办法
42万
查看次数

Java多行字符串

来自Perl,我肯定错过了"here-document"在源代码中创建多行字符串的方法:

$string = <<"EOF"  # create a three-line string
text
text
text
EOF
Run Code Online (Sandbox Code Playgroud)

在Java中,我必须在每一行都有繁琐的引号和加号,因为我从头开始连接多行字符串.

有哪些更好的选择?在属性文件中定义我的字符串?

编辑:两个答案说StringBuilder.append()优于加号表示法.任何人都可以详细说明他们为什么这么认为?它看起来并不比我更好.我正在寻找一种方法,即多行字符串不是一流的语言结构,这意味着我绝对不希望用方法调用替换第一类语言结构(字符串连接加上).

编辑:为了进一步澄清我的问题,我根本不关心表现.我担心可维护性和设计问题.

java string multiline

486
推荐指数
28
解决办法
55万
查看次数

如何从Java设置环境变量?

如何从Java设置环境变量?我看到我可以使用子进程执行此操作ProcessBuilder.我有几个子进程要启动,所以我宁愿修改当前进程的环境,让子进程继承它.

有一个System.getenv(String)获取单个环境变量.我也可以获得一套Map完整的环境变量System.getenv().但是,要求put()Map引发UnsupportedOperationException-显然,他们的意思是对环境只能被读取.并且,没有System.setenv().

那么,有没有办法在当前运行的进程中设置环境变量?如果是这样,怎么样?如果没有,理由是什么?(这是因为这是Java,因此我不应该做一些邪恶的非便携式过时的事情,比如触摸我的环境吗?)如果没有,那么管理环境变量的任何好建议都会改变我需要提供给几个子进程?

java environment-variables

270
推荐指数
13
解决办法
35万
查看次数

如何使用vim更改文件的编码?

我习惯使用vim来修改文件的行结尾:

$ file file
file: ASCII text, with CRLF line terminators
$ vim file
:set ff=mac
:wq
$ file file
file: ASCII text, with CR line terminators
Run Code Online (Sandbox Code Playgroud)

是否可以使用类似的过程来更改文件的unicode编码?我正在尝试以下方法,但这不起作用:

$ file file.xml
file.xml: Unicode text, UTF-16, little-endian
$ vim file
:set encoding=utf-8
:wq
$ file file.xml
file.xml: Unicode text, UTF-16, little-endian
Run Code Online (Sandbox Code Playgroud)

我看到有人说他可以"设置fileencoding = utf-8,然后更新并写入文件,它可以工作",但我似乎错过了一些东西,否则他很困惑.我不知道"然后更新"是什么意思.

unicode vim

229
推荐指数
5
解决办法
22万
查看次数

你如何使用git format-patch将提交压缩成一个补丁?

我在一个分支上有八个提交,我想通过电子邮件发送给一些不是git开悟的人.到目前为止,我所做的每件事都给了我8个补丁文件,或者从一开始就开始给分支历史上每次提交的补丁文件.我使用git rebase --interactive来压缩提交,但是现在我尝试的所有内容从一开始就给了我数以万计的补丁.我究竟做错了什么?

git format-patch master HEAD # yields zillions of patches, even though there's 
                             # only one commit since master
Run Code Online (Sandbox Code Playgroud)

git patch squash git-squash

162
推荐指数
7
解决办法
9万
查看次数

如何在特定连接上使用不同的证书?

我正在添加到我们的大型Java应用程序的模块必须与另一家公司的SSL安全网站进行交谈.问题是该站点使用自签名证书.我有一份证书副本,以验证我没有遇到中间人攻击,我需要将此证书合并到我们的代码中,以便与服务器的连接成功.

这是基本代码:

void sendRequest(String dataPacket) {
  String urlStr = "https://host.example.com/";
  URL url = new URL(urlStr);
  HttpURLConnection conn = (HttpURLConnection)url.openConnection();
  conn.setMethod("POST");
  conn.setRequestProperty("Content-Length", data.length());
  conn.setDoOutput(true);
  OutputStreamWriter o = new OutputStreamWriter(conn.getOutputStream());
  o.write(data);
  o.flush();
}
Run Code Online (Sandbox Code Playgroud)

在没有为自签名证书进行任何额外处理的情况下,这会在conn.getOutputStream()处死,但有以下异常:

Exception in thread "main" javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
....
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
....
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path …
Run Code Online (Sandbox Code Playgroud)

java ssl jsse keystore truststore

159
推荐指数
5
解决办法
18万
查看次数

我可以让git将UTF-16文件识别为文本吗?

我在git中跟踪虚拟PC虚拟机文件(*.vmc),在进行更改后,git将该文件识别为二进制文件并且不会为我进行区分.我发现该文件是用UTF-16编码的.

可以教git识别这个文件是文本并适当处理它吗?

我在Cygwin下使用git,core.autocrlf设置为false.如果需要,我可以在UNIX下使用mSysGit或git.

git unicode diff utf-16 character-encoding

135
推荐指数
6
解决办法
6万
查看次数

用git恢复部分提交

我想在git中恢复一个特定的提交.不幸的是,我们的组织仍然使用CVS作为标准,所以当我提交回CVS时,多个git提交被归为一个.在这种情况下,我很想挑出原始的git提交,但这是不可能的.

是否有类似的方法git add --patch允许我有选择地编辑差异来决定提交的哪些部分还原?

git git-cvs

135
推荐指数
5
解决办法
3万
查看次数