相关疑难解决方法(0)

做一个"git export"(比如"svn export")?

我一直在想是否有一个很好的"git export"解决方案,它创建了一个没有.git存储库目录的树的副本.我知道至少有三种方法:

  1. git clone然后删除.git存储库目录.
  2. git checkout-index 提到这个功能,但开头是"只需将所需的树读入索引...",我不完全确定如何做.
  3. git-export是第三方脚本,基本上git clone进入临时位置,然后rsync --exclude='.git'进入最终目的地.

这些解决方案都没有让我感到满意.最接近的一个svn export选项可能是选项1,因为这两个都要求目标目录首先为空.但是假设我可以弄清楚将树读入索引意味着什么,选项2似乎更好.

git export svn-export git-archive

2312
推荐指数
24
解决办法
62万
查看次数

检查Git中是否需要拉

如何检查远程存储库是否已更改,我需要拉?

现在我使用这个简单的脚本:

git pull --dry-run | grep -q -v 'Already up-to-date.' && changed=1
Run Code Online (Sandbox Code Playgroud)

但它相当沉重.

有没有更好的办法?理想的解决方案是检查所有远程分支,并返回已更改分支的名称和每个分支的新提交数.

git bash shell

600
推荐指数
15
解决办法
34万
查看次数

使用git获取最新版本

我想跟踪一个使用git的项目.我不想克隆完整的存储库和完整的历史记录,我只想要最新版本,我希望能够从远程项目更新到新版本.

我尝试过使用git clone,但这会创建整个存储库的副本(文件大小很大),并且跟踪更改会使磁盘空间更大(100mb的文件现在占用超过2gb).

我不打算提交补丁,我不需要历史记录.我只想要像颠覆这样的最新版本.

这可能在git中吗?

git

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

如何从GitHub下载ZIP格式的源代码?

我看到一些奇怪的东西:

http://github.com/zoul/Finch.git

现在我不是那个CVS,SVN等老兄.当我在浏览器中打开它时,它告诉我我做错了什么.所以我打赌我需要一些黑客风格的工具?一些客户?

(我的意思是......为什么不提供一个ZIP文件呢?这个世界不够复杂吗?)

git github

253
推荐指数
8
解决办法
70万
查看次数

没有.git目录的Git克隆

可能重复:
如何进行"git export"(如"svn export")

git做克隆时是否有传递给的标志,比如说不克隆.git目录?如果没有,.git克隆后删除目录的标志怎么样?

git version-control git-clone

134
推荐指数
6
解决办法
9万
查看次数

从github远程存储库导出git

我想从github远程存储库导出,而不是克隆它.与svn export类似,我不想用它获取.git文件夹.我可以通过克隆和删除.git文件夹来解决它.我想知道是否有更清洁的方式?

我在某处读到了你可以使用git archive来实现这一点.

但是我收到以下错误..

$ git archive --format=tar --remote=git@github.com:xxx/yyy.git master | tar -xf -

Invalid command: 'git-upload-archive 'xxx/yyy.git''
You appear to be using ssh to clone a git:// URL.
Make sure your core.gitProxy config option and the
GIT_PROXY_COMMAND environment variable are NOT set.
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

任何帮助都会很棒.谢谢.

git github

45
推荐指数
5
解决办法
3万
查看次数

如何更新git浅层克隆?

背景

(对于tl; dr,请参阅下面的#questions)

我有多个git存储库浅克隆.我使用的是浅克隆,因为它与脏克隆相比要小得多.每个人都克隆着做git clone --single-branch --depth 1 <git-repo-url> <dir-name>.

这工作正常,但我没有看到如何更新它.

当我用标签克隆时,更新没有意义,因为标签是冻结的时间点(据我所知).在这种情况下,如果我想更新,这意味着我想要通过另一个标签克隆,所以我只是rm -rf <dir-name>再次克隆.

当我克隆了主分支的HEAD然后想要更新它时,事情变得更加复杂.

我试过git pull --depth 1但是虽然我不想把任何东西推到远程存储库,它抱怨它不知道我是谁.

我试过了git fetch --depth 1,但是虽然它似乎更新了一些东西,但我检查它是不是最新的(远程存储库上的某些文件的内容与我克隆上的文件不同).

/sf/answers/1435601401/之后,我试过git fetch --depth 1; git reset --hard origin/master,但有两件事:第一,我不明白为什么git reset需要,第二,尽管文件似乎是最新的,但仍有一些旧文件,以及git clean -df不会删除这些文件.

问题

让克隆创建git clone --single-branch --depth 1 <git-repo-url> <dir-name>.如何更新它以达到相同的效果rm -rf <dir-name>; git clone --single-branch --depth 1 <git-repo-url> <dir-name>?或者是rm -rf <dir-name>再次克隆唯一的方法?

注意

这不是如何在不增加主要仓库大小的情况下更新浅层克隆子模块 …

git git-clone

25
推荐指数
1
解决办法
8289
查看次数

备份使用git的项目

在快速重新安装之前,我正在刻录DVD上的东西.从来没有用git作为最近的用户.所以我只是和你们一起检查.如果我理解正确的话,我只需要备份我的项目目录project_name(里面有.git)和它一起查看隐藏文件,当我将它复制到"新"机器上,并再次安装git时,我恢复如下没啥事儿 ?正确吗?

git

9
推荐指数
2
解决办法
6138
查看次数

仅克隆git仓库的.git目录

我有一个与谷歌驱动器同步的回购,但我忽略了.git目录,所以它现在上传到谷歌驱动器.

最近我格式化了我的Gentoo机器,在我再次同步所有Google Drive文件后,我意识到.git目录不在那里.

问题是我不记得我是否在本地没有被推到github的一些未经标记/未经修改的更改.

我一直在寻找,但我只找到了相反问题的答案(克隆没有.git目录)

我不想做git clone我的回购,直到我确定可能的局部变化不会丢失.

有没有办法只克隆.git文件夹,然后推送我的机器中可能有的任何本地更改?

git version-control github

5
推荐指数
2
解决办法
6873
查看次数