Articles of git

如何在Linux shell上的git仓库中转义'@'(at)符号

我想从命令行拉动一个git仓库,在命令里面指定用户名和密码,就像这样: git pull https://username:password@myrepo.kilnhg.com/…/myRepo.git 问题是我的用户名是电子邮件,显然字符'@'需要被转义,如果没有,我收到消息: fatal: repository 'https://username:password@myrepo.kilnhg.com/…/myRepo.git/' not found 有人有同样的问题,解决了吗?

执行和创buildGit策略

我被委以改变Git的责任,并没有在互联网上find任何相关的东西 – 我急需指导。 我们有什么:一堆分支,主要是test (基本上是develop )和master分支。 master大部分时间都没有触及。 现在,我已经使用TeamCity,Jira和Crucible创build了一个持续集成环境,以及我自己编写的服务。 我们想要实现的是: 不允许推送test – 除非是TeamCity 如果id == branchName的Jira问题处于错误状态,则拒绝function分支上的推送 现在,我不知道这样的事情是如何实现的。 我可能只是误解Git助手对我说的话,但是据我所知,我可以完全禁止,或者完全允许。 ad2)名义上是很容易的,因为我知道必须使用pre-push hook脚本,但是它也必须放在每个dev的本地git仓库上,或者我可以以某种方式强制执行?

使用git进行分支特定的configuration文件维护

这个问题让我感到困惑很久,因为我找不到很好的或多或less的通用解决scheme。 假设有两个可用的git分支, production和dev ; 每个使用它自己的一些任务可configuration参数(即凭据,构buildpath,testing/部署脚本开关等等)。 同时执行脚本和代码对于两个分支都是常见的。 现在,问题出现了 – 如何按照需要在git存储库中维护特定于分支的configuration。 一个常见的解决scheme是在git中使用'template'configuration文件,符号链接和忽略特定分支的具体内容,比如 $ cat .gitignore | grep conf /concrete.conf $ ls -l *.conf lrwxrwxrwx 1 1000 100 12 Oct 29 10:23 concrete.conf -> generic.conf -rw-r–r– 1 1000 100 0 Oct 29 10:16 generic.conf 然后在开发框中打破并调整concrete.conf 。 然而,这不是我追求的解决scheme。 我的要求(好, 祝愿 )是: 支持每个git分支独立的configuration文件,以及 同时保持由gitpipe理的分支特定的configuration文件 这甚至有可能吗? 可能(实际上,最好是由其他人的文件来源,但是没有关系…) 到目前为止我所想到的最好的方法是使用合并后钩子从git忽略的其他来源调整每个分支的configuration本身 ,但从一开始就很糟糕。 任何关于解决问题的build议? PS:*特定于nix的build议(即使用符号链接/硬链接)的build议是绝对好的,我确实对M […]

使用第二编译的SSH的Git

我的机器在CentOS 5上,我无法升级它。 # ssh -V OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008 # which ssh /usr/bin/ssh OpenSSH / OpenSSL太老,无法连接到ssh://git@altssh.bitbucket.org:443 (是的,有一个代理) 所以我在/ tmp / ssh中编译了最新版本的ssh和ssl # /tmp/ssh/bin/ssh -V OpenSSH_6.9p1, OpenSSL 1.0.2j 26 Sep 2016 它像charme一样工作 # /tmp/ssh/bin/ssh -v git@altssh.bitbucket.org -p 443 … debug1: Next authentication method: publickey debug1: Offering RSA public key: /root/.ssh/id_rsa debug1: Server accepts key: […]

无法删除/findgit钩子

曾几何时,我安装了一些git hooks la这些说明: 克隆这个目录,然后运行git config –global init.templatedir $template_dir 。 之后新版本库将使用此目录作为模板。 现在我想删除这些钩子。 我已经在我的.gitconfig取消了模板设置,我已经删除了.git-templates文件夹,但是不pipe什么钩子仍然运行。 code_diff code = code.decode()UnicodeDecodeError:'ascii'编码解码器无法解码位置113中的字节0xe2:序号不在范围内(128字节)“git / hooks / pre-commits / security-scan” ) 但我似乎无法在我的机器上的任何地方find这个文件! 只有样本钩子在我的仓库的钩子文件夹中 applypatch-msg.sample pre-push.sample commit-msg.sample pre-rebase.sample post-update.sample prepare-commit-msg.sample pre-applypatch.sample update.sample pre-commit.sample

在centos linux上的dotnet恢复错误:访问path被拒绝

我正在一个centos 7服务器上运行一个TFS2017 / VSTS构build代理,并在构build过程中收到以下错误: 2017-05-23T02:35:57.4457330Z [command]/usr/local/bin/dotnet restore ./src/DocPropsService.sln 2017-05-23T02:35:59.8903860Z Restoring packages for /myagent/_work/3/s/src/CommandService/DocProps.CommandService/DocProps.CommandService.csproj… 2017-05-23T02:36:09.8543710Z Generating MSBuild file /myagent/_work/3/s/src/CommandService/DocProps.CommandService/obj/DocProps.CommandService.csproj.nuget.g.props. 2017-05-23T02:36:09.8786540Z /opt/dotnet/sdk/1.0.4/NuGet.targets(97,5): error : Access to the path '/myagent/_work/3/s/src/CommandService/DocProps.CommandService/obj/23507835-d558-4207-80a0-85b919019109.tmp' is denied. [/myagent/_work/3/s/src/DocPropsService.sln] 2017-05-23T02:36:09.8812240Z /opt/dotnet/sdk/1.0.4/NuGet.targets(97,5): error : Permission denied [/myagent/_work/3/s/src/DocPropsService.sln] 代码正在使用git生成代理检查出来,但恢复命令失败。 我使用的dotnet的版本是1.0.4。 我不是很好的Linux,不知道从哪里开始。 任何forms的帮助都是非常有用的。

从远程服务器findgit分支的名字

我正在尝试使用shell脚本在远程服务器上查找git分支的名称。 我把下面的命令放在bin目录下的脚本中。 git symbolic-ref –short HEAD 当我从另一台机器使用ssh执行脚本 ssh -i keyfile.pem user@ipaddress 'bash -s' /path/to/the/script 我得到一个错误 fatal: Not a git repository (or any of the parent directories): .git 不知道我在哪里做错了。 任何帮助,将不胜感激。 谢谢。

使用新版本的git快捷方式,覆盖旧版本

我在运行Linux发行版的共享托pipe计划上使用git。 由于它是共享的,我没有访问sudo 。 该机器已经在/usr/bin/安装了git 1.7.1版本,但是这个版本在这一点上是非常史前的。 我已经使用make install来获取当前版本2.14.1 ,它位于~/git-2.14.1/ 。 正如这个答案所详述的,我可以从命令行访问正确版本的git,如下所示: $ git –version git version 2.14.1 这是对~/.bash_profile的$PATHvariables的一个简单的改变,所以我可以使用git就好了。 我在~/.gitconfig文件中有一个快捷方式列表,使git可以更快地使用: [alias] co = checkout st = status ci = commit … etc etc etc 当我调用这些(例如git st )时,我从git的错误版本中得到结果。 它回到1.7.1 。 如果我input完整的命令(例如git status ),它会使用正确版本的git。 我的~./bashrc也有这些命令: git () { case "$*" in st* ) shift 1; command ~/git-2.14.1/git status "$@" […]

从git中拉出的符号链接无法识别

我在git中有一个项目,当我第一次从git下来符号链接时,符号链接不起作用。 从所有我能看到他们正确的符号链接。 如果我删除符号链接并自己重新创build它们,git也会将它们视为与它所拥有的相同。 有没有在Linux或Git的设置,可以防止符号链接工作,如果他们来形成混帐? 用于创build符号链接的命令: ln -s /absolute/path/to/dest symlink-name 一些额外的信息 符号链接最初是在MacBook上创build的,但是由于git将我新创build的符号链接(在Linux上)视为相同,我怀疑这是问题所在。 当第一次获得符号链接时,他们不能在linux上工作,而在其他Mac机器上工作。 通过删除和重新创build它们来修复符号链接之后,git将它们看作是相同的,并且它们在将来的pulls中不会被覆盖。 所有的符号链接都是.phar文件。 Linux机器运行Ubuntu 16.04或Centos 7 使用ls -lah作为常规文件列出符号链接: -rw-rw-r–. 1 vagrant vagrant 28 Nov 13 09:01 dep -rw-rw-r–. 1 vagrant vagrant 28 Nov 13 09:01 drupal -rw-rw-r–. 1 vagrant vagrant 20 Nov 13 09:01 drush -rw-rw-r–. 1 vagrant vagrant 32 Nov 13 09:01 drush.complete.sh […]

git的“make”中有哪些文件需要运行git?

我试图“移植”git,所以我想把所需的可执行文件从git的make过程发送到我的托pipe的web服务器。 我可以这样做吗? 你认为可执行文件会起作用吗?