我已经使用git多年了,并且总是想知道为什么git diff用/和b /作为修改文件的名称前缀.我预计最终会偶然发现一个有用的用例,但直到现在它总是令人讨厌而且从来没有用过.
到底有什么好处呢?为什么默认启用?在哪些情况下有用?
最近,我开始从我的几个项目中收集nuget包.首先,我开始使用Package Explorer应用程序.这是一个很好的工具,但如果你进行持续集成,它就不那么有用了.然后我研究了指定nuspec模板文件,并将更改数据(例如版本号)作为命令行参数传递.后来,我想知道如何定义nuget包依赖项.事实证明,如果指定csproj,nuget.exe已经基于package.config执行此操作.此外,它还从汇编信息中提取相关数据,如作者,版本,版权.我现在缺少的是能够在命令行中指定licenseUrl.但我希望这个问题更加通用.所以我问:
包装nuget包的首选方法是什么?
我想做
CTRL+ D- 退出Powershell控制台
和
CTRL+ L- 清除屏幕
喜欢在bash.
到目前为止,我已经看到我们可以定义
function ^D {exit}
Run Code Online (Sandbox Code Playgroud)
但这意味着我必须按CTRL + D然后按Enter键才能正常工作.
而且,它甚至没有让我定义
function ^L {exit}
Run Code Online (Sandbox Code Playgroud)
无论如何在默认的Powershell控制台中添加这些键绑定?
几个星期前,我在GitHub上分了一个公共项目.今天,我想尝试一些东西,但我想确保我使用的副本是最新的.
我可以先更新我的前叉吗?
如果在我开始更改之后叉子发生了变化,会发生什么.我可以再次更新我的分叉,同时将我的更改留在那里(即合并,如果需要的话?)
我们正在推动构建到heroku,并希望在没有引入最新更改的情况下推送.我基本上使用github repo作为我的源代码控制存储库并从几台不同的机器推送到git heroku repo.由于我们有一些构建服务器推送到同一个heroku存储库,因此有时从构建服务器推送最新的位会抛出一条消息,说我需要在提交和推送之前提取最新信息.
但是,由于构建服务器的代码保证是最新的,我想抛弃pull中的更改,只需提交并推送文件而不进行合并.
有没有办法做到这一点?关于如何最好地设置它的任何其他建议?
将我的GIT
repo从PC计算机复制到我的MAC后,我似乎无法将其导入日食.导入通过eGit插件直接从现有的本地git存储库进行.
相同的导入在现有Windows计算机上完全正常.
请指教.
org.eclipse.core.internal.resources.ResourceException: Invalid project description.
at org.eclipse.core.internal.resources.Project.checkDescription(Project.java:162)
at org.eclipse.core.internal.resources.Project.assertCreateRequirements(Project.java:52)
at org.eclipse.core.internal.resources.Project.create(Project.java:274)
at org.eclipse.core.internal.resources.Project.create(Project.java:256)
at org.eclipse.egit.ui.internal.clone.ProjectUtils.createExistingProject(ProjectUtils.java:115)
at org.eclipse.egit.ui.internal.clone.ProjectUtils.access$0(ProjectUtils.java:92)
at org.eclipse.egit.ui.internal.clone.ProjectUtils$1.run(ProjectUtils.java:66)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1957)
at org.eclipse.egit.ui.internal.clone.ProjectUtils.createProjects(ProjectUtils.java:84)
at org.eclipse.egit.ui.internal.clone.GitImportWizard.importProjects(GitImportWizard.java:160)
at org.eclipse.egit.ui.internal.clone.GitImportWizard.access$0(GitImportWizard.java:142)
at org.eclipse.egit.ui.internal.clone.GitImportWizard$1.run(GitImportWizard.java:83)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Contains: OK
Contains: /Users/me/Repositories/ABC overlaps the location of another project: 'ABC'
Run Code Online (Sandbox Code Playgroud) 我想基于其他分支创建本地分支.例如我输入:
git checkout -b feature1 release1.1.3
之后我得到:
fatal: git checkout: updating paths is incompatible with switching branches.
这有什么问题?
在以下代码中:
public class A
{
public decimal Decimal { get; set; }
}
public decimal Test()
{
return new List<A>().Sum(SumDecimal);
}
public decimal SumDecimal(A a)
{
return a.Decimal;
}
Run Code Online (Sandbox Code Playgroud)
该行return new List<A>().Sum(SumDecimal);
有一个错误,指出这SumDecimal
是一个模糊的调用.
为什么编译器无法推断出类型SumDecimal
.但是,以下工作:
return new List<A>().Sum((Func<A, decimal>) SumDecimal);
Run Code Online (Sandbox Code Playgroud)
当然,通常的lambda方式也适用:
return new List<A>().Sum(x => SumDecimal(x));
Run Code Online (Sandbox Code Playgroud)
在更多实验中,如果我编写自己的扩展方法:
public static class MyExtensions
{
public static T MySum<T, T2>(this IEnumerable<T2> ie, Func<T2, T> d)
{
return default(T);
}
}
Run Code Online (Sandbox Code Playgroud)
并称之为,编译器推断得很好:
return new List<A>().MySum(SumDecimal);
Run Code Online (Sandbox Code Playgroud)
我看到,IEnumerable<T>.Sum
目前超载int
, …
在我package.json
,我有一个**/*Test.js
用于匹配文件的脚本块.运行时npm
,它们与子目录不匹配多个级别.直接在命令行上执行时,它们按预期工作.
任何人都可以解释发生了什么,并提供解决方法或解决方案?
package.json
{
"name": "immutable-ts",
"scripts": {
"test": "echo mocha dist/**/*Test.js",
}
}
Run Code Online (Sandbox Code Playgroud)
% npm run test
> immutable-ts@0.0.0 test:unit .../immutable-ts
> echo mocha dist/**/*Test.js
mocha dist/queue/QueueTest.js dist/stack/StackTest.js
% echo mocha dist/**/*Test.js
mocha dist/queue/QueueTest.js dist/stack/StackTest.js dist/tree/binary/BinaryTreeTest.js
% ls dist/**/*
dist/collections.js dist/queue/QueueTest.js dist/tree/binary/BinaryTree.js dist/immutable.js.map dist/stack/Stack.js.map dist/tree/binary/BinaryTreeTest.js.map
dist/immutable.js dist/stack/Stack.js dist/tree/binary/BinaryTreeTest.js dist/queue/Queue.js.map dist/stack/StackTest.js.map
dist/queue/Queue.js dist/stack/StackTest.js dist/collections.js.map dist/queue/QueueTest.js.map dist/tree/binary/BinaryTree.js.map
Run Code Online (Sandbox Code Playgroud) 我在这里看到了相关的问题,但它们似乎并没有完全回答我的需要.
我们使用Powershell脚本来部署我们的应用程序,并且大多数环境(UAT等)的配置文件中的密码等信息都是纯文本.这不是一个大问题,但是当谈到PREPROD和PROD时,这是一个大问题.因此我们在配置中有一些标记,如"{{prompt-password}}",它将提供登录对话框(Get-Credential
),进行部署的人员可以输入凭证并继续部署.
但这对自动部署没有实际帮助(意味着通过TeamCity等工具一键部署)
我应该使用非对称加密(http://msdn.microsoft.com/en-us/library/as0w18af.aspx),其中密码使用公钥加密,在配置中输入,并存储私钥(如上所述)这里http://msdn.microsoft.com/en-us/library/tswxhw92.aspx)在"代理"中(如在TeamCity将触发部署的VM中,并且具有受限访问权限)运行自动部署并且可以解密密码?在密码学和东西上并不是很强大,但这听起来像是要走的路吗?还有其他建议吗?人们如何处理这种自动部署?
更新:
好的,我已经完成并实施了它.我在C#中编写了一个使用Crypography库的控制台应用程序.该应用程序生成密钥:
RSACryptoServiceProvider rsa = GetRsa(containerName);
File.WriteAllText("keys.kez",rsa.ToXmlString(true));
Run Code Online (Sandbox Code Playgroud)
我也拿出了公钥:
File.WriteAllText("public.pke", rsa.ToXmlString(false));
Run Code Online (Sandbox Code Playgroud)
将公钥提供给必须加密密码并要求他们在配置中输入密码的任何人.将keys.kez文件放在必须运行部署的任何代理中.
c# deployment powershell configuration production-environment
git ×5
c# ×3
github ×2
powershell ×2
.net ×1
deployment ×1
eclipse ×1
egit ×1
fork ×1
git-branch ×1
git-diff ×1
heroku ×1
ienumerable ×1
linq ×1
mocha.js ×1
node.js ×1
npm ×1
nuget ×1
package.json ×1
tortoisegit ×1