相关疑难解决方法(0)

Git:推送后删除已提交的文件

是否有可能在Git中恢复已提交的文件?我已经将提交推送到GitHub然后我意识到有一个我不想被推送的文件(我还没有完成更改).

git github

70
推荐指数
7
解决办法
11万
查看次数

在Git 1.7.0中稀疏结账?

使用Git 1.7.0中新的稀疏结账功能,是否可以像在SVN中一样获取子目录的内容?我找到了这个例子,但它保留了完整的目录结构.想象一下,我只想要'perl'目录的内容,而没有名为'perl'的实际目录.

- 编辑 -

例:

我的git存储库包含以下路径

repo/.git/
repo/perl/
repo/perl/script1.pl
repo/perl/script2.pl
repo/images/
repo/images/image1.jpg
repo/images/image2.jpg
repo/doc/
repo/doc/readme.txt
repo/doc/help.txt
Run Code Online (Sandbox Code Playgroud)

我想要的是能够从上面的存储库中生成这种布局:

repo/.git/
repo/script1.pl
repo/script2.pl
Run Code Online (Sandbox Code Playgroud)

然而,使用当前的稀疏结账功能,似乎只能获得

repo/.git/
repo/perl/script1.pl
repo/perl/script2.pl
Run Code Online (Sandbox Code Playgroud)

这不是我想要的.

git version-control sparse-checkout

68
推荐指数
4
解决办法
4万
查看次数

使用git仅克隆一个子目录

我有一个包含子目录的git存储库.示例dirA/dirB.有没有办法git clone在Unix服务器上只从子目录(dirB)中提取文件?

除了克隆之外还有其他一些git命令可以执行此操作吗?

我如何git特定文件?

git sparse-checkout

33
推荐指数
3
解决办法
7万
查看次数

获取裸存储库的工作副本

我有一个服务器,我有一个裸存储库用于推送.但是,我的服务器需要有一个主分支的工作副本.

如何从裸存储库中获取工作副本?

git working-directory git-bare

31
推荐指数
6
解决办法
3万
查看次数

GIT pull:用远程版本替换本地版本

有一些我不明白的GIT拉动作.我有一个带有两个文件的foobar git存储库:名为f1和f2.首先,我使用以下命令克隆此repo:

git clone git@mycompany:foobar/foobar.git 
Run Code Online (Sandbox Code Playgroud)

我对f1和f2文件做了一些错误的修改,然后将它们添加到git index并提交.

git add -A
git commit -m 'a test wrong modification'
Run Code Online (Sandbox Code Playgroud)

我现在决定这些修改是错误的,我想用远程版本替换我的文件.所以我使用git pull来做到这一点:

git pull
Run Code Online (Sandbox Code Playgroud)

GIT回答该项目已经是最新的.有人可以帮帮我吗?这有什么问题?我该如何继续用远程版本替换我的本地版本?谢谢,本.

git

20
推荐指数
1
解决办法
3万
查看次数

Git - 包含来自其他存储库的文件

使用Git,我想在我的项目中包含一些常见的JS/CSS库和/或实用程序方法(即来自另一个repo的特定文件),我希望它能让它们始终保持最新状态.我真的不想要整个远程存储库.如果我可以处理远程文件的"本地副本"并将更改重新推送,则可以获得奖励.

一个有点平行的例子:在ASP.NET中,我会通过引用("远程")其他库的.dll文件(没有"copy local")来做到这一点,这样每当我重新编译外部库时,我的项目就会指向最新的版本.

示例场景

我的项目是...... MyProject,我只想要外部存储库ExternalLibraryExternal2中的几个文件.我不想在其他地方克隆每个存储库,并将文件复制粘贴到我的存储库中.如果我做了改进MyProject/scripts/common1.js,我想把它推回到ExternalLibrary.

  1. 我的项目/
    • 的index.html
    • 脚本/
      • mycode.js
      • otherplugin.js
      • common1.js < - 来自ExternalLibrary
      • plugin2.js < - 来自ExternalLibrary
    • 风格/
      • mystyle.css
      • common.css < - 来自External2
  2. ExternalLibrary /
    • common1.js
    • plugin1.js
    • plugin2.js
    • bunchofothercrap ...
  3. External2 /
    • common.css
    • bunchofothercrap ...

相关参考:

git workflow organization

19
推荐指数
1
解决办法
7057
查看次数

git - 在裸存储库下检出单个文件

在服务器上,我有裸存储库,它是开发过程的起源,并简化了到QA环境的部署.

所以post-receive它根本

GIT_WORK_TREE=/home/dev git checkout -f
Run Code Online (Sandbox Code Playgroud)

但随着产品变得越来越复杂,还应该发生其他一些事情.所以现在它由deploy.sh脚本处理,脚本也被存储库跟踪.所以我想做的是能够而不是检查整个存储库只是结账deploy.sh并运行它.我认为这样的东西会起作用:

SOURCE_PATH="/home/dev"
GIT_WORK_TREE=$SOURCE_PATH git checkout deploy.sh
$SOURCE_PATH"/deploy.sh"
Run Code Online (Sandbox Code Playgroud)

但它不起作用给出错误:

error: pathspec 'deploy.sh' did not match any file(s) known to git.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?或者这样做是不可能的?

git sh githooks

12
推荐指数
1
解决办法
4191
查看次数

错误:blob太大 - 从github repo下载单个zip文件

从我的github(免费)仓库下载10 MB的zip文件时,我收到此错误:

错误:blob太大了

... 10 MB似乎并没有那么大的一个二进制下载...但在这两种情况下,你怎么从GitHub下载单个较大的二进制文件或你如何设置github上,这样一个项目一定的二进制文件可下载?

github

10
推荐指数
1
解决办法
2754
查看次数

克隆 git repo 的子树/子目录

我在 Github 上有一个 git 仓库,看起来像这样:

.git/
assets/
  tools/
    a.sh
    b.sh
    c.sh
Run Code Online (Sandbox Code Playgroud)

当然 .git 文件夹不在版本控制中,但您明白了。我想将 tools/*.sh 复制到本地目录,路径如下:

./scripts/git/tools
Run Code Online (Sandbox Code Playgroud)

我当前的目录是一个 git 存储库,它与远程 git 存储库共享完全不同的历史记录,我只想从远程复制一些文件,我不想合并任何内容。

我想我可以做这样的事情:

git clone --path assets/tools/*.sh "$remote_repo"  ./scripts/git/tools
Run Code Online (Sandbox Code Playgroud)

但该命令不是真实的,我可以使用一些命令来执行此操作吗?

我能想到的唯一其他方法是将整个存储库克隆到某个临时目录,然后复制文件,但这并不是那么有趣。

git git-clone git-subtree

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

从Github Repo克隆单个文件

是否可以使用Git从远程存储库克隆单个文件?例如,我希望将其他人的.htaccess文件复制到我自己的项目中.我不需要他们的整个存储库,只需要这个文件.

git version-control github git-clone

8
推荐指数
1
解决办法
2万
查看次数