相关疑难解决方法(0)

Git - 在合并期间忽略文件

myrepo在远程beanstalk服务器上调用了一个repo .

我把它克隆到我的本地机器上.创建了两个额外的分支:stagingdev.将这些分支推向远程.

现在:

 local                   remote                   server
 --------------------------------------------------------  
 master  ==> Pushes to  `master`  ==> deployed to `prod`
 staging ==> Pushes to  `staging` ==> deployed to `staging`
 dev     ==> Pushes to  `dev`     ==> deployed to `dev`
Run Code Online (Sandbox Code Playgroud)

我有一个文件config.xml,在每个分支上都有不同的名称.

我想仅在合并期间忽略此文件.但是我希望在结帐或从/向repo分支提交时包含它.

我想要的原因是,我们有一个部署脚本,可以拉出(签出)特定分支并在各自的服务器上部署.因此,我们需要config.xml特定分支的文件在部署时进入特定服务器,如上所示.

我想.gitignore不会工作.还有什么其他选择?请注意,被忽略的文件应该是checkout和commit的一部分,这很重要.它只应在合并期间被忽略.

谢谢!

git merge push ignore repository

98
推荐指数
7
解决办法
8万
查看次数

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

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

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

git git-merge

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

如何设置git驱动程序忽略合并时的文件夹

我已经做了大量的搜索,阅读了很多SO问题和解决方案并尝试了不同的方式,但我一直无法做我想做的事,这很简单.

我有所有主代码所在的主分支,以及设计分支,其中rails应用程序的布局由设计团队构建.他们在公共文件夹中添加了一个名为"photoshop"的文件夹,以便在版本控制下保留图像的来源.但我不希望在合并到主分支时复制此文件夹,因为它是不需要的.

显然,这样做的方法是通过合并驱动程序.所以,我创建了"忽略"驱动程序:

[merge "ignore"]
name = always ignore during merge
driver = ignore.sh %0 %A %B
Run Code Online (Sandbox Code Playgroud)

并在$ PATH上创建了ignore.sh文件:

exit 0
Run Code Online (Sandbox Code Playgroud)

我在public /中创建了.gitattributes文件,因为photoshop文件夹应该整体被忽略,它将出现在public /下:

photoshop  merge=ignore
photoshop/ merge=ignore
photoshop/* merge=ignore
photoshop/**/* merge=ignore
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我尝试了几种不同的模式来忽略整个文件夹,但它不起作用.我相信这是因为master分支上没有文件夹,所以没有冲突,因此git不使用ignore驱动程序.有没有办法实现这一点,而无需在master上创建public/photoshop文件夹?

谢谢!

git git-merge

13
推荐指数
2
解决办法
3808
查看次数

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
查看次数

标签 统计

git ×4

git-merge ×3

git-bash ×1

ignore ×1

merge ×1

push ×1

repository ×1