相关疑难解决方法(0)

我怎么告诉git总是选择我的本地版本来解决特定文件上的冲突合并?

假设我通过git存储库与某人合作,并且有一个特定的文件,我永远不想接受任何外部更改.

有没有办法让我设置我的本地仓库,以便每当我拉动时不抱怨冲突的合并?我想在合并此文件时始终选择我的本地版本.

git git-merge

94
推荐指数
2
解决办法
4万
查看次数

在进行git合并时是否可以排除特定的提交?

假设我想从发布分支合并到主分支,并且在发布分支中有一些我不希望包含在主分支中的提交.有没有办法进行合并,以便一个或多个提交不会合并?

到目前为止,我的策略是执行以下操作(在掌握中):

git merge --no-commit release-branch
# Resolve conflicts and apply reverse patch of the commits that I don't want included
git commit # Edit commit message so that it lists the commits that have been reverse-patched
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

git

67
推荐指数
3
解决办法
5万
查看次数

Git合并策略'他们'不解决修改/删除冲突

git merge使用以下选项执行a 时:

git merge -X theirs master

偶尔会有冲突的文件:

CONFLICT(修改/删除):在master中删除File_A.java并在HEAD中修改.File_A.java的版本HEAD留在树中.

但是,我希望-X theirs在这些情况下识别该选项,并使用theirs更改的版本,该版本用于删除该文件.

是否有原因导致此类冲突无法自动解决,特别是因为我提供了一个特定的合并策略,建议它应该删除该文件?

此外,如何(如果可能)我可以更新我的merge命令以使用theirs此类冲突的版本?

git

21
推荐指数
2
解决办法
3275
查看次数

.gitattributes和文件的个别合并策略

我有一个主人和我的(网络)应用程序的测试分支.这些项目几乎相同,只有一个设置应用程序的文件,比如说"setup".

每当我将一个分支合并到另一个分支时,我希望该分支保持其版本的设置.也就是说,git不应该尝试将更改合并到该文件.

我按照Pro Git书中指导创建了一个.gitattributes文件,其中包含"setup merge = ours"行.但是,这不起作用 - 如果我引入冲突,也不能快速合并.

(确切地说:

$: mkdir gitest
$: cd gittest
$: git init
$: echo "setup merge=ours" >> .gitattributes 
$: echo "master" >> setup
$: git add setup .gitattributes
$: git commit -a -m ...
$: git branch test
$: git checkout test
$: echo "test" >> setup
$: git commit -a -m ...
$: git checkout master
$: git merge test
Run Code Online (Sandbox Code Playgroud)

预期结果:setup包含单词"master",而git执行ff merge并且setup是"test".)

git

17
推荐指数
4
解决办法
2万
查看次数

Git:在gitattribute中为整个文件夹指定一个git merge策略"ours"(或者只是禁用特定文件夹上的合并错误?)

我需要排除dist/合并错误的文件夹,我不在乎它是否theirs,ours或其他策略,但我需要将其保留在修订控件中,因为这是部署到Heroku的方法..gitattributes脚本似乎是要走的路.但我似乎无法做到这一点.

我读了这个规范的答案和这个类似的答案,但无法找出我做错了什么.

我的.gitattributes配置:

* text=auto
dist/ merge=keepMine
Run Code Online (Sandbox Code Playgroud)

我的相关部分 .git/config:

[merge "keepMine"]
    name = always keep mine dist during merge
    driver = keepMine.sh %O %A %B
Run Code Online (Sandbox Code Playgroud)

keepMine.sh(在我的项目根文件夹中,没有文件夹不在路径中,但复制到路径中的文件夹没有帮助,并且不是一个好的解决方案,因为脚本应该是修订控制的一部分所以所有开发人员都会得到它):

# copied as is from the SO answer
# I want to keep MY version when there is a conflict
# Nothing to do: %A (the second parameter) already contains my version
# Just indicate the merge …
Run Code Online (Sandbox Code Playgroud)

git git-merge git-bash

9
推荐指数
1
解决办法
727
查看次数

如何使用Eclipse git merge工具进行"我们的"合并?

我正在尝试合并,我有冲突,一个文件大量分歧.eclipse git merge工具非常适合小的更改,但我的一个文件很大,并且有数百个明确标记的冲突部分.我不能为我的生活找到一个简单的方法来使用我们的"我们的"策略只使用我的版本并放弃远程版本进行合并.

在Linux或Mac上,我很容易从命令行执行此操作,但我在公司的Windows计算机上并且没有命令行git.我甚至尝试了从包资源管理器中的文件的上下文菜单中执行"替换为" - >"头部修订"的解决方法,但由于存储库处于合并冲突模式,因此该操作被禁用.这将是一个很好的解决方案,但是仍然可以更好地将"我们的"或"他们的"策略应用于合并工具中的整个文件.

我不得不求助于硬复位,复制我的文件,进行合并,然后用我的干净副本替换合并版本.我错过了一个更简单的方法吗?

eclipse egit

8
推荐指数
2
解决办法
6321
查看次数

仅从一个分支中删除文件的历史记录,而不是整个仓库

我有一个主题分支(关闭master)有很多变化.在本主题分支的历史中,对某个文件进行了大量更改.如何在我的主题分支的历史记录中删除对此文件的所有更改?

补充说明:

  • 请注意,该文件创建主题分支之前存在.我不想删除文件本身.
  • 我有几个解决方案,但到目前为止它们看起来很单调乏味.我会将它们作为单独的答案发布.
  • 可以git filter-branch以某种方式用于此吗?
  • 我的主题分支包含...说... 60次提交.

git

5
推荐指数
1
解决办法
206
查看次数

标签 统计

git ×6

git-merge ×2

eclipse ×1

egit ×1

git-bash ×1