我想从分支机构获取最新的X提交,并能够在不同的分支上应用它们.例如,do git rebase -i HEAD~10允许我以交互方式修改并应用我所在的同一分支上的最后10个提交.
是否可能做同样的事情但是在特别的其他分支上应用提交,历史可能会分歧很多?
在Visual Studio代码的GIT选项卡上有一个上下文菜单,其中包含以下项目:
==================
==================
...
发布按钮有什么作用?
首先,我在源代码管理中看到了.vs\config\applicationhost.config.
我们正在团队中工作,Visual Studio会更改applicationhost.config文件中的某些路径.我们需要排除这一点.在我的.gitignore文件中,我添加了:
/.vs/config/applicationhost.config
但是,在每次提交时,都会再次添加到git中.在VS2015 Update 2之前,它没有问题,但在此更新后,某些内容已更改为与VS的git集成,现在它已被包含在内.每当我的同事将更改提取到分支时,他们的IIS Express就会因为此文件的更改而失败(它有我自己的PC路径本地的路径等),反之亦然.
如何将此文件完全从源代码管理中提取出来?
我在我的网站托管和Bitbucket的帐户上都有git设置,它们都是链接的.
我怎样才能恢复到我的托管(我通过SSH登录并安装了git并且已经准备就绪)和Bitbucket上的第一次提交?
我试过了: git checkout 965a793
然后我尝试了最后一个点: git checkout .
但是当我得到git推动时,Bitbucket方面似乎没有任何改变.它说一切都是最新的,即使Bitbucket正在提交cf08232
这是我的三个提交列表:
cf08232 remove the txt file
096d08f test.txt edited online with Bitbucket
965a793 Initial Commit
Run Code Online (Sandbox Code Playgroud) 在重写了存储库的历史记录之后git filter-branch,所有的SHA都会发生变化.
现在,如果该存储库(让我们称之为X)被用作另一个存储库中的git子模块(让我们调用它Y),我们就遇到了问题.
实际上,Y根据该子模块X中提交的SHA 知道要加载的子模块的版本.由于X现在所有的SHA 都已发生变化,因此Y指向不再存在的SHA.
有没有办法重写它的历史Y,它指向子模块的新提交SHA X(在当前和过去的提交中)?
我猜想,鉴于旧的SHA和新的SHA之间的对应关系,原则上这是可能的,但我担心它会涉及令人讨厌的bash脚本.
还有什么比这更容易了
我一直能够创建一个项目/解决方案并将其添加到源代码控制中,它将被添加到TFS中.在过去的几个月里发生了一些变化,当我在Visual Studio 2015 Enterprise中创建一个新的项目/解决方案时,它会自动使用git,即使源控件插件设置为TFS.我已经尝试了工具>选项>源代码控制并将插件设置回TFS(VS将其重置为git),关闭Visual Studio,重新打开并且插件仍设置为TFS,直到我向源代码控制添加项目/解决方案.
如果我创建一个新项目并将其添加到源代码控制,我没有提示,它立即使用git(即使设置为TFS).当我回过头来看一下Source Control插件时,它被设置为git by vs.
我们不使用git,源代码控制是TFS2010.无论如何制作VS它给我一个源代码控制选择,或者只是将其指定为仅使用TFS?
我在阅读一些git文档时正在寻找"hunk"的定义.
我知道这意味着描述两个文件之间的区别,并且它有一个定义良好的格式,但我无法想到一个简洁的定义.
我尝试用谷歌搜索,但有很多有点虚假的点击.
我很抱歉提出关于合并与rebase的哲学辩论,但我有一个实际问题,关于典型的公司工作流程(不是开源项目工作流程,可能会有所不同).
垫底,因为在这里指出,不应该,如果您有推更改使用.这是如此,因为其他人可能已从你的分支分支,然后重写该分支的历史(通过强制推动)将使他们很难.
因此,使用变基的正确方法是仅在本地提交.但至少在我的简短经历中,这是不可取的:
将功能分支保持在本地对我来说是违反直觉的.不仅由于以上几点,而且由于以下用例:您正在开发一项功能,但要么被拖到更紧急的地方,要么去度假,或者生病.一位同事必须完成它.然后你改变并推动(除非你生病,在这种情况下,它保持在本地,没有人可以完成它),而另一个人完成它.
在此期间,主人有变化.但是另一个人已经基于一个远程分支,所以他应该使用merge,rebase和force-push(如果其他人同时将其分支基于那个分支,那么这可能会使事情变得棘手).
这听起来像边缘情况,但它们不是.这些条件中的至少一个(在家工作,生病,去度假,完成别人的工作等)经常发生.
那么,使用"rebase"是进入这些用例的好方法,还是合并(使用额外的"merge commit")是更安全,更直接的选择?