当你运行git branch -r为什么火焰会列出origin/HEAD?例如,GitHub上有一个远程仓库,比如说有两个分支:master和awesome-feature.如果我git clone抓住它然后进入我的新目录并列出分支,我看到:
$ git branch -r
origin/HEAD
origin/master
origin/awesome-feature
Run Code Online (Sandbox Code Playgroud)
或者它的任何顺序(阿尔法?我正在伪造这个例子以保持无辜的回购秘密的身份).那么HEAD业务是什么?它是什么,最后一个人push有他们HEAD在尖时,他们推?这不会是他们push编辑的一切吗?HEAD四处走动......为什么我会关心别人HEAD在另一台机器上指出的东西?
我只是处理远程跟踪等问题,所以这是一个挥之不去的混乱.谢谢!
编辑:我的印象是专用的远程回购(比如GitHub,没有人会在这个代码上工作,但只有拉或推等)没有也不应该有HEAD,因为基本上,没有工作副本.不是吗?
我正在寻找.hgignore文件的表达式,以忽略指定文件夹下的所有文件.
例如:我想忽略bin下面的所有文件和文件夹
实际上,关于如何形成表达式的任何建议都会很棒
我尊重的许多数据分析师都使用版本控制.例如:
但是,我正在评估采用像git这样的版本控制系统是否值得.
简要概述: 我是一名社会科学家,他使用R来分析研究出版物的数据.我目前不生产R包.我的项目R代码通常包括几千行代码,用于数据输入,清理,操作,分析和输出生成.出版物通常使用LaTeX编写.
关于版本控制,我已经阅读了许多好处,但它们似乎与独立数据分析师的相关性较低.
采用版本控制还涉及几个潜在成本:
但是,我仍然觉得我错过了什么.关于版本控制的一般指南似乎比数据分析师更多地针对计算机科学家.
因此,特别是在类似于上面列出的情况下的数据分析师:
我们团队中的每个人都使用IntelliJ IDEA,我们发现将其项目文件(.ipr和.iml)放入源代码控制中非常有用,这样我们就可以共享构建配置,设置和检查.此外,我们可以在TeamCity的持续集成服务器上使用这些检查设置.(我们在.gitignore文件中有每用户工作区.iws文件,而不是源代码控制.)
但是,当您在IDEA中执行任何操作时,这些文件会以很少的方式发生变化.在IDEA的问题数据库中存在一个问题(IDEA-64312),所以也许人们可能会认为这是IDEA中的一个错误,但在可预见的未来,这是我们需要忍受的错误.
直到最近,我们使用Subversion,但我们最近切换到Git.我们每个人都习惯了我们忽略的项目文件的更改列表,并且没有签入,除非我们想要与其他人共享项目文件更改.但是对于Git来说,真正的力量似乎是(从我们正在探索的)它所鼓励的连续分支,并且在分支之间切换是一个痛苦,项目文件总是被修改.通常它可以以某种方式合并更改,并尝试处理现在应用于新分支的项目文件更改.但是,如果新分支已更改项目文件(例如分支正在处理尚未在其他分支中的新模块),git只会抛出一个错误,即在文件中合并没有任何意义当分支都有变化并且你在本地有变化时,我宁愿理解它的观点.从命令行,可以在"git checkout"命令中使用"-f"强制它抛出本地更改并改为使用分支,但是(1)IDEA中的Git Checkout GUI命令(10.5.1)似乎没有那个我们可以找到的选项,所以我们需要定期切换到命令行,(2)我们不确定我们是否想养成使用它的习惯标志并告诉Git抛弃我们的本地更改.
所以,我们有一些关于我们必须处理的选项的想法:
我想我希望有一些我们错过的明显(或非显而易见)解决方案,或许可以处理Git和IDEA似乎都具有的巨大可定制性.但似乎我们不可能成为唯一有这个问题的团队.是一种类似于StackOverflow上的问题包括3495191,1000512和3873872,但我不知道,因为他们是完全一样的问题,也许有人能拿出的优点和缺点,我列出的各种方法,这些问题的答案中列出的方法,或他们推荐的方法.
谢谢.
我做了3个git提交,但没有被推送.如何修改不是最新的旧版本(ddc6859af44)和(47175e84c)?
$git log
commit f4074f289b8a49250b15a4f25ca4b46017454781
Date: Tue Jan 10 10:57:27 2012 -0800
commit ddc6859af448b8fd2e86dd0437c47b6014380a7f
Date: Mon Jan 9 16:29:30 2012 -0800
commit 47175e84c2cb7e47520f7dde824718eae3624550
Date: Mon Jan 9 13:13:22 2012 -0800
Run Code Online (Sandbox Code Playgroud) 维基百科称3向合并不像双向合并那样容易出错,而且通常不需要用户干预.为什么会这样?
3向合并成功并且双向合并失败的示例将是有帮助的.
我想要一个尚未合并到master的分支中的所有更改的差异.
我试过了:
git diff master
git diff branch..master
git diff branch...master
Run Code Online (Sandbox Code Playgroud)
但是,在每种情况下,diff都包含master中尚未合并到我的分支中的内容.
有没有办法在我的分支和主人之间做一个差异,排除了尚未合并到我的分支的主人的变化呢?
在我跟踪svn repo的git repo中,我对一个文件进行了大量编辑.
现在我想恢复这些更改(如svn revert),但只是部分文件.
我希望能够查看文件中的差异,丢弃(还原)我不想要的更改并保留我想要的更改.
该
git add -i
Run Code Online (Sandbox Code Playgroud)
命令似乎有一个选项可以做到这一点,但我不想暂时这样做.
我正在使用Git来管理我的两台计算机和我的开发.我正在尝试将更改提交给GitHub,我收到错误.
无法推送一些参考
<repo>.为了防止您丢失历史记录,拒绝了非快进更新.在再次推送之前合并远程更改.
可能导致这种情况的原因是什么?
编辑:
拉回购物品会返回以下内容:
*分支主 - >主(非快进)已经是最新的
推送仍然给我上述错误.