非常快,我正在重组我的Git存储库,但我对这种情况有疑问,我不想搞砸它,我目前正在使用Visual Studio 2015和Git Lab。
我有这些分支A(主)和& Bqwerty(开发),Bqwerty没有正确的名称约定,所以我想重命名它或用正确的名称创建一个分支,然后删除Bquerty。
Visual Studio 2015(团队资源管理器)或GitLab都没有提供重命名分支的选项(或者至少我找不到它),
运行是否安全:
git branch -m <newname>
它会影响Visual Studio或Git Lab吗?
或者,如果我做了一个新的分支Bqwerty - &gt; B然后删除Bqwerty,即使B尚未合并,这还会保留历史吗?
答案 0 :(得分:2)
我不知道您提到的工具,但根据我对Git的了解,分支重命名可以正常工作。
在Git中,分支只是提交的指针。此历史记录存储在提交中,因此重命名只会生成一个指向与旧分支相同的提交的新指针。这种方式与创建和删除几乎完全相同。
唯一的区别是重命名将保留重命名,而create / delete则不会。
reflog是特定分支或引用指向的提交的日志。这是一个存储库本地的东西,在推送/获取时不会共享。这不是标准的Git历史记录,它实际上是提交历史记录,它没有真正关于分支名称,并且与push / fetch共享。
答案 1 :(得分:0)
当我用
重命名时遇到了小麻烦git branch -m <newname>
Bqwerty当地分支机构已成功更名为B,但它仍指向原产地/ Bqwerty。
所以我最终做的是从origin / Bqwerty创建一个新的远程分支(origin / B),之后我使用了:
git push -u origin B:B
将我的本地B分支指向origin / B分支。
最后我删除了我的远程起源/ Bqwerty分支,现在一切正常:D