git clone帮助页面有这样的说法--mirror:
设置远程存储库的镜像.这意味着
--bare.
但是没有详细说明--mirror克隆与克隆的不同之处--bare.
我创建了一个git存储库来镜像一个实时站点(这是一个非裸的git存储库):
git clone --mirror ssh://user@example.com/path/to/repo
Run Code Online (Sandbox Code Playgroud)
现在,要保持此镜像克隆更新其远程源的所有更改,我必须使用哪个或哪些命令?
我想保持一切更新:提交,引用,钩子,分支等.
谢谢!
我是一名独立开发人员,在本地Git存储库中工作.对于备份,我想将该存储库的精确副本发送到另一台服务器.
这样做是否足够?
git push --mirror
Run Code Online (Sandbox Code Playgroud)
我问,因为在Git告诉我"一切都是最新的"之前,我有时可以运行这个命令两到三次,所以显然它不是一个精确的镜子.它似乎正在重新推动跟踪分支......?
$ git push --mirror
Counting objects: 42, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (30/30), done.
Writing objects: 100% (30/30), 5.09 KiB, done.
Total 30 (delta 17), reused 0 (delta 0)
To ssh://my/repo/url
c094a10..0eedc92 mybranch -> mybranch
$ git push --mirror
Total 0 (delta 0), reused 0 (delta 0)
To ssh://my/repo/url
c094a10..0eedc92 origin/mybranch -> origin/mybranch
$ git push --mirror
Everything up-to-date
Run Code Online (Sandbox Code Playgroud)
发生了什么,这是一个好策略吗?
编辑:我不喜欢使用类似git bundle或.tar.bz2档案的东西,因为我希望备份是一个可访问的工作副本.由于我的备份服务器已连接到网络并始终打开,因此在我上路时这是访问存储库的好方法.
我对Git有点新鲜,而我正在努力做的事似乎应该是可能的.基本上我一直在克隆一个回购,并做了很多本地提交.有没有办法看到我所有更改和原始回购版本的"总和"差异?我认为这是可能的,因为当我这样做时,Git基本上会这样做push.
这是我正在尝试做的一个例子:在gitk中我会看到类似这样的东西:
* - [mybranch]在answers.txt(本地提交)结尾添加'42'
* - 添加'Hello World'结束of my.txt(本地提交)
* - 在my.txt(本地提交)的开头添加'C#/.NET'
* - <[RemoteRepo]>(我克隆的原始仓库)
它是如何,我可以查看我的所有变化总和的差异my.txt和answers.txt比较,我从签出的原始版本时RemoteRepo?
一位同事在他们的存储库中藏匿了我可以访问的文件系统(通过文件系统),我想将该存储库存入我的存储库中的一个分支.
% git ls-remote ~alice/work/repo/ stash 3ccc82fb1ee0e7bde1250c7926d333ce21c109c0 refs/stash
但是当我试图获取它时,git告诉我"无法找到3cc82 ......"
% git fetch ~alice/work/repo stash:new_branch remote: Total 0 (delta 0), reused 0 (delta 0) error: unable to find 3ccc82fb1ee0e7bde1250c7926d333ce21c109c0 fatal: object 3ccc82fb1ee0e7bde1250c7926d333ce21c109c0 not found
有没有办法可以获取远程存储?
我可以通过两个步骤将其推送到存储库来备份我的本地.git:
git push --all ~/gitrepo
git push --tags ~/gitrepo
Run Code Online (Sandbox Code Playgroud)
我可以使用git bundle备份它.
我可以通过简单地复制整个目录或将其归档(压缩!)来备份它:
tar -zcvf gitrepo.tgz .git
Run Code Online (Sandbox Code Playgroud)
现在的问题是它们是否真的相同?(例如,logs不推送子目录)
该git push方法的优点是什么git bundle?
可以tar -zcvf被认为是"完美的git备份"吗?
我有一个使用git的个人项目,我经常在Github上托管的多台计算机上进行攻击.由于我在家工作,我往往会经常中断.我将在声明的中间,晚餐将准备好,或者我需要更换尿布.当我回到编码时,我可能在不同的计算机上.获得最新版本的最佳方法是什么?
我认为最正统的答案是承诺和推动.我经常做出承诺,但在这里承诺对我来说似乎很混乱.代码可能处于一个完全破碎的状态,我正处于思考的中间.提交和发布它,即使是在主题分支上,对我来说也不合适.它也比我想要的步骤更多.
到现在为止我一直在使用DropBox.但这似乎导致了我的腐败指数.不难想象,因为这些同步可以跨越不同版本的git和不同的操作系统.所以我害怕这个.
有没有人有更好的选择?
它不止一次离开办公室只保存了一堆未提交的代码.
因此,如果我想继续使用相同的功能,我必须SSH到我的主机,创建一个一次性分支,提交存储并将新分支推送到开发存储库.
现在我想知道是否有一个更清晰,更实用的解决方案,用于将git存储"复制/导出"到另一个本地存储库.我已经排除了SCP在办公室机器上的本地存储库,因为我的笔记本电脑上也可以进行一些工作.
PS:我的问题是这样的延续一个
如果我在一个分支,例如test并且有一些工作.如果我做了一个git stash并切换到master分支,如果我这样git stash clear做,我会失去我保存的工作test吗?或者每个分支都有一个单独的存储堆栈?
我有两个相同远程存储库的 git 克隆。我在克隆 A 中创建了几个隐藏,现在想将这些隐藏移动到克隆 B。
[克隆 A] ---- 藏匿 ---> [克隆 B]
我能想到的一种解决方法是为每个存储创建分支,并通过克隆 A 将该分支推送到远程,然后将这些分支拉入克隆 B。但这不是我愿意做的。
任何人都可以提出任何更简单,更清洁的方法(例如复制)吗?
我有一个git repo,我的同事在他的电脑上克隆了它.无论出于何种原因,我们因技术问题而丢失了他的存储库.
在我们失去回购之前不久,他把一些工作藏起来了,然后我做了一个git fetch跟随git merge master.
是否有可能获得藏匿的内容?那git fetch命令也会把藏匿物拉过来吗?
我可以查看所有远程分支,git branch -a但我需要隐藏数据.
我们正在运行git version 1.6.3.3的Ubuntu 9.10 Karmic
我有一个仓库的两个副本,每个副本都带着几十藏匿状态的(stash@{0},stash@{1},...).
我需要删除其中一个副本,并且我想将所有隐藏的更改从我要删除的副本传输到我将保留的副本.我想保留关于所有藏匿状态的父母和日期的所有信息,以及索引的状态.
我一直在阅读文档,我找不到任何简单/直接的方法来做到这一点.有可能吗?
更新1:我希望将更改保持为存储状态而不是提交的原因之一是,通过使用--index标志,我可以检索为提交和工作目录中的更改而暂存的更改.如果我创建一个提交,我也将破坏隐藏状态的信息,其中父,索引和工作副本彼此不同.我隐藏的状态通常对应于初步测试工作,这些工作远非可编译,没有准备好承诺,而且目前我没有时间经历数十个整理它们.
更新2:我想我知道如何查看我要备份的信息,例如,
$ git show stash{5}
commit eb5731e828f467dbe9214d0e6a350f33898c1363
Merge: c9608582 1d6cb78d
Author: Author <author@example.com>
Date: Wed Sep 20 18:54:51 2017 +0100
Run Code Online (Sandbox Code Playgroud)
清楚地产生工作目录状态(commit行)和日期的id,并且Merge:行中的id是父提交id和索引的id.
我不知道的是如何将所有这些信息转移到存储库的第二个副本,作为它的新存储状态.
更新3:澄清:存储库的两个副本已经存储了状态.
我想隐藏正在进行的工作,但我也希望我在GitHub上备份我的东西.以前我通常会发表评论说"WIP:blah blah blah",但我宁愿提交已完成的阶段,而不是提交"WIP:"提交,这实际上只是将我的工作备份到GitHub服务器的一种方式.
有没有办法藏匿GitHub?