我将如何在没有任何冲突的情况下尽早将提交移至分支上(无需太多手动工作,例如 rebase -i)?
例如
ABCDX
应该成为
ABXCD
如果将 X 与 C 和 D 交换没有冲突,但将 X 与 B 交换会导致冲突。
谢谢。
我正在开发一个 Git 客户端,现在我正在尝试实现特定分支的签出。我有一个填充了分支名称的组合框,我想找出哪个分支是默认分支,以便在连接到有效的 Git 存储库时可以将其设置为组合框中的预选项目。
我列出了所有远程分支,如下所示,但我无法弄清楚哪个是默认分支。
Map<String, Ref> callAsMap = Git.lsRemoteRepository()
.setRemote("https://github.com/example")
.setCredentialsProvider(credentialsProvider)
.callAsMap();
Run Code Online (Sandbox Code Playgroud)
那么,有没有一种方法(标准或“hacky”)来检测哪个Ref对象代表默认分支?我怎样才能得到它的名字?
我从事几个项目,其中一些具有main默认master分支。我无法用一个或其他名称重命名所有项目,因为并非所有项目都由我管理。我知道.gitconfig别名系统非常广泛,所以我想知道是否有一种方法可以接受涉及的每个命令的两个名称。到目前为止,我只找到了这个,但它涉及修改每个单独的命令,并且使用!sh -c它不是很“漂亮”。理想的情况是还测试两个分支是否确实存在于存储库中以避免错误。
我尝试master = main在 .gitconfig[alias]部分的开头添加,但无论哪种方式都不起作用。
这是原生 git 概念吗?
我研究这个问题有一段时间了,似乎无法理解?我得到的只是 Github 文档,而 master 是最初的默认分支。
如果可能的话,有人可以解释一下这个概念在 git 方面意味着什么吗?
编辑:例如,什么设置或想法使某个特定分支成为默认分支(不一定是第一个分支,而是持续的),以及如何在 Github 等之外更改它
我的直觉告诉我,从更一般的意义上来说,这是 HEAD 所指向的位置(在您克隆并合并回的存储库中,就像服务器上的裸存储库),这是否接近?
泰!
我使用 gcm(alias to git checkout $(git_main_branch)) 来切换项目中的分支,但是切换到trunk分支,我期望切换到 master 分支。
echo $(git_main_branch)
trunk
Run Code Online (Sandbox Code Playgroud)
将 git_main_branch 更改为 master 而不是 trunk。在我的其他项目中,git_main_branch 正如我所期望的那样是 master
我认为名称master分支是每个人都在 git 存储库中工作的“主”分支,这只是一个约定。正确的?
那么我如何知道 git 存储库中已覆盖的“主”分支名称是什么,以便不使用该名称master?