Articles of git

如何分离/解耦Git仓库到不同的位置

我的要求可能看起来很奇怪,但是我解释了为什么要这么做,这样做会更有意义。 所以我在/path/to/myprojects下有个人项目。 下面可能是C,Perl,Shell,Tcl等。现在我想把这些项目组(C,Perl等)放在git下,但是放在不同的位置,比如/path/to/mygits/ 。 我想这样做的原因是,传统上我通过rar他们备份我的/path/到/ myprojects其他地点。 由于它们都是基于文本的,所以提高压缩率。 现在我想保持相同的做法,即使我已经介绍了git。 因此,我需要保持二进制git存储库的文本基础文件夹的方式到一个单独的二进制基文件夹。 所有我在stackoverflow的发现表明不可能,或者我“必须使用可能是相当痛苦的子模块”: Git:不同的工作目录和存储库的位置 , git仓库与文件夹在不同的位置 , 添加独立的目录/项目/文件到Git仓库 然而,有一个答案,说可以解耦git的工作目录和git仓库目录: 我如何改变一个Git仓库的位置,但它说了一些关于git reset –hard我想知道的细节。 另外使用GIT_DIR似乎是另一种解决scheme。 任何人都可以帮忙? 谢谢

OpenShift WordPress主题开发工作stream程

我用Cartridges创build一个应用程序, PHP 5.4 MySQL 5.5 phpMyAdmin 4.0 我将我的WP文件,插件和主题提交到GIT。 在我的.gitignore ,我补充说 wp-content/uploads 正如本书第8章所说,我已经阅读了“OpenShift入门”一书 “另一个可用的目录是OpenShift数据目录,它目前位于$ OPENSHIFT_HOMEDIR / app-root / data。 我们使用环境variablesOPENSHIFT_DATA_DIR来指向这个位置。 ” “数据目录是你的应用程序应该存储它的文件,放置configuration设置,下载主题的地方,或者一般你想要的任何东西重新启动和Git推动。 摘录自:Steven Pousty和Katie J. Miller。 “OpenShift入门” 我访问SSH。 当我在WordPress上传我的媒体时,它就是存储在里面的 $OPENSHIFT_REPO_DIR/php/wp-content/uploads/2014/05/1.jpg 我如何指出? $OPENSHIFT_DATA_DIR/uploads 如果是这样,在我的.openshift/action_hooks/deploy文件中,我已经添加了这个脚本 如果[! -d $ {OPENSHIFT_DATA_DIR}上传]; 那么mkdir $ {OPENSHIFT_DATA_DIR}上传fi ln -sf $ {OPENSHIFT_DATA_DIR}上传$ {OPENSHIFT_REPO_DIR} php / wp-content / 但是,在我的GIT PUSH ,软链接脚本没有做到这一点,它显示了以下错误。 remote: ln: target `/var/lib/openshift/[ID]/app-root/runtime/repo/php/wp-content/' […]

bitbucket ssh公开否认

好吧,所以我几乎已经用尽了每个想法和教程,我可以在网上find。 所以基本上我有一个Bitbucket回购,我想设置它来自动更新我的Linux服务器每次有人推到回购。 我试图按照这个教程,但在第1步ssh,我没有做任何事情。 我在我的linux服务器上做了一个ssh密钥。 之后,打开了.pub我得到并将其内容复制到我的BitBucket协会。 ssh-keygen -t rsa 在添加了pub密钥后,我通过这样做validation了它正在工作: ssh -T git@bitbucket.org 我得到一个响应,添加主机keyfingerpint,一切都OK,我得到我的用户名返回使用该密钥。 之后,教程说在.ssh文件夹中创build一个configuration文件 Host bitbucket.org IdentityFile ~/.ssh/bitbucket_rsa 之后,它说,试图从BitBucket克隆到我的服务器回购。 这就是我得到的错误。 ****@Main:/var/www/repo$ sudo git clone git@bitbucket.org:******/******.git Cloning into '******'… Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 如果有人能帮助我,我会感激不已,看到我真的已经没有想法做什么了。

用于远程SSH的GIT GUI客户端解决scheme

我是一个GIT GUI用户。 我没有问题在我的本地发展。 但是,现在我们有一个服务器与GIT回购。 我想知道任何解决scheme,我可以通过使用GIT GUI客户端远程推,拉和差异访问? Currenly。 我SSH到Linux服务器,并使用git命令来执行所有的git命令。 但是当我发现差异的时候我觉得很困难。 这就是为什么我认为有使用GIT GUI客户端访问远程回购的任何解决scheme,并与GIT客户端做GIT命令。 我想要的是我能够在GIT仓库中安装远程服务器。 目前我们只在本地磁盘上打开GIT repo。 例如C:\ www \ repo.git文件,我要如何访问10.10.10.10/home/www/.git并在GIT客户端执行所有的GIT命令。 打开OSX和Windows的解决scheme。

如何同步一个“暗影”git仓库与主存储库“秘密”

我有一个客户端,我通过git仓库工作。 我不想让他知道我是部分使用另一个开发人员。 因此,我创build了一个我的开发人员正在使用的“影子”存储库。 如何将“影子”存储库与主存储库同步,以便主存储库不知道发生这种情况? 我不能合并一个git命令,因为这将揭示我真的做了什么。 我可以复制和粘贴所有文件,但是在git中可以看到,我已经删除了所有文件,并用具有相同名称的新文件replace。 那看起来不太好 我的客户正在使用bitbucket。 我可以给其他开发者我的bitbucketlogin,但我想避免这样做。 实际工作的是,我可以在主资源库中打开文件,删除内容,然后粘贴更新后的代码。 然后我可以提交,看起来是否直接在主存储库中完成了这项工作。 但是这是非常耗时的(时间是我没有太多的东西)。 有没有一种不同的方法可以“暗中”将影子存储库中的文件内容复制到主存储库中? 有没有我可以使用的linux / osx-commandreplace文件的内容而不删除和重新创build文件(然后我可以recursion使用)? 有没有一个git命令可以使这个成为可能而不留下我实际上做了什么的证据?

如何正确樱桃挑选有问题的提交从Linux内核的Git树

背景 从Linux Kernel Version 4.12及以上版本开始,我的设备无法正常工作。 我想找出哪个具体的提交造成的问题。 我目前的stream程是: 在这里查看linux内核提交日志 点击个人提交,复制提交ID 运行git checkout <commit id> 重新configuration内核make menuconfig ,然后重新编译make -j32 在我的设备上安装内核,确认问题是否仍然存在 如果不是,缩小提交的范围,返回到步骤1 问题 当我经历这个繁琐的过程时,我发现编译的内核版本是不同的(您也可以通过阅读Makefile来查看)。 但是,我没有看到通过Linux内核提交日志的版本更改。 事实上,在尝试git diff <first commit id> <second commit id> ,根据第1步中的linux内核提交日志,第二个提交id为1的提交在第一个提交后面,发现有变化没有反映在网站上。 题 为什么会这样呢? 我应该如何正确地找出导致我的设备上的问题的具体提交?

无法推送到我的github私人存储库

在学习git时,我在GitHub上build立了一个私有的存储库。 我创build了ssh密钥并将其存储到我的GitHub帐户,并在本地Linux机器上编辑.ssh / config文件: ## github Host github.com User git HostName github.com IdentityFile ~/.ssh/github.key 我可以成功连接到我的GitHub帐户: $ ssh -T github Hi <UserName>! You've successfully authenticated, but GitHub does not provide shell access. 我在本地机器上初始化了一个git仓库,设置了用户并添加了一个远程仓库: $ git init $ git config user.name "UserName" $ git config user.email "UserEmail" $ git remote add origin ssh://github:<UserName?/<repositoryName>.git 我创build了一个README.md文件,将它添加到git中并提交它: $ git add […]

当使用php exec()来运行shell脚本时,一个脚本可以工作(只是简单地执行git status),另一个脚本不会(git checkout)。 怎么来的?

我正在尝试设置一个基于Web的门户,通过这个门户,我们可以通过简单的点击后端面板来检出我们的Git仓库的不同分支。 所以目前,我有/ var / www / devportal其中包含index.php , status.sh和checkout.sh 在index.php中,我执行以下操作: $repo = $_GET['repo']; $command = 'sh status.sh ' . $repo; $output = exec($command); echo "<pre>$output</pre>"; status.sh的内容是: #!/bin/bash -e if [ $# -ne 1 ] then echo "Usage: `basename $0` <repo name>" exit 1 fi cd /var/www/$1 git status 这工作得很好。 在PHP中回显的输出显示了/ var / www / proj中当前分支的状态。 […]

从远程分支检查本地存储库上的git pull的历史logging

有没有一种方法可以查看在本地存储库上进行的拉取历史logging? 我们使用一个共享的系统,并希望有不同的用户所做的拉的日志。 我在网上search了这个,但是没有太大的运气。 有没有人有一个关于它的想法?

为什么Git在Linux上将CRLF转换为LF?

我有一些shell脚本需要LF行结束符(我在Ubuntu 14.04上)。 由于这是一个跨平台的开源项目,因此使用.gitattributes文件来使行结束自动工作。 不幸的是,他们没有。 $ cat .gitattributes # automatically normalize line endings * text=auto 我在我的文件系统上有以下文件: $ file extract.sh extract.sh: Bourne-Again shell script, ASCII text executable, with CRLF line terminators 如果我现在使用dos2unix处理它,它会正确显示LF终止。 $ file extract.sh extract.sh: Bourne-Again shell script, ASCII text executable 另外, git显示为已修改: $ git status [..] Changes not staged for commit: [..] modified: extract.sh 现在我把它添加到索引: […]