相关疑难解决方法(0)

保持两个Git分支不同的文件

我确定我的Git repo的两个分支应该只在一个文件中有所不同.确保这一点的最简单方法是完成所有工作branch1,并branch2在我切换到它时将其合并(包装到shell脚本中,因此每个交换机只需要一个命令).但是,有没有办法以更少的工作来做到这一点?

git

7
推荐指数
1
解决办法
1986
查看次数

在Git中维护"服务器版本"的唯一方法是什么 - 只更改了配置文件?

我有时使用Codeigniter,在我完成本地站点的开发之后,我需要将文件迁移到服务器./config/需要更改文件夹中的所有文件以匹配服务器设置.对这些更改进行完整的提交是不对的,我只是让Git完全忽略这些文件,还是有办法跟踪这些更改并在适当的时候将它们应用于Git?

php git version-control codeigniter

7
推荐指数
1
解决办法
2084
查看次数

GIT预接收挂钩

有没有办法使用服务器端预接收挂钩更改正在推送到服务器的文件?

假设我想在文件的末尾添加一些内容,例如:

//End of Org
Run Code Online (Sandbox Code Playgroud)

每次有人推我的回购.

有没有办法可以更改正在使用的文件git hooks?

git githooks

6
推荐指数
1
解决办法
2967
查看次数

挂钩或不挂钩 - git

我们的定制IDE输出XML文件,其编码使它们看起来像二进制文件.这些文件的差异和合并失败.

我们可以使用该tr命令创建这些文件的ASCII版本.我想进入一个状态,在这些文件提交之前总是自动转换为ascii.

我用Git拿起了我的版本控制副本,它全心全意警告我不要使用钩子,除非我真的需要.

我应该为此目的使用钩子吗?或者我可以做其他事情以确保文件在提交之前始终被转换?

Windows XP与msysgit 1.7.4

- = update = -

感谢大家的帮助和耐心.期待这个问题我尝试了以下,但它不起作用:

echo "*.xrp    filter=xrp" > .git/info/attributes
git config --global filter.xrp.clean 'tr -cd '\''\11\12\15\40-\176'\'''
git config --global filter.xrp.smudge cat
git checkout --force
Run Code Online (Sandbox Code Playgroud)

此配置更改后,文件保持不变.即使我删除并重新结账.

tr配置为clean任务的命令确实可以单独工作.证明:

$ head -n 1 cashflow/repo/C_GMM_CashflowRepo.xrp
ÿþ< ! - -   X M L   R e p o s i t o r y   f i l e   1 . 0   - - >

$ tr …
Run Code Online (Sandbox Code Playgroud)

git hook tr gitattributes

6
推荐指数
1
解决办法
1203
查看次数

Xcode改变故事板的帧值自动导致git合并冲突.怎么解决?

每当我合并其他团队成员的iOS objc项目时,我都会遇到一些奇怪的冲突:

<<<<<<< HEAD
    <rect key="frame" x="254.00000003476939" y="0.0" width="63" height="21"/>
=======
    <rect key="frame" x="254.00000010362709" y="0.0" width="63" height="21"/>
>>>>>>> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Run Code Online (Sandbox Code Playgroud)

我们永远不会改变x的值,我们总是给出像值一样的整数.显然,Xcode会自动更改该值.如何防止这种事情发生?

git xcode uistoryboard

6
推荐指数
1
解决办法
363
查看次数

你可以在工作目录中的不同文件上应用相同的提交吗?

例如,假设我有两个文件,A和B.我创建了B作为A的副本,但我希望它们非常相似 - 我只想在B中有两行不同.在Git中是否有办法同步这些以任何方式改变,或者更有效的方式来完成这项任务?

git version-control github

6
推荐指数
1
解决办法
508
查看次数

推荐的测试和生产实例的git工作流程

虽然我已经使用git一段时间了,但我仍然认为自己是n00b,所以请不要对我太苛刻.

我将"公司"主机系统维护为两个不相同的副本.我们称之为测试和生产.大型机没有任何我(或许可能是你们中的任何一个)会认为是版本控制系统的东西,所以我在桌面上使用git来为我提供版本控制.以下是我当前工作流程的主要功能:

  • 桌面和大型机与FTP"同步".最后,无论是在大型机还是PC上编写的所有开发工作都会在git分支机构的PC上完成.

  • 我无法访问任何类型的"现代"部署技术,如Hudson

  • 我有两个主要的分支,称为Test和Prod.由于产品的(继承)结构,Test和Prod实例之间的代码存在许多差异.例如,所有显示面板都需要清楚地识别这是Test还是Prod,但是没有办法在单点配置它.

  • 我通常为特定的开发子项目创建其他分支.

  • 一般开发在Test分支上完成,具有多个提交.准备好后,将这些樱桃挑选到Prod上,标记有更改编号,并在批准后上传.

  • 幸运的是,紧急工作是在Prod分支上完成的,并且是挑选出来的.

  • 偶尔采摘樱桃需要手动合并.

我想改进这个工作流程.目前,我的存储库在两个分支上充满了并行相同的更改.

我想我更喜欢这样做(对于Test - > Prod):

  • 一旦开发准备就绪,在Prod的HEAD创建一个新的分支

  • 将这组开发更改折叠为新分支上的单个更改

  • 将这个新分支合并到Prod.请记住,他们的共同祖先是在使测试与Prod不同的变化之前

它似乎git rebase -i可以完成这项工作,但我必须承认这git rebase是我的脑桥asinorum,不知怎的,我已经设法弄乱了我的树多次.

所以我的问题是:

  1. 请在产品的限制范围内建议更好的方法.

  2. 如果我的首选方法可行,有人可以建议正确的参数git rebase -i吗?

git deployment workflow git-rebase

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

想要 git post 接收钩子来进行新的提交和推送

在某些条件下,我希望我的 post-receive hook 负责更新 repo 本身中的版本文件。因此,假设我的存储库中有一个文件 version.txt,我希望 post 接收挂钩更新 version.txt 中的版本字符串。

这将意味着再次推动回购。这可能吗?

谢谢!

git push git-post-receive

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

使用git smudge/clean来替换文件内容

我正在尝试使用git来管理我的实时网站的部署.我遇到的问题是我有几个设置文件,当我推向生产时我不想更新

我正在做的是使用钩子或涂抹/清洁来改变文件内容,例如

<?php
define('DB_NAME', 'live');
define('DB_HOST', '127.0.0.1');
define('DB_USER', 'live_user');
define('DB_PASS', 'livePass');
Run Code Online (Sandbox Code Playgroud)

至

<?php
define('DB_NAME', 'local');
define('DB_HOST', '127.0.0.1');
define('DB_USER', 'local_user');
define('DB_PASS', 'localPass');
Run Code Online (Sandbox Code Playgroud)

有没有人可以通过这个过程跟我说话

我确实想知道使用post-receive hook和shell脚本来替换内容,但理想情况下我希望在运行git checkout之前更改repo中的内容-f在live copy之后没有更改

php git githooks

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

在“ export-subst”文件中添加标签

情况

我们有一个git工作流程,其中所有发行版本都存储在master分支上,并且当准备好提交可以部署时,我们向其添加标签,然后用于git archive构建要部署的捆绑包。

我们使用带有选项version.txt标记的文件来跟踪用于构建给定存档的提交。.gitattributesexport-subst

题

如果我写$Format:%d$的version.txt,和导出标签的提交,我会像(HEAD, tag, master)写生成的文件英寸

我怎么能tag独自一人?

[edit]有一个git命令已经产生了:

git describe --tags HEAD
Run Code Online (Sandbox Code Playgroud)

这将输出:

latest_tag            #if HEAD is tagged

latest_tag-5-g03cc91b #if HEAD is not tagged,
                      #and the latest tag is 5 commits ago on commit g03cc91b
Run Code Online (Sandbox Code Playgroud)

有什么方法可以用此输出替换段塞version.txt吗?

git

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