“人gitglossary ”包含这个邪恶合并的定义: 一个邪恶的合并是一个合并,引入不出现在任何父母的变化。 我不确定我是否理解这些作者正在试图解决的问题。 为什么它是邪恶的?
我有一个小的git回购设置,唯一真正的目的是能够在几台机器(工作,家庭,笔记本电脑)本地开发。 因此,我有一个分支,一旦离开计算机,我就会推/拉,一旦我坐下来。 工作得很好,到现在为止。 现在,当我拉上我的“现场testing”机器时,我得到以下结果: remote: Counting objects: 38, done. remote: Compressiremote: ng objects: 100% (20/20), done. remote: Total 20 (delta 17), reused 0 (delta 0) error: unable to create temporary sha1 filename .git/objects/ed: File exists fatal: failed to write object fatal: unpack-objects failed 在网上search唯一真正的答案,我可以find以下内容: http : //marc.info/? l= git&m=122720741928774&w=2它基本上说,这是一个虚假的错误,是在一堆之上,因此什么也没有关于什么是错的 我从哪里去了解哪里出了什么问题? 编辑:删除本地副本,并重新克隆
我有两个分支, A和B 分支A有一个由git跟踪的文件的目录examples ,这些文件不应该出现在分支B 。 在我的工作stream程中,我常常将A所做的更改合并到B ,每当examples发生一些变化时,这都是个问题。 目前我正在手动执行这个操作:合并后擦除文件或解决冲突时,当我已经擦除的文件发生变化时。 在合并期间可以忽略这些文件吗? (或者可以将一些文件限制在一个分支( A )或者一个分支( B )之外? 让我试着解释为什么我这样做: A是博客(模板,脚本等)的骨架, B是我的博客(充满了我自己的post,图像,草稿等)。 A是公开的,我试图让其他人看起来和使用它,但正因为如此,我需要一些职位作为展示/testing( examples目录)。 A每一个变化,然后被合并到B以便在我的博客实例上进行这种更改 – 这样,所有新的示例都显示在B而B所有已删除的示例在上次合并后发生了冲突。
我需要恢复两个Git分支,在推送过程中以某种方式删除。 这两个分支在不同的系统上创build,然后推送到我的“共享”(github)存储库。 在我的系统中,我(显然)在取回时检索了分支: ~/myfolder> git fetch remote: Counting objects: 105, done. remote: Compressing objects: 100% (58/58), done. remote: Total 62 (delta 29), reused 0 (delta 0) Unpacking objects: 100% (62/62), done. From github.com:mygiturl * [new branch] contact_page -> origin/contact_page 731d1bb..e8b68cc homepage -> origin/homepage * [new branch] new_pictures -> origin/new_pictures 之后,我做了一个推动,把我的本地变更提交给中央回购。 出于某种原因,这些分支已从我的本地系统和中央回购中删除: ~/myfolder> git push Counting […]
我正在处理源代码中的回归。 我想告诉git:“根据参数化date/时间检出源”。 这可能吗? 我目前的观点也发生了变化,我不想失去。 理想情况下,我想在当前源和我感兴趣的某个版本之间根据以前的date来回切换。
我有一个裸仓库,用作我的项目的中央商店。 所有的开发人员都做git clone <repo>与它共享。 当他们做的克隆,他们得到一个主分支(除非他们做git clone -n )的结帐,因为repo.git/HEAD包含ref: refs/heads/master ,使这个活动分支 。 问题是,如何正确地更改活动分支 ? 我可以直接破解repo.git/HEAD文件,但是这看起来很讨厌,而且很好用。 我尝试在repo .git目录中执行git checkout <otherbranch> ,但失败了,因为我不在工作树中。 我试过git update-ref HEAD refs/heads/otherbranch但是只是更新了refs / heads / master与refs / heads / otherbranch相同(好吧,我在一个虚拟库中做了一个,而不是我的产品)。 我试过git update-ref –no-deref HEAD refs/heads/otherbranch ,而且几乎可以工作。 它更新了HEAD文件,但将其设置为由refs/heads/otherbranch指向的提交的SHA1。 我正在使用git 1.7.0.2.msysgit.0进行testing。 我猜是没有办法做到这一点通过git push ,因为允许所有和各式各样的改变你的默认分支似乎有点不安全(!),但当然有一个更好的办法,在repo .git目录中,而不是直接黑客HEAD文件。
有没有办法让git给你一个提交日志只是提交,触及文件中的一个特定的行 ? 像git blame ,但git blame会告诉你最后的承诺,触及一个特定的行。 我真的想得到一个类似的日志,而不是提交到文件中的任何地方的列表,而只是触及特定行的提交。
当我尝试提交更改时,出现此错误: error: object file .git/objects/31/65329bb680e30595f242b7c4d8406ca63eeab0 is empty fatal: loose object 3165329bb680e30595f242b7c4d8406ca63eeab0 (stored in .git/objects/31/65329bb680e30595f242b7c4d8406ca63eeab0) is corrupt 任何想法如何解决这个错误? 编辑 我试过git fsck我得到了: error: object file .git/objects/03/dfd60a4809a3ba7023cbf098eb322d08630b71 is empty fatal: loose object 03dfd60a4809a3ba7023cbf098eb322d08630b71 (stored in .git/objects/03/dfd60a4809a3ba7023cbf098eb322d08630b71) is corrupt
当我在Git中指定一个祖先提交对象时,我在HEAD^和HEAD~之间混淆了。 两者都有一个“编号”的版本,像HEAD^3和HEAD~2 。 他们对我来说看起来很相似或相同,但在代字和插入符号之间是否有区别?
我不清楚如何git revert工作。 例如,我想回到第六个提交的提交,恢复中间提交的所有变化。 说它的SHA哈希是56e05fced214c44a37759efa2dfc25a65d8ae98d 。 那么为什么我不能这样做: git revert 56e05fced214c44a37759efa2dfc25a65d8ae98d ?