我怎样用一个不同的git仓库replace一个git子模块? 具体来说,我有一个子模块: 位于./ExternalFrameworks/TestFramework ,指向一个git repo git@github.com:userA/TestFramework.git 我想现在指向git@github.com:userB/TestFramework.git 。 问题是,当我用这里描述的方法删除子模块,然后使用该命令重新添加它 git submodule add git@github.com:userB/TestFramework.git 我得到这个错误: A git directory for 'ExternalFrameworks/TestFramework' is found locally with remote(s): origin git@github.com:userA/TestFramework.git If you want to reuse this local git directory instead of cloning again from git@github.com:userB/TestFramework.git use the '–force' option. If the local git directory is not the correct repo […]
我已经看过githooks manpage,但除非我失去了一些东西,我没有看到本地,后推git钩子的选项。 我想有一个更新我的Web服务器上的API文件(我已经有一个脚本)后,我把主分支到GitHub回购。 当然,我可以编写自己的脚本,将git push和api docs运行结合起来,但是感觉有点不雅。
我很困惑如何使用git archive 。 我有一个Git仓库文件夹Foo , Bar和Baz在顶层。 我需要以SVN-ISH方式导出文件夹Foo ,以进行快速testing部署。 我了解到,我可以用SVN-ISH导出方式使用git-archive 。 但是,这是事情, 以下工作正常: git archive master | tar -x -C ~/destination 它会在目标文件夹中产生Foo , Bar , Baz文件夹。 但是,以下将 fatal not a valid object name 错误,而fatal not a valid object name : git archive master/foo | tar -x -C ~/destination 文档 看作为git archive程序的概要,我看到它可以采取一个<tree-ish> [path]作为参数(摘要汇总到相关的部分): git archive <tree-ish> [path…] […]
我怎样才能显示最常更改的Git文件?
当你运行git branch -r为什么它会列出origin/HEAD ? 例如,GitHub上有一个远程回购,比如两个分支:master和awesome-feature。 如果我做git clone来抓取它,然后进入我的新目录并列出分支,我看到这个: $ git branch -r origin/HEAD origin/master origin/awesome-feature 或者它会在什么顺序(阿尔法?我伪造这个例子,以保持一个无辜的回购秘密的身份)。 那么HEAD业务是什么? 当他们推动时,最后一个push他们的人指着什么? 这不是总是他们push东西吗? HEAD移动…为什么我在乎别人的HEAD指向另一台机器? 我只是处理远程跟踪等,所以这是一个混乱的困惑。 谢谢! 编辑:我的印象是,专用的远程回购(像GitHub没有人会ssh和工作的代码,但只拉或推等)没有,也不应该有一个头,因为基本上,没有工作副本。 不是吗?
如果将一组更改推送到上游存储库,如何configuration相应的Git挂接以发送摘要电子邮件?
我试图克隆LibreOffice代码库,但目前我有一个约300kbps的互联网连接,它只是稳定的东西。 我可以随时获得连接,但是git克隆进程已经停止工作,没办法让它再次运行。 有没有办法有更多的抗失败git克隆下载? 我认为我自己的一个select是下载其他人的.git目录,但这是过分依赖他人,似乎并不是最好的解决scheme。
(解决,请参阅问题主体的底部) 现在找这个已经很久了,到现在为止是这样的: http://dound.com/2009/04/git-forever-remove-files-or-folders-from-history/和 http://progit.org/book/ch9-7.html 几乎相同的方法,但他们都留在包文件中的对象…卡住了。 我试过的: git filter-branch –index-filter 'git rm –cached –ignore-unmatch file_name' rm -Rf .git/refs/original rm -Rf .git/logs/ git gc 仍然有包中的文件,这是我知道的: git verify-pack -v .git/objects/pack/pack-3f8c0…bb.idx | sort -k 3 -n | tail -3 和这个: git filter-branch –index-filter "git rm -rf –cached –ignore-unmatch file_name" HEAD rm -rf .git/refs/original/ && git reflog expire –all && […]
我有时会检查一些以前版本的代码来检查或testing。 如果我想修改以前的提交,我已经看到了怎么做的说明 – 但是假设我没有做任何修改。 在完成了git checkout HEAD^ ,我该如何回到分支的顶端? git log不再显示我最近提交的SHA。
我刚开始使用Git,我在不同的分支之间感到困惑。 任何人都可以帮助我弄清楚以下分支types是什么? 当地分行 本地跟踪分支 远程分支 远程跟踪分支 他们有什么区别? 而他们又是如何相互合作的呢? 一个快速的演示代码将是真正有用的,我猜。