
问题很简单。我使用源代码树来提交我的更改,但我确实是一个新手,我不想搞乱公共项目。我应该怎么做才能保留我添加的文件而不提交它们,同时将主分支更新到通用版本?
是否有任何命令可以在两个分支中查找文件的共同祖先?
假设有一个文件在两个分支中独立修改。我想找到两个分支共有的该文件的最后一个版本。我相信这可以归结为在两个分支中找到该文件的单父提交。
但是,merge-base 只允许查找提交的父提交,而不是文件。我尝试指定最后两次提交修改各自分支中的文件,但我得到的父提交不在任一分支中该文件的更改历史记录中,这可能是由于提交通常包含的更改超过一个文件。
作为 aagit pull命令的结果git mergetool,我使用该命令对许多冲突文件进行了一些更改,但我想将其恢复到使用 mergetool 进行更改之前的状态。
它基本上是 git 警告存在冲突并列出它们的状态。这需要什么命令?
我们有一个名为“develop”的主分支,所以每当我们开发一个功能时,我们都会从“develop”创建一个本地功能分支,然后再合并回开发。
现在的情况是,
1. User1 必须从“develop”(比如 feature1)创建一个功能分支,并且他必须将其发布到 Git。这个做完了。
所以现在,“develop”和“feature1”是 Git 中的 2 个不同分支,“feature1”中的更改不会合并到“develop”,因为“feature1”仍在开发中。
2. 后来我开始实现的功能对'feature1'有一些依赖。所以我从 git 克隆了 'feature1' 分支并决定更新我对它的更改,认为 'feature1' 已经从 'develop' 分支更新。
3.但后来我发现'feature1'分支没有更新'develop'分支的一些最新变化。
4.现在我需要'develop'的改变
使用 GIT 命令有什么可能的方法吗?
所以我有两个分支,假设分支 A 和分支 BI 已将分支 A 合并到分支 B。
git checkout B
git merge A
Run Code Online (Sandbox Code Playgroud)
现在我想在命令行中解决有利于分支 A 的差异。我该怎么做?
我有两个分支,由于某些原因,它们的合并非常乏味。有时我想添加一个合并提交来表明我已经将一些信息从一个分支带到另一个分支,例如我已经签出一个文件。
由于使用git merge会产生很多合并冲突,我唯一感兴趣的是创建一个有两个父项的提交,编辑MERGE_HEAD和提交是否安全?我的意思是,如果我使用git rebase或git cherry-pick将来会出现奇怪的错误吗?
我有一个场景,我在 gitlab 中为从我的新开发分支到 master 的几个文件创建了一个合并请求。我的 dev 分支总共有 9 次提交。在我的第三次提交中,我推送了一些文件,后来我意识到不再需要这些文件。
因此,现在在 6 个文件的合并请求中,我想要合并 3 个文件,并想要关闭这个特定的合并请求。我发现了一些解决方案,我在下面描述,但我正在寻找一个非常具体的解决方案。
1) 关闭此合并请求。创建/签出新的开发分支仅更改所需的文件并创建新的合并请求。
2)在主分支中精挑细选您想要的文件,保持合并请求保持打开状态。
3) 合并此请求,然后通过创建新的合并请求将更改挑选到选定的分支上。
可能还有其他我不知道的解决方案。但是,我正在寻找一个具体的解决方案
我不确定这是否可能。我只是想了解 git/gitlab 对此有什么解决方案吗?
我在http://github.com/ohcibi/prezto有一个 zprezto 的分支
重现我的问题:
git clone http://github.com/ohcibi/preztocd preztogit checkout ohcibi(我有一个分支叫这个名字,这里没有错别字!)git merge master提交日志显示,ohcibi自 4 月 26 日左右上次合并提交以来,只有 3 个提交是新的。所有 3 次提交都不会触及任何冲突的文件(除了一个预计会发生冲突的文件)。
但为什么该合并与其他文件甚至还有冲突呢.gitmodules?
注意:我不需要帮助解决合并冲突!我知道如何做到这一点,并且我故意没有将“添加”git-merge-conflict-resolution-tag到该问题,因为这将是一个错误的标签(所以它没有丢失,不要添加它!)。我想知道为什么这些冲突首先发生(假设冲突文件在两个分支中都没有更改,据我所知,这是合并冲突的常见原因)。
情况如下:
RepoA.git到新文件夹RepoBgit init并添加了不同的遥控器RepoB并将许多提交推送到远程现在,我想将我的工作与他们的存储库合并。这就是我在 中所做的RepoA。
git checkout develop
git remote add repoBOrigin https://www.cloud.com/repoB.git
git fetch repoBOrigin aBranchOfRepoB // all of the work is in this branch
git merge repoBOrigin/aBranchOfRepoB
Run Code Online (Sandbox Code Playgroud)
我得到了这个错误:fatal: refusing to merge unrelated histories
我在 stackoverflow 上查找了这个问题,发现可以通过使用--allow-unrelated-historiesflag 来解决这个问题,但这会附带一个警告,表明应该在极少数情况下使用它。
现在,我真正关心的是这个标志会导致什么后果/问题。RepoA 的 git 历史将如何形成?
没有人解释合并不相关历史的后果。由于该项目规模相当大,因此在将任何愚蠢的内容推送到他们的仓库之前我必须非常小心。
这是git merge情景。当我合并时,New merge commit被创建,所以如果我从 返回New merge commit,我可以看到所有Master和Feature分支提交的预定历史记录,直到Common base。这是我不明白的场景:如果我删除Feature分支,我认为 Feature 分支提交会被删除,但实际情况是,当我站在 上时New merge commit,删除Feature分支后,我仍然可以Feature在键入时看到分支提交git log。这怎么可能?我是不是误会了什么?