我有很多分支,它们会定期合并,即我们可以有A,它合并到B,然后B合并到C,然后A转换成D,D转换成C等等.假设我有一个提交X,我知道最初在A中引入,然后以某种方式合并到C中(当我执行git log C时我可以看到它).有没有办法找出哪个合并(哪个合并提交)将提交X带入分支C?
我有一个git svn rebase,我发生了冲突.我想git-merge-file通过选择服务器上的版本来合并文件的两个版本.git-merge-file调用此选项--theirs但git-merg-file需要3个参数.我如何只传递包含冲突标记的文件并让它选择它们的版本?
我也试过,git merge -Xtheirs file.cpp但它不起作用.
我一直在研究不同的存储库,并注意到一种不同的行为:在一个项目中,当我将其他人的工作拉入我的工作时,我只是在我的历史记录中得到了他们的提交,另一个git在我拉动时创建了一个自动合并提交.在这两种情况下都没有冲突,并且两个存储库都是在同一台服务器上的裸存储库.
是什么原因导致git在pull上添加或不添加此自动合并提交?
我们最近开始git-flow在我们公司使用,我们遇到了以下问题:
我们有一个DEV_MODE布尔值来控制应用程序中的日志记录级别,我们希望开发分支始终具有DEV_MODE=true.
但是,在发布版本时,我们将更DEV_MODE改为false.
当我完成发布时git-flow,它会合并DEV_MODE=false到开发分支中.
我有一个钩子,我可以用来防止这种情况,或者可能告诉git如何合并发布分支中的文件以进行开发?
所以我们的团队对Git来说是新手.我们遇到了类似这样的情况,只是更糟糕的情况:开发人员进行了一次糟糕的合并,然后糟糕的合并被埋没在大约20次后续提交中,因为我们只注意到一天后的不良合并.
我们如何解决这个问题?
编辑:看起来git revert -m命令可能是诀窍,但只有一个文件,我们真的需要还原...一个严重损坏的大edmx文件.有什么方法可以将恢复限制为该文件?
"隐式非冲突合并后,Vim打开请求提交消息"似乎是一个相对常见的问题,似乎是一个相对简单的答案:git config --global core.mergeoptions --no-edit.
不幸的是,这对我或我班上其他15人中的至少8人来说似乎没有用,而且我们的教练也有点困惑(尽管公平地说他没有时间去研究它快速谷歌搜索或两个).这不是一个大问题,因为你可以轻松地逃脱:q,但我们想知道答案,我的谷歌搜索返回Stack Overflow问题--no-edit作为解决方案(通过核心或每次完成拉动).
我的.gitconfig(减去个人信息):
[mergetool "kdiff3"]
path = "/c/Program Files/KDiff3/kdiff3.exe"
[merge]
tool = kdiff3
[core]
mergeoptions = --no-edit
[mergetool]
keepBackup = false
Run Code Online (Sandbox Code Playgroud)
但是:
.
有没有人知道为什么修复不起作用(即:"雅顿在拼写'选项'"中愚蠢),或者是否有更好/更可靠的方法来解决这个问题?
我被埋在一个混蛋中.
我是怎么到达那里的:
我不是一个git专家.如果我没有任何细节,请问我澄清一下.几天前我运行了以下命令将我的更改推送到远程分支.
% git checkout master
% git pull
% git checkout redactor_changes <-- this is the branch that I made my changes
% git commit -m "changes" # I added my changes previously
% git rebase master
% git push origin redactor_changes # pushed changes to remote branch
Run Code Online (Sandbox Code Playgroud)
并非每个人都具有将更改合并到主分支的写入权限.拥有远程回购的写入权限的人告诉我存在冲突并进行改变并再次提交.所以今天我按照确切的顺序运行了以下命令.
vagrant@vagrant-ubuntu-trusty-64:~/oblog$ git add oblog/static/css/styles-custom.css
vagrant@vagrant-ubuntu-trusty-64:~/oblog$ git add oblog/static/js/redactor.upload_image.js
vagrant@vagrant-ubuntu-trusty-64:~/oblog$ git add oblog/static/images/loading.gif
vagrant@vagrant-ubuntu-trusty-64:~/oblog$ git commit -m "Throw a toast when user upload an non-image file with image extension"
vagrant@vagrant-ubuntu-trusty-64:~/oblog$ …Run Code Online (Sandbox Code Playgroud) 在我们的项目中,主分支完全崩溃了。它认为它领先一些承诺,如果我们尝试合并开发,则表明存在大量冲突。它已经被打破很长时间了,所以开发中发生了很多事情(解决了太多冲突)。
我只想用dev覆盖master中的所有内容(因此master基本上等于dev)。我该怎么做呢?
我尝试删除本地master中的所有内容,然后运行以下命令:
git checkout master
git reset --hard develop
Run Code Online (Sandbox Code Playgroud)
似乎给我所有正确的文件,但是当我尝试推送主文件时,出现此错误:
Updates were rejected because the tip of your current branch is behind
Run Code Online (Sandbox Code Playgroud) 我将两个分支合并在一起,让我们说branchA和branchB。他们有大约100个有冲突的文件。
branchB可以接受所有工作,并且100%是我所需要的。我不想强制推送branchB或任何东西。
有没有一种方法可以合并这两个文件,只是说有任何冲突就可以接受branchB上的内容,所以我不必打开每个文件或“他们的文件”或“我们的文件”。
正在尝试从branchB进行递归合并,并使用-s和-x选项将branchA拉出,但这似乎没有按预期工作
谢谢