标签: git-merge

将git merge驱动程序添加到存储库?

我正在创建一个合并驱动程序.我已经定义了一个.gitattributes文件,如下所示:

filename merge=mergeStrategy

我在$ PROJECT/.git/config中创建了合并驱动程序,如下所示:

[merge "mergeStrategy"]
    name = My merge strategy
    driver = scripts/mergeScript.sh
Run Code Online (Sandbox Code Playgroud)

这在本地工作正常,但我想将此合并驱动程序提交到git存储库,以便合并策略对每个人都有效.

有没有办法可以将此(或其他Git配置选项)添加到存储库本身?

git merge git-merge git-config

16
推荐指数
1
解决办法
3280
查看次数

Git章鱼与不相关的repositoies合并

我有一堆git存储库,每个包含一个文件.我想将它们合并在一起,最好是一步到位.我的目标是这个图:

*----¬ mergedrepo/master
| \ \ \
| | | * repoA/master
| | * repoB/master
| | |
| | * repoB/...
| * repoC/master
* repoD/master
|
* repoD/...
Run Code Online (Sandbox Code Playgroud)

我试过了git merge,但看起来章鱼策略不适用于不相交的树木

$ git merge a/master b/master c/master d/master
Unable to find common commit with a/master
Automatic merge failed; fix conflicts and then commit the result.
Run Code Online (Sandbox Code Playgroud)

我也被告git merge --squash知会有所帮助,但这也给出了同样的错误.

这会生成正确的图形,但会丢失所有文件:

$ git merge -s ours a/master b/master c/master d/master
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

git git-merge

16
推荐指数
3
解决办法
1234
查看次数

仅在pom.xml中的版本标记上进行Git合并冲突

有没有办法在将master合并到分支时避免pom.xml中版本标记中的合并冲突.我有很多pom文件,80,并且它们都有相同的版本,与master中的版本不同.仅为版本标签执行80个pom文件的git mergetool是费力且耗时的.

谢谢,-Abidi

git git-merge pom.xml merge-conflict-resolution git-merge-conflict

16
推荐指数
2
解决办法
9711
查看次数

如何将分叉回购的分支合并到原始回购的主分支?

GitHub上有一个开源项目.它的原始仓库包含最新的主分支.现在有人(不是我)分配了这个仓库,从主分支创建了一个开发分支,并将东西添加到开发分支.我现在想要做的是将开发分支合并回主分支.不幸的是,分叉回购的主分支不是最新的.另请注意,我没有拥有两个相应的远程回购.

目前,我已将原始仓库和分叉仓库克隆到我的本地机器上git clone.如何将forked repo的开发分支合并到我本地计算机上的原始仓库的主分支中(即不在远程服务器上,这是不可能的)?

git github git-merge

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

merge.renameLimit警告加冲突后撤消git merge

我正在尝试从devel分支到主服务器的合并壁球.

stefanos-imac:trunk borini$ git merge --squash devel
CONFLICT (content): Merge conflict in test1
warning: inexact rename detection was skipped due to too many files.
warning: you may want to set your merge.renamelimit variable to at least 2224 and retry the command.
Squash commit -- not updating HEAD
Automatic merge failed; fix conflicts and then commit the result.
Run Code Online (Sandbox Code Playgroud)

很公平.

stefanos-imac:trunk borini$ git config merge.renameLimit 999999
Run Code Online (Sandbox Code Playgroud)

然后我尝试撤消合并并用更高的限制重做它

stefanos-imac:trunk borini$ git merge --abort
fatal: There is no merge to abort (MERGE_HEAD missing).
Run Code Online (Sandbox Code Playgroud)

好吧,也许我必须按照它说的做,只需重新调用merge命令 …

git version-control git-merge

15
推荐指数
2
解决办法
1万
查看次数

让Git关注重命名和编辑的文件

大约在Git中重命名文件的问题 过,但我不能制定出一个解决方案,我的具体问题.

我已经移动并编辑了多个文件(我没有使用git mv- 不幸的是现在已经太晚了).现在我想要它,所以当我的同事从我的存储库中取出时,对这些相同的文件进行了自己的编辑(没有移动它们),它成功地将我的更改与他在文件的新位置中合并.为了成功合并,Git显然需要知道这些文件是相同的.

Git是否足够聪明地独自完成这项工作?似乎很难相信.如果是这样,我怎么能确定Git会拾取特定的文件移动 - 即使内容已经改变了?

git version-control file-rename git-merge

15
推荐指数
2
解决办法
9174
查看次数

如何配置Araxis Merge与Git一起使用?

我知道Araxis Merge现在是mergetoolGit 的"完全支持" ,所以我能找到关于配置Git使用它的大部分内容现在已经过时了.特别是,Araxis Merge应该只是通过执行来"开箱即用"

git config --global merge.tool araxis
Run Code Online (Sandbox Code Playgroud)

提供的araxis是我的PATH.

但是,由于几个原因,修改我的PATH不是一个选项,所以我需要能够指定正确的pathcmd.gitconfig.

我应该如何配置Git(在OS X上)以便找到Araxis Merge?只要按照像其他工具的例子kdiff3,并p4merge

git config --global mergetool.araxis.path /Applications/Araxis Merge.app/Contents/MacOS/Araxis Merge
Run Code Online (Sandbox Code Playgroud)

不起作用; 也不(猜测)

git config --global mergetool.araxis.path /Applications/Araxis Merge.app/Contents/Utilities/araxisgitmerge
git config --global difftool.araxis.path /Applications/Araxis Merge.app/Contents/Utilities/araxisgitdiff
Run Code Online (Sandbox Code Playgroud)

我该如何配置araxis.path?是否有其他Git设置应与Araxis Merge一起使用?

git-merge git-config

15
推荐指数
3
解决办法
1万
查看次数

Git合并策略:空格使默认显示没有冲突并带来意想不到的结果

经过多次试验,我得到了这个简单的测试案例场景:

a --> b --> c --   (master)
 \              \
  --> d --> b' --> e   (branch)
Run Code Online (Sandbox Code Playgroud)

哪里:

  • b' 是一个樱桃挑选 b
  • e是一个合并来自master.

b'之后完成cc修改了相同的文件b(d可能无关紧要).

e 很容易看起来非常意外.

假设所有'他们正在处理相同的文件" foobar.txt".这是文件在每次提交中的外观:

// ----------- a
foo

delme

bar

// ----------- b
foo

delme

new

bar

// ----------- c
foo

new

bar

// ----------- b'
foo

delme

new

bar

// ------------ e
foo

new

new

bar
Run Code Online (Sandbox Code Playgroud)

现在,这是我刚才的简短测试,具有这种确切的设置.

如果你删除那里的所有空格 …

git merge git-merge

15
推荐指数
1
解决办法
4684
查看次数

目录转换为子模块后合并

我发现使用git子模块时,我经常遇到在包含给定子模块的提交和代表与普通目录相同的代码的提交之间合并的问题.小型复制示例:

# Create one project, to be used as a subproject later on
git init a
cd a
echo aaa > aa
git add -A
git commit -m a1
cd ..

# Create a second project, containing a as a normal directory initially
git init b
cd b
mkdir a b
echo aaa > a/aa
echo bbb > b/bb
git add -A
git commit -m b1

# Replace directory with submodule
git rm -r a
git submodule add ../a a …
Run Code Online (Sandbox Code Playgroud)

git version-control merge git-merge git-submodules

15
推荐指数
1
解决办法
1859
查看次数

Git:如何在本地签出合并请求,并创建新的本地分支?

我有gitlab存储库,我需要在合并到目标分支之前在本地测试每个合并请求.如何作为新分支提取/获取合并请求?

git git-merge gitlab

15
推荐指数
4
解决办法
1万
查看次数