我myrepo在远程beanstalk服务器上调用了一个repo .
我把它克隆到我的本地机器上.创建了两个额外的分支:staging和dev.将这些分支推向远程.
现在:
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存储库与某人合作,并且有一个特定的文件,我永远不想接受任何外部更改.
有没有办法让我设置我的本地仓库,以便每当我拉动时不抱怨冲突的合并?我想在合并此文件时始终选择我的本地版本.
我已经做了大量的搜索,阅读了很多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文件夹?
谢谢!
我需要排除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)