Questions tagged «git-merge»

git-merge是一个git命令,它通过将提交合并到当前已签出的分支中来集成来自另一个分支的更改。


30
撤消尚未推送的Git合并
Наэтотвопросестьответына 堆栈溢出нарусском:Какотменитьпоследний推? 在我的master分支中,我在git merge some-other-branch本地进行操作,但从未将更改推送到原始master。我不是要合并,所以我想撤消它。git status合并后进行一次操作时,我收到此消息: # On branch master # Your branch is ahead of 'origin/master' by 4 commits. 根据我发现的一些说明,我尝试运行 git revert HEAD -m 1 但是现在我收到以下消息git status: # On branch master # Your branch is ahead of 'origin/master' by 5 commits. 我不希望我的分支领先于任何数量的提交。我如何回到这一点?
3937 git  undo  git-merge 


13
将Git分支合并到master中的最佳(最安全)方法是什么?
从master创建了一个新分支,我们称之为test。 有几个开发人员致力于master或创建其他分支,然后合并到中master。 假设工作test需要几天的时间,而您想不断test更新内部的提交master。 我会git pull origin master从test。 问题1:这是正确的方法吗?其他开发人员可以像我一样轻松地处理相同的文件。 我的工作test已经完成,现在可以将其合并回了master。这是我可以想到的两种方法: A: git checkout test git pull origin master git push origin test git checkout master git pull origin test B: git checkout test git pull origin master git checkout master git merge test 我没有使用,--rebase因为据我所知,rebase将获得更改并将其归类于此master,因此它可能会覆盖其他人所做的更改。 问题2:这两种方法中哪一种是正确的?有什么区别? 所有这一切的目的是使test分支机构随时了解发生的事情,master然后我可以将它们合并回去,master以期使时间表尽可能地线性。


25
如何有选择地合并或选择Git中另一个分支的更改?
我在一个新项目上使用git,该项目有两个并行的但目前仍处于试验阶段的开发分支: master:导入现有的代码库以及一些我通常确定的mod exp1:实验部门1 exp2:实验部门2 exp1并exp2代表两种截然不同的架构方法。直到我步入正轨,我才知道哪一个(如果有的话)会工作。当我在一个分支中取得进展时,有时我会进行一些编辑,而这些编辑在另一分支中将非常有用,并且希望将这些合并。 将选择的更改从一个开发分支合并到另一个开发分支,同时又保留其他所有分支的最佳方法是什么? 我考虑过的方法: git merge --no-commit 然后手动撤消我不想在分支之间共享的大量编辑的暂存。 手动将公用文件复制到temp目录中,然后git checkout移动到另一个分支,然后从temp目录中进行更多手动复制到工作树中。 上面的变化。exp现在放弃分支,并使用另外两个本地存储库进行实验。这使得手动复制文件更加简单。 所有这三种方法似乎都是乏味且容易出错。我希望有更好的方法;类似过滤器路径参数的参数,可以使git-merge选择更具选择性。


11
如何使用git merge --squash?
我有一个远程Git服务器,这是我要执行的方案: 对于每个错误/功能,我创建一个不同的Git分支 我继续使用非官方的Git消息在该Git分支中提交代码 在顶级存储库中,我们必须使用官方Git消息对一个错误进行一次提交 那么,如何将我的分支合并到远程分支,以便他们对所有签入仅获得一次提交(我什至想为此提供提交消息)?
1207 git  git-merge  git-squash 

11
如果我已经开始重新设置基准,如何将两个提交合并为一个?
我正在尝试将2个提交合并为1个,因此我遵循了git ready中的“使用rebase压缩提交”。 我跑了 git rebase --interactive HEAD~2 在生成的编辑器中,我更改pick为squash然后保存退出,但是重新设置失败并显示以下错误 没有先前的提交就无法“压扁” 现在我的工作树已达到此状态,我无法恢复。 该命令git rebase --interactive HEAD~2失败并显示: 交互式基础已经开始 并git rebase --continue失败了 没有先前的提交就无法“压扁”
1157 git  git-merge 

8
Git将主合并到功能分支
假设我们在Git中有以下情况: 创建的存储库: mkdir GitTest2 cd GitTest2 git init 在主服务器中进行一些修改并提交: echo "On Master" > file git commit -a -m "Initial commit" Feature1从master分支出来,并完成了一些工作: git branch feature1 git checkout feature1 echo "Feature1" > featureFile git commit -a -m "Commit for feature1" 同时,在主代码中发现一个错误,并建立了一个修补程序分支: git checkout master git branch hotfix1 git checkout hotfix1 该错误已在hotfix分支中修复,并重新合并到master中(可能在请求请求/代码审查之后): echo …

10
撤消git pull,如何将存储库恢复为旧状态
有什么方法可以还原或撤消git pull,以便我的源/存储库可以恢复到执行git pull之前的旧状态?我要这样做是因为它合并了一些我不想这样做的文件,而只合并了其他剩余的文件。所以,我想找回那些文件,这可能吗? 编辑:我想撤消git merge进行澄清。看到一些答案后,我这样做了 git reflog bb3139b... HEAD@{0}: pull : Fast forward 01b34fa... HEAD@{1}: clone: from ...name... 现在,我该怎么办?这样做git reset --hard 是OK?我不想再次搞砸,所以要求详细的步骤吗?

11
Git工作流程和变基与合并问题
我已经在与另一个开发人员的项目中使用Git几个月了。我在SVN方面拥有多年的经验,所以我想我为这段感情带来了很多麻烦。 我听说Git非常适合分支和合并,到目前为止,我只是看不到它。当然,分支是非常简单的,但是当我尝试合并时,一切都会陷入困境。现在,我已经习惯了SVN,但是在我看来,我只是将一个低于标准的版本控制系统换成了另一个。 我的伴侣告诉我,我的问题源于我想要合并Willy-nilly的愿望,在许多情况下,我应该使用rebase而不是合并。例如,这是他制定的工作流程: clone the remote repository git checkout -b my_new_feature ..work and commit some stuff git rebase master ..work and commit some stuff git rebase master ..finish the feature git checkout master git merge my_new_feature 本质上,创建一个功能分支,始终将其从master转移到master,然后从分支合并回到master。需要注意的重要一点是,分支始终位于本地。 这是我开始的工作流程 clone remote repository create my_new_feature branch on remote repository git checkout -b …

18
是否有“他们的”版本的“ git merge -s ours”?
使用将主题分支“ B”合并到“ A”时git merge,出现了一些冲突。我知道可以使用“ B”中的版本解决所有冲突。 我知道git merge -s ours。但是我想要的是类似的东西git merge -s theirs。 为什么不存在?与现有git命令发生冲突合并后,如何获得相同的结果?(git checkout来自B的每个未合并文件) 更新:只是从分支A中丢弃任何东西(合并提交点到树的B版本)的“解决方案”不是我想要的。
876 git  git-merge 

29
.gitignore和“以下未跟踪的工作树文件将被签出覆盖”
因此,我在.gitignore文件中添加了一个文件夹。 一旦我做了一个git status告诉我 # On branch latest nothing to commit (working directory clean) 但是,当我尝试更改分支时,我得到以下信息: My-MacBook-Pro:webapp marcamillion$ git checkout develop error: The following untracked working tree files would be overwritten by checkout: public/system/images/9/thumb/red-stripe.jpg public/system/images/9/original/red-stripe.jpg public/system/images/8/thumb/red-stripe-red.jpg public/system/images/8/original/red-stripe-red.jpg public/system/images/8/original/00-louis_c.k.-chewed_up-cover-2008.jpg public/system/images/7/thumb/red-stripe-dark.jpg public/system/images/7/original/red-stripe-dark.jpg public/system/images/7/original/DSC07833.JPG public/system/images/6/thumb/red-stripe-bw.jpg public/system/images/6/original/website-logo.png public/system/images/6/original/red-stripe-bw.jpg public/system/images/5/thumb/Guy_Waving_Jamaican_Flag.jpg public/system/images/5/original/logocompv-colored-squares-100px.png public/system/images/5/original/Guy_Waving_Jamaican_Flag.jpg public/system/images/4/thumb/DSC_0001.JPG public/system/images/4/original/logo.png public/system/images/4/original/DSC_0001.JPG public/system/images/4/original/2-up.jpg public/system/images/3/thumb/logo2.gif …
826 git  git-merge  gitignore 

5
如何撤消有冲突的git merge
我在树枝上mybranch1。mybranch2是从中分叉mybranch1并进行更改的mybranch2。 然后,在上mybranch1,我已经完成了git merge --no-commit mybranch2 它表明合并时存在冲突。 现在,我想放弃所有内容(merge命令),以便mybranch1恢复到之前的状态。我不知道该怎么办。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.