赏金简短说明
是否有可移植的方式来使用具有多个检出的单个存储库?作为多个克隆的替代方案,其中有太多的开销(推/拉/同步......)以及覆盖.git/objects硬链接的风险(甚至在Windows上都不起作用).
git很新,很想听听有经验的git用户的想法.
是否有一个概念上的原因,为什么git一次只适用于一个分支?在大多数情况下我需要同时处理至少两个不同的分支,例如构建,并行运行时,在分支之间切换前后似乎是绝对不切实际的.
好吧,也许开发人员不一定需要同时在两个分支上工作.但检查另一个分支不会自动携带忽略的东西,如构建输出文件.因此,aso需要进行新的重建
有这个脚本git-new-workdir应该允许多个工作分支,但是对于一个,它不是git发布的一部分,虽然它已经存在了大约3年,所以我不相信它保持我的文件一致.其次,我找不到它作为Windows发行版的一部分,它是我用于开发的机器之一.
所以唯一正式的选择是为每个分支创建一个新的"克隆",这似乎是不正确的,因为每个克隆都是一个完整的存储库.我甚至不知道该怎么称为克隆目录 - 我是使用存储库名称还是分支名称或两者兼而有之?如果我在该分支上创建另一个分支,aso
实际用例更新 (@ Philip的建议)
我通常会处理两个主要/次要版本,其功能同时进行.在合并到未来的某个版本之前,还有一个偶尔的开发分支,其中包含实验功能.
在功能开发期间,通常会降低行为,并且将其与更改之前的行为进行比较会更有效.检查以前的分支/修订版是不够好的,因为很多时候它都是并行调试,这意味着需要在硬盘驱动器上同时检出这两个版本.
因此,更方便和自然的方法是保留一些所谓的"活动"分支,每个分支都在自己的目录中检查,并使用自己编译的二进制文件.这也可以节省编译时间和偶尔的本地设置(即每次结账后需要更改的配置文件,以使产品运行).
我正在尝试找到一个非常困难的任务的解决方案:正确版本控制WordPress,特别是在使用自动更新时.
WordPress允许用户只需单击按钮即可更新WordPress核心文件,主题和插件,从而实现了很多简单性.但是,当你使用像Git这样的版本控制网站时会发生什么?一旦我们点击"立即更新"按钮,我们的Git仓库就会失去同步,因此首先就会失去创建Git仓库的目的.
我一直在研究解决这个问题的方法,我能找到的是通过将组件分解为Git子模块来构建Wordpress安装的不同方法.其中一个最流行的例子是WordPress-Skeleton模板.
虽然这适用于版本控制WordPress的每个模块/组件,但它仍然不允许用户能够使用WordPress中的自动更新按钮,因为这将更新生产中的文件但不会将这些更改提交到您的Git仓库中.
在理想的世界中,我们应该能够对一个存储库中的所有文件进行版本控制,然后当我们单击"立即更新"按钮时,它应该自动更新我们的Git存储库.有谁知道如何实现这一目标?
我想到的一件事就是创建一个插件来监听更新事件,并在触发钩子后立即自动提交更改.不确定这是否是最佳方法.
如果有人有更好的方法我能做到这一点,请告诉我.
我有时需要在本地磁盘上同时拥有两个不同的GitHub仓库分支.(特别是在处理gh页面时)
我通常通过在不同的文件夹中创建repo的多个克隆来实现这一点,克隆使用不同的分支.
是否可以在GitHub for Windows UI中执行此操作?(而不是将单个本地克隆从一个分支切换到另一个分支)
看起来在本地克隆之间切换的唯一方法是每次将新克隆拖动到UI中.
我在git中有大(更多1000个文件)VS C#项目.我需要创建小型演示项目并使用大项目中的10个文件.我用项目创建新的解决方案,并使用mklink(符号链接)从大到小添加10个文件.文件中的所有更改都在大项目和小项目中.现在我需要将小项目添加到不同的(自己的)git repo.
但是symlink没有添加git
(错误:readlink("X.cs"):函数未实现)
如何在git中添加X.cs(symlink)文件作为通常的文件?
我需要X.cs中的所有更改(在大项目中)移动到X.cs(小项目).
我刚开始学习Linux和Git.我正在使用Linux Mint.我通过apt-get安装了Git和emacs.
我使用以下教程 https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup
它说在三个不同的地方有配置文件:
/etc/gitconfig 文件~/.gitconfig或~/.config/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.我的团队正在使用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.
我想知道是否还有其他人解决了这个问题.
我正在考虑:
在任何一种情况下,我都会使用git stash来保存自己的更改,以便同步更改存储在自己的提交中.
如果我做#1,我猜我的更改将准备好提交到RTC,可能使用GUI或命令行.
在#2的情况下,如果我已经完成了中间提交,也许我可以使用git rebase对提交进行重新排序,以便最后按顺序排序,然后创建一个补丁文件以应用于主RTC沙箱.
另一个想法是尝试重写p4脚本以支持RTC.我还不太了解RTC命令行界面来评估这一点.
假设我想编写一个小助手,它允许将一些元数据附加到存储库中,这种方式可以通过refs. 简单示例(一个git-notes克隆原型,甚至不将注释附加到任何其他 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中改变了我的项目中的单个变量,以便在开发分支上连接到不同的服务器(在JavaScript中,所以我不能使用预处理器定义).
在Git中是否有某种方法我可以有条件地使用一个或另一个文件,具体取决于我所在的分支?
我不能只使用指定的不同URL提交更改,因为这样做会将其保留在我的提交历史记录中,如果我稍后在Master上合并后再返回该版本,它将具有开发服务器URL.
有没有办法在git中共享存储库的历史记录而无需再次克隆整个文件夹?相当于Mercurial的东西
hg share project project-branch
Run Code Online (Sandbox Code Playgroud)
我无法找到合理的解决方案,因为我认为这是一个非常简单的任务.考虑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进入生产环境时我不想拥有它们),但要保持缩小.
出于某种原因,当我来回切换,从master到development,混帐完全删除一些文件,并打破了一切.例如,它擦除了每个模块的所有内容node_modules,强迫我$ rm -rf node_modules && npm install每次切换分支时都会这样做.
很感谢任何形式的帮助.
这里还描述了这个问题:使用git,我如何忽略一个分支中的文件但是在另一个分支中提交它?,但没有可行的解决方案.
git ×10
auto-update ×1
config ×1
git-fsck ×1
git-gc ×1
git-hash ×1
git-refspec ×1
github ×1
linux-mint ×1
mercurial ×1
rtc ×1
symlink ×1
version ×1
windows ×1
wordpress ×1