相关疑难解决方法(0)

如何以编程方式确定当前签出的Git分支

在Unix或GNU脚本环境(例如Linux发行版,Cygwin,OSX)中,确定当前在工作目录中检出哪个Git分支的最佳方法是什么?

这种技术的一个用途是自动标记一个版本(就像svnversionSubversion一样).

另请参阅我的相关问题:如何以编程方式确定Git结帐是否为标签,如果是,那么标签名称是什么?

git bash shell

263
推荐指数
12
解决办法
10万
查看次数

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

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

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

git git-merge

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

.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 + Build自动化 - 保持配置分离

寻找保持配置文件分离的最佳方法,但没有为新开发人员设置环境引入额外的步骤.

我猜一个子模块就足以完成这项工作,但那么我将如何根据手头的任务无缝切换配置,也就是定期拉入DEV配置,在构建期间拉出配置仓库的PROD分支?

需要是:

  • 对于新开发者而言,轻松无痛.
  • 只有选择用户+构建用户才能访问PROD配置文件.

先感谢您.

git automation build bitbucket gruntjs

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

GIT合并 - 保持一个分支的特定部分和另一个分支的其他部分

这是场景

主分公司

- 文件名:xxx-master.txt

- 文件内容:

code code ID=01 code code code

开发分支

- 文件名:xxx-dev.txt

- 文件内容:

code code ID=02 code code code

将master合并到dev中时,我想保留xxx-dev.txt作为文件名,ID = 02,但是其他一切都来自master.当将dev合并为master时,反之亦然.这是我能让GIT理解的吗?

git git-merge

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

如何让 jenkins 构建状态徽章动态显示其文件所在的分支

我不确定摘要是否明确说明了这一点。我想要做的是创建一个 jenkins 构建状态徽章 url,它将以某种方式能够找出它所在的 Git 分支,并动态地向 url 添加正确的分支后缀。

我想这样做,这样我就可以创建一个自述文件,它始终显示masterdevelop<branch-i'm-looking-at>詹金斯建立是回购,而无需手动更新,每个分支的徽章。

我知道如何创建特定于分支的构建状态徽章。Jenkins 会自动为你构建 markdown URL。例如,我的一个develop分支看起来像:

[![Build Status](https://jenkins.mycompany.com/path/to/build/develop/badge/icon?subject=develop)]
(https://jenkins.mycompany.com/path/to/build/develop/)
Run Code Online (Sandbox Code Playgroud)

我可以想象它会是使用${BRANCH_NAME}jenkins env var 的东西,但我想不出如何创建它。我对 git hooks 或其他脚本的经验不足,甚至无法开始想出一种方法来做到这一点。

有没有人做过这个?

git github jenkins

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

Git 管理环境特定配置

我需要为不同的环境(如 dev、uat 和生产)进行属性配置。例如,一个 config.properties 具有和条目之类的environment=dev,我需要更改为 staging 分支 asenvironment=uat和 master 分支 as environment=prd

我尝试分别在每个分支中提交这些文件,并尝试在 gitignore 中添加 config.properties 以便它不会在下次提交时考虑。但是 git ignore 没有更新所以我运行了命令

git rm -rf --cached src/config.properties
git add src/config.properties
git commit -m ".gitignore fix"
Run Code Online (Sandbox Code Playgroud)

但是此命令正在从本地存储库本身删除文件,并且正在进行的提交也从分支中删除。我想像这样处理分支,以便 Jenkins 无需手动编辑配置文件即可进行部署。我正在为 git UI 使用 fork。有没有办法处理这种情况?

java eclipse git git-fork

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

Quasar 在开发服务器启动时更改 Capacitor.config.json

在电容模式下运行 Quasar 开发服务器quasar dev -m capacitor -T android结果出现在选择外部 IP 地址的对话框中:

\n
? What external IP should Quasar use? 192.168.0.3\n App \xe2\x80\xa2 Updated src-capacitor/package.json\n App \xe2\x80\xa2 Updated capacitor.config.json\n App \xe2\x80\xa2 Running "...\\node_modules\\@capacitor\\cli\\bin\\capacitor sync android" in ...\n
Run Code Online (Sandbox Code Playgroud)\n

问题是,这会src-capacitor/capacitor.config.json使用可能意外推送的本地信息进行更新,这是永远不可取的:

\n
  "server": {\n    "androidScheme": "https",\n    "url": "http://192.168.0.3:9500" <-- this line is added\n  }\n
Run Code Online (Sandbox Code Playgroud)\n

更不用说大多数时候跳过此对话框是很实用的,因为应用程序在本地运行并且可以安全地使用 localhost 而不是外部 IP。

\n

正如文档中粗略描述的那样,这似乎是预期的行为,但不是理想的行为。

\n

如何server.url避免更新 Capacitor.config.json?

\n

devserver quasar-framework capacitor

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