我正在尝试学习git中的分支和合并.我认为合并2个分支会自动生成合并提交和消息(我认为这是一件好事).我想要自动生成提交和提交消息,最好能够编辑提交消息.
我做了一个"测试"分支,删除了两个非关键文件,提交,然后将测试合并回master.我没有得到合并的提交或提交消息; 相反,HEAD(在master上)成为测试分支的最后一次提交.
难道我做错了什么?有没有办法强制它自动生成每次合并的提交,最好是允许我编辑提交消息?
谢谢.
可能的重复:
git 最好的 CRLF 处理策略是什么?
我目前正在做一个项目,几乎每次我将 master 合并到我的分支时,我都会遇到合并冲突,git 说整个文件都已更改。通常,当我使用 Notepad++ 的比较工具比较这些文件时,它会报告实际上只有几行发生了更改,而且通常甚至不应该导致冲突。
有一段时间我只是把这种行为作为一个在跨平台工作时必须遇到的问题(我们的团队使用 Windows 7、OSX 和 debian 的混合进行开发),但是今天当我合并时,有一些阻碍我前进的严重问题。我自己研究过这个问题,似乎它可能与 git core.autocrlf 配置有关,但我不确定如何解决这个问题,以便它立即消失,或者随着 git 修复损坏而慢慢消失我以前做过。任何人都可以就如何解决这个问题提出任何建议吗?
谢谢,
亚历克斯
我有一个本地分支,其中5个提交不在远程分支中,而远程分支中有6个提交,不在我的本地分支中。
我将本地提交压缩为一个提交,现在在本地分支中有1个提交。我做了“ git pull --rebase ”,它说有冲突。我修复了冲突文件,并对所有这些文件进行了“ git add ”。现在,当我执行“ git status”时,它说我不在任何分支中,并且我有一堆文件需要提交。因此,我对所有文件执行了“ git commit ”并签出到本地分支,并执行了“ git rebase --continue ”。现在它说没有要提交的文件,即时消息返回到原始状态,在本地有1次提交,在远程有6次提交,即时消息仍位于rebase的中间!
有人可以照亮我的仓库中发生的事情吗?
所以我有点搞砸了,创造了一个独立的头,因为我想回到我的代码的先前版本.问题是:现在我无法推动任何东西,因为我的主分支是一个独立的头.如果我尝试合并分支,那么它就会摆脱头部及其上的任何东西.如何将我的分离头上的提交返回到主分支?我听说过这段代码:git merge HEAD @ {1}但是我很害怕在没有确认的情况下尝试它,因为我害怕会发生什么.有人知道怎么做吗?
我知道这个话题有一些问题,但我没有得到我的问题的答案。
我正在与 Bitbucket 合作,但我不确定我是否总是正确地做所有事情,因为我在 Bitbucket 非常新
我在将分支合并到 master 时有冲突。
// Check if a filter is set
if(filter_id) {
var filter = filter_id;
+<<<<<<< destination:b9a9e6b6e3b21d06f9f726ba8a3b24c221c695f4
}
else {
var filter = -1;
}
+=======
+ }
+ else {
+ var filter = -1;
+ }
+>>>>>>> source:8ab52e4f8401ac8b5b68682d888e7538a7183216
Run Code Online (Sandbox Code Playgroud)
你知道我该如何解决这个错误吗?也许通过修改代码?
这种冲突一般意味着什么?我做错了什么?
谢谢您的回答!
在Android Studio中,右下角有处理分支的选项。在合并另一个远程或本地分支的“合并”选项中,它显示诸如Force merge和的选项smart merge。
他们到底在做什么?
与本地/远程分支机构合并时?
我执行了多次merge提交,但它们应该是merge --squash相反的.解决冲突花了一天多的时间,所以我不能手工重做合并.
有没有办法将其转换merge为merge --squash?
我正在整理我的仓库,并想删除一些不再使用的旧分支。有很多有关如何删除这些信息。但是,我不确定这些解决方案对我来说是否安全,因为我使用合并了分支--no-ff。
想象一下我的日志看起来像这样:
master *--*--*--------*--*--*--*
\ / /
\ / |
feature_a *--*--* |
\ |
\ /
feature_b *--*--*
Run Code Online (Sandbox Code Playgroud)
问题:如何删除feature_a和feature_b分支而不丢失数据和日志结构?
基本上,我想那git branch只是回报*master,并在日志曲线看起来仍然像上面(的即没有改写的提交feature_a和_b到master)。
假设有一个fileA开master(说它由1000行组成)
我们在feature_branch,fileA有1050行的长度.
那么它是如何成为可能的,正在进行master和表演
git merge feature_branch
Run Code Online (Sandbox Code Playgroud)
该fileA结束有(再次)1000行?
合并消息显示没有冲突,并通知我
自动合并fileA
更新:重要的是:
当使用仅包含特定文件的新虚拟项目对此进行测试时,
以master/ 1000行开头
合并feature_branch/ 1050行,
并结束了1050线.
我想这是一个关于主要项目历史的问题呢?
:git merge <commit-id>和之间有区别
git cherry-pick <commit-id>吗?其中“ commit-id”是我要进入master分支的新分支的提交的哈希。