相关疑难解决方法(0)

与Git单一工作分支

赏金简短说明

是否有可移植的方式来使用具有多个检出的单个存储库?作为多个克隆的替代方案,其中有太多的开销(推/拉/同步......)以及覆盖.git/objects硬链接的风险(甚至在Windows上都不起作用).


git很新,很想听听有经验的git用户的想法.

是否有一个概念上的原因,为什么git一次只适用于一个分支?在大多数情况下我需要同时处理至少两个不同的分支,例如构建,并行运行时,在分支之间切换前后似乎是绝对不切实际的.

好吧,也许开发人员不一定需要同时在两个分支上工作.但检查另一个分支不会自动携带忽略的东西,如构建输出文件.因此,aso需要进行新的重建

有这个脚本git-new-workdir应该允许多个工作分支,但是对于一个,它不是git发布的一部分,虽然它已经存在了大约3年,所以我不相信它保持我的文件一致.其次,我找不到它作为Windows发行版的一部分,它是我用于开发的机器之一.

所以唯一正式的选择是为每个分支创建一个新的"克隆",这似乎是不正确的,因为每个克隆都是一个完整的存储库.我甚至不知道该怎么称为克隆目录 - 我是使用存储库名称还是分支名称或两者兼而有之?如果我在该分支上创建另一个分支,aso

实际用例更新 (@ Philip的建议)

我通常会处理两个主要/次要版本,其功能同时进行.在合并到未来的某个版本之前,还有一个偶尔的开发分支,其中包含实验功能.

在功能开发期间,通常会降低行为,并且将其与更改之前的行为进行比较会更有效.检查以前的分支/修订版是不够好的,因为很多时候它都是并行调试,这意味着需要在硬盘驱动器上同时检出这两个版本.

因此,更方便和自然的方法是保留一些所谓的"活动"分支,每个分支都在自己的目录中检查,并使用自己编译的二进制文件.这也可以节省编译时间和偶尔的本地设置(即每次结账后需要更改的配置文件,以使产品运行).

git

19
推荐指数
4
解决办法
2219
查看次数

如何将WordPress自动更新与Git结合作为版本控制?

我正在尝试找到一个非常困难的任务的解决方案:正确版本控制WordPress,特别是在使用自动更新时.

WordPress允许用户只需单击按钮即可更新WordPress核心文件,主题和插件,从而实现了很多简单性.但是,当你使用像Git这样的版本控制网站时会发生什么?一旦我们点击"立即更新"按钮,我们的Git仓库就会失去同步,因此首先就会失去创建Git仓库的目的.

我一直在研究解决这个问题的方法,我能找到的是通过将组件分解为Git子模块来构建Wordpress安装的不同方法.其中一个最流行的例子是WordPress-Skeleton模板.

虽然这适用于版本控制WordPress的每个模块/组件,但它仍然不允许用户能够使用WordPress中的自动更新按钮,因为这将更新生产中的文件但不会将这些更改提交到您的Git仓库中.

在理想的世界中,我们应该能够对一个存储库中的所有文件进行版本控制,然后当我们单击"立即更新"按钮时,它应该自动更新我们的Git存储库.有谁知道如何实现这一目标?

我想到的一件事就是创建一个插件来监听更新事件,并在触发钩子后立即自动提交更改.不确定这是否是最佳方法.

如果有人有更好的方法我能做到这一点,请告诉我.

git wordpress version-control auto-update git-submodules

17
推荐指数
1
解决办法
1295
查看次数

在GitHub for Windows中克隆多个分支

我有时需要在本地磁盘上同时拥有两个不同的GitHub仓库分支.(特别是在处理gh页面时)

我通常通过在不同的文件夹中创建repo的多个克隆来实现这一点,克隆使用不同的分支.

是否可以在GitHub for Windows UI中执行此操作?(而不是将单个本地克隆从一个分支切换到另一个分支)
看起来在本地克隆之间切换的唯一方法是每次将新克隆拖动到UI中.

git github github-for-windows

13
推荐指数
1
解决办法
6456
查看次数

git windows将symlink文件添加为文件

我在git中有大(更多1000个文件)VS C#项目.我需要创建小型演示项目并使用大项目中的10个文件.我用项目创建新的解决方案,并使用mklink(符号链接)从大到小添加10个文件.文件中的所有更改都在大项目和小项目中.现在我需要将小项目添加到不同的(自己的)git repo.

但是symlink没有添加git

(错误:readlink("X.cs"):函数未实现)

如何在git中添加X.cs(symlink)文件作为通常的文件?

我需要X.cs中的所有更改(在大项目中)移动到X.cs(小项目).

windows git symlink

12
推荐指数
3
解决办法
8073
查看次数

找不到gitconfig文件

我刚开始学习Linux和Git.我正在使用Linux Mint.我通过apt-get安装了Git和emacs.

我使用以下教程 https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup

它说在三个不同的地方有配置文件:

  1. /etc/gitconfig 文件
  2. ~/.gitconfig~/.config/git/config文件
  3. 您当前使用的任何存储库的Git目录(即.git/config)中的配置文件.

我刚刚开始使用Git,因此假设选项3)不适用

我检查了1)和2) - 我无法在任何地方找到文件

我用谷歌搜索没有运气,并sudo find . -name在根目录中

不知道发生了什么,就像我运行时一样

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
Run Code Online (Sandbox Code Playgroud)

(我上面使用了我的姓氏)

它没有给我一个错误或任何东西 - 那么它在哪里写这个配置数据呢?这些文件在哪里?

git linux-mint

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

使用git和rtc - rsync怎么样?

为了加快我跟踪自己变化的能力,我想使用git.我的团队正在使用RTC(Rational Team Concert).与git有很好的perforce集成:http://kb.perforce.com/article/1417/git-p4.对于git-RTC我还找不到这样的东西.请注意,有一篇文章介绍了如何将RTC与另一个SCM集成,例如git:https://jazz.net/library/article/194.但是,我正在寻找p4-git桥提供的详细工作流程说明类型,例如如何设置文件,如何保持文件同步,如何将git提交发送到RTC.

我想知道是否还有其他人解决了这个问题.

我正在考虑:

  1. 在我的RTC沙箱的顶部做一个git init,并确保git文件在.jazzignore中.
  2. 也许我的RTC工作区沙箱的rsync副本,以便我可以在沙箱中获取更改,将它们rsync到我的"git-area",然后将补丁应用回RTC沙箱区域.这将使git和RTC区域分开.

在任何一种情况下,我都会使用git stash来保存自己的更改,以便同步更改存储在自己的提交中.

如果我做#1,我猜我的更改将准备好提交到RTC,可能使用GUI或命令行.

在#2的情况下,如果我已经完成了中间提交,也许我可以使用git rebase对提交进行重新排序,以便最后按顺序排序,然后创建一个补丁文件以应用于主RTC沙箱.

另一个想法是尝试重写p4脚本以支持RTC.我还不太了解RTC命令行界面来评估这一点.

git rtc rational-team-concert

9
推荐指数
1
解决办法
2260
查看次数

自定义对象和参考的注意事项是什么?

假设我想编写一个助手,它允许将一些元数据附加到存储库中,这种方式可以通过refs. 简单示例(一个克隆原型,甚至不将注释附加到任何其他 git 对象):

hash=$(echo "Just a comment" | git hash-object -w --stdin)
git update-ref refs/comments/just $hash
Run Code Online (Sandbox Code Playgroud)

即我blob用哈希创建一个hash并引用它,因为refs/comments/just这样git fsck --unreachable不会抱怨它,git gc也永远不会prune是对象。

但这当然是一个非常简单的例子,实际上我对更复杂的功能感兴趣。在那里,我的问题是,我可以“合法”做什么,我绝对应该避免什么?

例如,SE 上的一些帖子是关于用户必须从重复tree条目中恢复的。因此,“不要”就是“不要创建tree具有重复条目的条目”。另一个例子是“确保你的对象是可到达的,所以git prune不会删除它们。” 还有什么?

我可以创建自定义对象类型吗?对树中的 blob 使用“无效”文件模式?在哪里可以找到概览?或者我应该git-fsck手动检查's source 以查看什么构成错误(哪些是可以忽略的)?

git git-gc git-fsck git-refspec git-hash

9
推荐指数
1
解决办法
474
查看次数

使用带Git的条件配置文件

我经常发现自己在Git中改变了我的项目中的单个变量,以便在开发分支上连接到不同的服务器(在JavaScript中,所以我不能使用预处理器定义).

在Git中是否有某种方法我可以有条件地使用一个或另一个文件,具体取决于我所在的分支?

我不能只使用指定的不同URL提交更改,因为这样做会将其保留在我的提交历史记录中,如果我稍后在Master上合并后再返回该版本,它将具有开发服务器URL.

git config

7
推荐指数
2
解决办法
2425
查看次数

相当于'hg share'的git?

有没有办法在git中共享存储库的历史记录而无需再次克隆整个文件夹?相当于Mercurial的东西

hg share project project-branch
Run Code Online (Sandbox Code Playgroud)

https://www.mercurial-scm.org/wiki/ShareExtension

git mercurial

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

git:忽略生产分支中的源和开发中的缩小文件

我无法找到合理的解决方案,因为我认为这是一个非常简单的任务.考虑source我的项目中有一些目录,其中包含所有源文件.在发展模式,我改变源文件,并咕嘟咕嘟minifies他们进入.min.js.min.css,并将它们放入public目录(澄清,我建立一个Node.js的应用程序).

现在,我有两个分支:master生产和development开发.

master分支上的.gitignore文件

.DS_Store
node_modules
source
...
Run Code Online (Sandbox Code Playgroud)

development分支上的.gitignore文件

.DS_Store
node_modules
public/javascript
public/stylesheets
...
Run Code Online (Sandbox Code Playgroud)

我想要获得的行为:1)忽略缩小的文件以进行开发(每次我更改代码时它们都会被组合和缩小),但保留源代码; 2)忽略生产的源文件(因为当我$ git pull进入生产环境时我不想拥有它们),但要保持缩小.

出于某种原因,当我来回切换,从masterdevelopment,混帐完全删除一些文件,并打破了一切.例如,它擦除了每个模块的所有内容node_modules,强迫我$ rm -rf node_modules && npm install每次切换分支时都会这样做.

很感谢任何形式的帮助.


这里还描述了这个问题:使用git,我如何忽略一个分支中的文件但是在另一个分支中提交它?,但没有可行的解决方案.

git version-control version

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