是否有可能在Git中恢复已提交的文件?我已经将提交推送到GitHub然后我意识到有一个我不想被推送的文件(我还没有完成更改).
使用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存储库.示例dirA/dirB.有没有办法git clone在Unix服务器上只从子目录(dirB)中提取文件?
除了克隆之外还有其他一些git命令可以执行此操作吗?
我如何git特定文件?
我有一个服务器,我有一个裸存储库用于推送.但是,我的服务器需要有一个主分支的工作副本.
如何从裸存储库中获取工作副本?
有一些我不明白的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,我想在我的项目中包含一些常见的JS/CSS库和/或实用程序方法(即来自另一个repo的特定文件),我希望它能让它们始终保持最新状态.我真的不想要整个远程存储库.如果我可以处理远程文件的"本地副本"并将更改重新推送,则可以获得奖励.
一个有点平行的例子:在ASP.NET中,我会通过引用("远程")其他库的.dll文件(没有"copy local")来做到这一点,这样每当我重新编译外部库时,我的项目就会指向最新的版本.
我的项目是...... MyProject,我只想要外部存储库ExternalLibrary和External2中的几个文件.我不想在其他地方克隆每个存储库,并将文件复制粘贴到我的存储库中.如果我做了改进MyProject/scripts/common1.js,我想把它推回到ExternalLibrary.
相关参考:
在服务器上,我有裸存储库,它是开发过程的起源,并简化了到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)
我究竟做错了什么?或者这样做是不可能的?
从我的github(免费)仓库下载10 MB的zip文件时,我收到此错误:
错误:blob太大了
... 10 MB似乎并没有那么大的一个二进制下载...但在这两种情况下,你怎么从GitHub下载单个较大的二进制文件或你如何设置github上,这样一个项目一定的二进制文件可下载?
我在 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从远程存储库克隆单个文件?例如,我希望将其他人的.htaccess文件复制到我自己的项目中.我不需要他们的整个存储库,只需要这个文件.
git ×9
github ×3
git-clone ×2
git-bare ×1
git-subtree ×1
githooks ×1
organization ×1
sh ×1
workflow ×1