我在Git-worktree上阅读了Github的帖子.他们写:
假设您正在一个名为的分支上的Git存储库中工作
feature,当用户报告高紧急性错误时master.首先,您创建一个带有新分支的链接工作树,hotfix相对于主分析签出[...]您可以修复错误,推送修补程序,并创建拉取请求.
当我在一个名为feature的分支上工作并报告master中的一些高紧急性bug时,我通常会隐藏我正在处理的任何内容并创建一个新的分支.当我完成后,我可以继续工作.这是一个非常简单的模型,我多年来一直这样做.
另一方面,使用git-worktree有其自身的局限性:
例如,不允许同时在两个链接的工作树中检出相同的分支,因为这将允许在一个工作树中提交的更改使另一个工作树不同步.
为什么我会为已经解决的问题选择更复杂的工作流程?
是否有任何关于git-worktree事先无法完成的事情,这证明了这一全新的复杂功能?
我有一个个人项目的Mercurial存储库,我已经将主存储库存储在我的Dropbox中几个星期了(沿着这条线的东西;我也理解它也可以用git).
这个想法是它既可以作为一种使用多台机器的方式,也可以作为远程备份.我克隆了存储库并处理非Dropbox副本,并且只是偶尔推送一次更新,就像我想的那样,我会使用Bitbucket.
与使用专用托管(Mercurial中的BitBucket)相比,你能想到这个想法的任何缺点吗?我知道Bitbucket为单个用户提供免费帐户,这很好,但是它们限制在150M,这不是很大.
特别是,Dropbox的同步过程是否可能破坏存储库?我不得不在主存储库上运行一次hg recover,但它可能是无关的(无论如何它很高兴恢复).有没有人对这个想法有不好的体验?有没有人有更好的经验,可以减轻我的担忧?有没有人基于对这些东西内部的更好理解而有意见?
编辑:我在问题中添加了一些说明.它们用斜体字表示.
有一些方法可以通过谷歌驱动器同步窗口应用程序将我的本地git存储库同步到我的谷歌驱动器,但我想知道我是否可以完全绕过它的需要.
例如.
$ git remote add origin https://drive.google.com/<my_folder>/<my_repository>.git
$ git push github master
Run Code Online (Sandbox Code Playgroud) 我有一个190 MB纯文本文件,我想在github上跟踪.
文本文件是我们的文本到语音引擎的代词词典文件.我们经常在文本文件中添加和修改行,并且差异相当小,因此在这个意义上它非常适合git.
但是,GitHub具有严格的100 MB文件大小限制.我已经尝试过GitHub大文件存储服务,但每次更改时都会上传整个190 MB文件的新版本 - 因此,如果我沿着这条路走下去,那么它将迅速增长到几千兆字节.
我想将文件保存为一个文件而不是拆分它,因为这是我们的工作流程当前的方式,并且需要一些编码才能允许多个文本文件作为我们工具中的输入/输出(并且我们没有太多的开发资源) .
我有一个想法是,也许可以设置一些预提交和提交后挂钩来自动拆分和连接大文件?这可能吗?
其他想法?
编辑:我知道StackOverflow上类似问题中描述的100 MB文件大小限制,但我不认为我的问题是重复的,因为我要求的是差异很小且频繁的特定情况(我'我没有尝试上传大型ZIP文件或任何东西).但是,我的理解是git-lfs仅适用于很少更改的文件,而普通的git非常适合我所描述的那种文件; 除了GitHub有文件大小限制.
更新:我昨天花了一些时间尝试创建一个小型跨平台程序,该程序使用git hooks将文件拆分并连接成较小的文件.它有点工作但不太令人满意.您需要将.gitignore排除大文本文件,这使得git不知道它是否已更改.拆分文件最初没有检测到git status或git commit导致与此SO问题中描述的相同问题,这非常烦人:预提交脚本创建mysqldump文件,但"没有提交(工作目录清理)"?
设置一个cron作业(linux)和计划任务(windows)以定期自动重新生成拆分文件可能会解决这个问题,但是自动设置并不容易,可能会导致用户计算机出现性能问题,而且不是很优雅解.可能还需要一些像动态修改.gitignore这样的hacky解决方案,并且绝不会得到实际文本文件的差异,只有分割文件(尽管这可能是可接受的,因为它们非常相似).
所以,睡着了,今天我觉得git hook方法毕竟不是一个好选择,因为它有太多的怪癖.正如@PyRulez所建议的那样,我想我不得不看看除GitHub之外的其他服务(不幸的是,因为我喜欢github).托管解决方案更可取,以避免必须管理我们自己的服务器.我也希望它能公开上市......
更新2:我已经看了一些GitHub的替代品,目前我倾向于使用GitLab.我已经联系了GitHub关于提高100MB限制的可能性的支持,但如果他们不这样做,我将只为这个特定项目切换到GitLab.
我意识到有类似的问题,但我的问题略有不同:我想知道是否通过多台计算机上的同步Dropbox文件夹共享裸存储库是否可以通过Git 共享代码?
换句话说:通过Dropbox共享一个Git repo,就像从一个集中位置共享它一样,例如,通过SSH或HTTP?
repo是否在每个人的本地驱动器上更新?这与通过共享网络驱动器共享Git仓库相同吗?
注意:这不是一个经验问题:它似乎工作正常.我在问Git repo的结构是否与这种共享方式兼容.
编辑为了澄清/重复,我说的是将Dropbox上的Git存储库保存为裸存储库.我不是在谈论保留Dropbox中受源代码控制的实际文件.
我决定为编码目的需要某种版本控制软件,所以我安装了GitHub for Windows.
问题是在我添加存储库,复制该文件夹中的源代码然后单击提交它想要提交到GitHub网站并要求我提供名称和电子邮件.
由于我使用git的目的只是为了自己进行版本控制而不与其他开发人员协作,我想在我的计算机上本地托管存储库.
是否可以在本地托管,我可以使用GitHub for Windows吗?
我是Git的新手,我搜索了一个答案,但找不到我需要的东西.
基本上,我在我的工作计算机上设置了一个项目,添加了文件等并提交到GitHub存储库.我得到了所有这些但是一旦我回到家,我想下载同一个项目并将同一个用户更改为一些文件.
在家里,我设置了我的user.name和user.email,如下所示:
git config --global user.name "username"
git config --global user.email "email"
Run Code Online (Sandbox Code Playgroud)
我认为我接下来要做的是:
git clone url
Run Code Online (Sandbox Code Playgroud)
正如我所说,我是同一个用户只是在不同的计算机上工作 - 我需要做些什么特别的工作才能确保Git认识到我是同一个用户?
我知道这可能是一个愚蠢的问题,但我发现似乎无处可见,我真的想100%确定我正确地做到了这一点.
与此问题的风格相同,在将两种服务结合使用时是否会出现任何可能的复杂情况?
git ×10
github ×4
dropbox ×3
bitbucket ×1
cloud ×1
ftp ×1
git-worktree ×1
icloud ×1
large-files ×1
mercurial ×1
push ×1
repository ×1