我正在使用git作为备份工具,并在笔记本电脑和台式机之间的$ HOME目录中使用"漫游配置文件".
我的问题是在我的$ HOME下我有一个开发目录,里面有我正在研究的多个git项目.Git不允许我添加子目录.git文件夹.因此,为了承诺这些项目,我必须将更改推送到我的$ HOME git repo,拉上笔记本电脑(创建它们的地方和.git dir exsits)并提交.
我读过有关子模块的信息,但这并不是我想要的.我只是希望将子.git文件夹视为任何旧目录,以便我可以移动它们并备份它们.
有没有人这样做过或者想过我会怎么做?
Git是否支持任何允许我直接从本地/工作树提交到远程存储库的命令?正常的工作流程需要"git add",至少要用文件内容的副本等填充对象数据库.
我知道这不是正常的,预期的Git工作流程.但我注意到Git已经支持直接从存储库下载,没有本地存储("git archive"),所以可能存在类似的上传操作似乎是合理的.
或者,如果核心Git本身没有这样的命令,那么任何第三方软件是否支持直接远程写入?
这里有一个菜鸟.
我有一个个人Macbook,我想使用Git来跟踪更改等.我想在我的macbook上创建一个repo并在那里工作.这是一个好主意吗?
如果:我在Macbook HD中的某个地方有一个主要的回购,/Users/user/projects/project1并将其克隆到我实际开发的macbook上的另一个区域?但是这里存在很多冗余.
我有点困惑,想知道人们在类似的个人开发环境中采取的常规步骤.
非常感谢.
当我们慢慢地从SVN迁移到GIT时,我们正在寻找创建一个git服务器集群,以便在我们的wan上卸载克隆,并在出现问题时创建冗余或热备用.我们的主要要求之一是我们可以提交任何gitserver,它将在层次结构中进一步复制它.
随着我们同时在三大洲开发,我不会非常信任使用rsync/crontab的git克隆,因为我认为同时在多个服务器上提交可能会破坏存储库(或者给git关于如何合并变化的头痛).这种部署的最佳实践是什么?有提示或指针的人吗?当我们迁移到Git时,Wandisco的SVN集群没有削减它.
因为技术和法律原因使用中央存储库是为了一些不可能的项目,我想在没有催化服务器的情况下以对等方式使用Git进行版本控制.怎么可以这样做?
我有一个本地创建的目录: /home/Tegra.
我在/ home/Tegra中创建了以下文件:
hello_world.c hello_world_1.c hello_world_2.c
Run Code Online (Sandbox Code Playgroud)
每个文件都是逐步修改的.我还创建了补丁:
diff -u hello_world.c hello_world_1.c > hello_world_1.patch
diff -u hello_world_1.c hello_world_2.c > hello_world_2.patch
Run Code Online (Sandbox Code Playgroud)
现在我想首先使用git send-email向电子邮件地址abc@xyz.org 发送电子邮件.其中应包含hello_world.c文件
然后我想发送第二封电子邮件,其中包含hello_world_1.patch文件作为附件.
然后我想发送第三封电子邮件,其中包含hello_world_2.patch文件作为附件.
不幸的是,我甚至无法完成第1步:
我的git已经正确配置了相关的smtp服务器tls 587端口.
我尝试了以下命令:
git send-email --to abc@xyz.org --subject My Hello hello_world.c
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Cannot run git format-patch from outside a repository
Run Code Online (Sandbox Code Playgroud)
存储库在哪里出现.我应该首先维护我的代码库.
编辑:对于第1步:根据下面的评论,我们需要一个存储库:
我正在使用 Windows 版 Git(版本 2.15,但同样的问题出现在 2.14 中,我认为旧版本也有),并且我注意到一个相当烦人的行为:当我执行一些基本的 git 操作*)时,.git 的修改日期/objects/pack/pack-*.pack 文件更改。文件本身保持不变,但上次修改日期字段已更新,这导致我的备份软件认为文件已更改并需要添加到我的差异备份中。由于我的 .pack 文件相当大,这会显着增加我每日备份的大小。有没有办法阻止这种行为?也就是说,保持包文件完全不变,包括其元数据,直到我执行 git gc 或 git repack?
不幸的是,我无法确定哪个操作导致了这种行为。今天发生这种情况时,我只使用了 git status、git log、git add、git mv 和 git commit,没有使用其他任何东西,并且日期/时间发生了更改,但是当我尝试在昨天的备份上复制该行为时,日期更改并没有不会发生。我想下次我将运行进程监视器并监视对文件的访问,但与此同时,有人知道可能导致此问题的原因吗?谢谢。
我希望能够将git存储库同步到AWS S3进行备份。此外,我希望公众能够git clone备份。我的步骤是:
s3cmd mb s3://lktesting
git update-server-info
s3cmd -P sync .git/ s3://lktesting
s3cmd ws-create s3://lktesting
s3cmd ws-info s3://lktesting
Run Code Online (Sandbox Code Playgroud)
我以为这曾经有用,但现在我得到了:
git clone http://lktesting.s3-website-ap-southeast-1.amazonaws.com/
Cloning into 'lktesting.s3-website-ap-southeast-1.amazonaws.com'...
error: The requested URL returned error: 403 Forbidden (curl_result = 22, http_code = 403, sha1 = bf866b95d9517ea38e213740cead5cf1c313f5aa)
Checking connectivity... done.
Run Code Online (Sandbox Code Playgroud)
有人知道我在想什么吗?
我有一个正在处理的项目,当前在GitHub的存储库中。
我正在做我的学位课程的一部分,我将很快将其移交给客户
我想知道是否有一种方法可以导出包括所有分支和相关历史记录在内的整个存储库,以便可以在将其存储到将来的开发人员之前进行存储?
我经常备份部分硬盘驱动器。我不想讨论我这样做的原因。我想讨论的是,复制.git目录时备份特别慢。即使是简单的项目在这个.git目录中也有大约 5000 个文件!我正在运行多个这样的项目。它们加起来只有大约 60 mb 左右。git 目录的文件比我的项目多!这对于复制来说非常低效。这对于复制来说非常低效:我认为所有这些.git目录丢失了大约 90% 的时间。
有没有办法设置 git 以有效地将所有内容集成到一个大文件中?或者可能是 10 到 50。但不是 5000。
我在一个硬盘驱动器中有一个git存储库.我想把它重新安置到另一个硬盘上.最安全的方法是什么?1. cp -r?焦油球?3. git clone(但是它的URI是什么)?
我担心如果git存储库包含绝对路径,那么'mv'到新目录将破坏git.
谢谢.
我有一台运行在Windows台式机上的git服务器,它已经莫名其妙地失去了连接到互联网的能力.我想将repo移动到linux机器上.我已经知道如何在设置后将克隆的repos切换为指向新的master,但我需要先将它转换为新的机器.
我假设因为windows和linux有点不同,我不能只是逐字复制repo目录.但也许我可以吗?我有什么选择?
我有一个项目,我在两个地方使用(我不使用git服务器).
当我在第二个地方复制项目时,我必须签入所有文件(但它们没有改变),git给我看了例子
@@ -1,8 +1,8 @@
-#Sat Mar 06 19:39:27 CET 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
+#Sat Mar 06 19:39:27 CET 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
Run Code Online (Sandbox Code Playgroud)
我在两个地方做了命令,
git config --global core.autocrlf false
但它没有帮助解决这个问题