Articles of git

基于组件的Web项目目录布局,使用git和符号链接

我正在规划一个linux / apache / php web项目的目录结构,如下所示: 只有www.example.com/webroot/才会暴露在apache中 www.example.com/ webroot/ index.php comp1/ comp2/ component/ comp1/ comp1.class.php comp1.js comp2/ comp2.class.php comp2.css lib/ lib1/ lib1.class.php component/和lib/目录只会在phppath中。 为了使css和js文件在webroot目录中可见,我计划使用符号链接。 webroot/ index.php comp1/ comp1.js (symlinked) comp2/ comp2.css (symlinked) 我试着遵循这些原则: 由组件和库的布局,而不是由文件types,而不是由“公共”或“非公开”,index.php是一个例外,这是为了更容易的发展。 公开网站目录中的最小文件集,并使其他网站无法访问。 将需要公开组件和库的文件编译到公共位置,但仍然镜像布局。 因此,组件和库结构也可以在链接中生成的html代码中看到,这可能有助于开发。 git的使用应该是安全的,并始终工作。 可以按照一些步骤来添加一个符号链接到git,但是之后检查它们或者改变分支应该被安全和清理地处理 git将如何正确处理单个文件的符号链接,有什么需要考虑的? 当涉及到图像,我将需要链接目录,如何处理与git? component/ comp3/ comp3.class.php img/ img1.jpg img2.jpg img3.jpg 他们应该链接在这里: webroot/ comp3/ img/ (symlinked ?) 如果使用符号链接有缺点,也许我可以直接将图像移动到webroot […]

使用非root用户帐户安装Git

我已经在GitHub上build立了一个Git仓库,并从Windows机器上做了一些改变。 但是明天我必须从运行Ubuntu的机器以有限的权限(即没有sudo)在这个仓库中工作。 有一个Linux的Git的便携版本? 还是有一些源码可以让我为当前用户编译和安装Git?

使用git作为Sudo的gnome-keyring时,出现错误

我正在寻找一种方法来安全地存储凭据,同时连接到我们使用SSL的Git服务器。 我碰到@ james-ward的这个build议(只编辑我做的是我更新了我们的“系统”configuration,而不是我们的Git的“全局”configuration( https://stackoverflow.com/a/14528360/6195194 ) sudo apt-get install libgnome-keyring-dev cd /usr/share/doc/git/contrib/credential/gnome-keyring sudo make git config –system credential.helper /usr/share/doc/git/contrib/credential/gnome-keyring/git-credential-gnome-keyring 我然后可以运行 git clone https://ipaddress/git/repo.git 和证书助手将存储我的凭据,但是当我运行以下: sudo git clone https://ipaddress/git/repo.git testfolder 它给我以下错误 ** (process:3713): CRITICAL **: Error communicating with gnome-keyring-daemon 我有时候需要运行sudo git clone,因为有时我需要做一个克隆的目录需要它。 任何帮助,将不胜感激。 我正在使用的版本: – git版本1.9.1 – Ubuntu服务器14.0.4 先谢谢你! 理查德·O

MSysGit和sshconfiguration。 失踪

1)运行Git Bash(C:\ Program Files(x86)\ Git \ bin \ sh.exe –login) $ ssh -v git@github.com OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007 debug1: Reading configuration data /c/Users/Alexander Fedorov/.ssh/config debug1: Applying options for github.com debug1: Connecting to github.com [207.97.227.239] port 22. debug1: Connection established. … Hi xpoft! You've successfully authenticated, but GitHub does not provide shell access. … […]

通过batch file在GIT中创build修改文件的存档

我正在使用这个git命令来创build在特定提交中修改的文件的存档: git archive -o update.zip HEAD $(git diff –name-only COMMITID^) 其中COMMITID是我要归档的提交的ID。 这从命令行工作正常,但我想从batch file运行它。 以下是我正在使用的batch file的内容: git archive -o update.zip HEAD $(git diff –name-only %1^^) 其中%1是通过SourceTree传入的提交ID。 我遇到的问题是,从batch file运行时,此命令返回以下错误: 错误:未知选项`name-only' 我猜可能会有一些字符转义的问题,但我无法find具体的中断。 我将如何编写该git命令,以便它可以从batch file中工作? UPDATE 我尝试删除–name-only选项,并通过SourceTree尝试批处理脚本时收到以下错误: 致命的:找不到path:$(git 希望这有助于缩小可能发生的事情。 进一步更新 原来我的语法只是从特定的提交抓取修改的文件,但使用msandiford的答案是错误的我想出了这个batch file脚本,完美的作品: setlocal enabledelayedexpansion set output= for /f "delims=" %%a in ('git diff-tree –no-commit-id –name-only -r %1^^') do ( […]

在GitHub Windows客户端提交后文件不会同步?

经过多次尝试提交并同步后,我的部分文件不会同步到我的Github帐户。 我没有收到错误消息,但点击“同步”后,这些文件从未显示在我的帐户中。 截图:

Git(GitHub)在过去的date提交

我正在开发一个git项目(托pipe在GitHub上),并使用Gi​​tHub for Windows。 昨天,我取得了很大的成就,但GitHub for Windows保存(说它不能提交),我无法承诺。 我不想失去我的GitHub提交条纹,所以我想知道是否有任何方式提交过去的date,并与我的GitHub同步(如果这是可能的话)。 另外:我已经在git-bash中提交了我的提交,但尚未完成。

如何使“git分支”尊重Linux上的“core.ignorecase”标志?

我们正在使用位于办公室的Linux服务器上的远程Git存储库。 所有的客户端都是安装有Git Extensions的Windows PC作为客户端(使用msysgit运行)。 在客户端系统上,如果我尝试执行以下操作: git branch Branch1 git branch branch1 第二个命令会失败,告诉我具有该名称的分支已经存在。 这是我所期望的,因为我在git config中将core.ignorecase设置为true。 但是,如果我直接login到Linux系统并运行相同的命令,即使core.ignorecase标志设置为true,也会创build两个分支。 我会期望第二个命令也失败,因为我configuration存储库忽略的情况下,但标志在Linux系统上什么都不做,或者我错过了什么。 任何人都可以帮助我理解这个问题,因为我们计划将SCM从Source Safe迁移到Git,这个问题让我们感到害怕。 如果两个开发人员创build具有相同名称但不同情况的分支,并将结果推送到Linux存储库,会发生什么情况?

jenkins不能从git仓库使用windows批处理命令

当我build立我的jenkins项目我想拉我的git仓库所以代码是最新的,我可以看到git status和git –version正常,但是当它来到git pull控制台输出卡住加载像这个: 当我尝试命令提示符完全相同的命令和相同的目录,我可以在不到2秒成功拉动 jenkins命令和cmd命令有什么不同吗? 我使用Windows XP的SSH与git存储库进行身份validation。

如何使用Windows编辑器从cygwin添加分割Git diff hunk

我需要在做git add -p时候分割一个块。 但交互期间的e选项不起作用。 我将解释为什么它不工作,并询问我能做些什么来使其工作。 所以我的大块可能看起来像下面的代码。 从其他研究中我已经知道,我应该使用e选项,然后我的编辑会拿出大块的线,我可以删除我不想要的。 + virtual bool fat() const { + return true; + } + virtual bool lazy() const { + return true; + } 很明显,我想提交只是脂肪的方法,并保留另一个提交懒惰的方法。 问题是,我从Cygwin运行Git,并且编辑器设置如下: export EDITOR=/cygdrive/c/csm/notepad2/Notepad2.exe 顺便说一句,当我提交消息,这完美启动编辑器。 当我检查编辑器的命令行时,它看起来像 c:\csm\notepad2\Notepad2.exe /home/csm/path/to/my/code/.git/addp-hunk-edit.diff 显然这是Windows和Cygwin像两种非混合的东西混合在一起的时代之一,但是我想要一个解决scheme来弥合这个差距,而不是使用一些基于Cygwin的编辑器。 我相信cygwin和windows git-path混淆的问题与我的相反,因为我使用Cygwin附带的Git,并且希望使用Windows辅助工具,而该问题旨在将Windows原生的Git与一个Cygwin shell环境。