小编7oc*_*hem的帖子

在Git存储库中查找并恢复已删除的文件

说我在Git存储库中.我删除了一个文件并提交了更改.我继续工作,并做了一些更多的提交.然后,我发现我需要恢复该文件.

我知道我可以使用签出文件git checkout HEAD^ foo.bar,但我真的不知道该文件何时被删除.

  1. 找到删除给定文件名的提交的最快方法是什么?
  2. 将该文件恢复到我的工作副本的最简单方法是什么?

我希望我不必手动浏览我的日志,检查整个项目的给定SHA,然后手动将该文件复制到我原来的项目结帐中.

git file-io git-checkout

2716
推荐指数
20
解决办法
93万
查看次数

如何从另一个分支中获取一个文件

我正在使用git并在master分支上工作.这个分支有一个名为的文件app.js.

我有一个experiment分支,我做了一堆变更和大量的提交.现在我希望把做只对所有变化app.jsexperimentmaster分支.

我怎么做?

再一次,我不想合并.我只是想把所有的变化app.jsexperiment分支带到master分支.

git git-checkout

1154
推荐指数
10
解决办法
51万
查看次数

忽略本地变化时Git拉?

有没有办法做一个git pull忽略任何本地文件更改而不吹掉目录而不得不执行git clone

git git-pull

433
推荐指数
11
解决办法
46万
查看次数

使用capistrano从不同的git分支部署

我正在使用capistrano来部署RoR应用程序.代码库位于git存储库中,分支广泛用于开发.Capistrano使用deploy.rb文件进行设置,其中一个是要部署的分支.

我的问题是这样的:比方说,我创建了一个新的分支一个.部署文件将引用master分支.我编辑它,所以可以部署A来测试环境.我完成了该功能,并将分支A合并到主服务器中.由于deploy.rb从文件一个是新鲜的,它被合并了,现在deploy.rb分支引用一个.是时候再次编辑了.

这是很多看似不必要的手动编辑 - 参数应始终与当前分支名称匹配.最重要的是,每次都很容易忘记编辑设置.

什么是自动化这个过程的最佳方法?

编辑:结果已经完成了我所需要的人:

今天早上我有机会将一个git存储库的一个分支部署到一个临时服务器,但是没有最模糊的想法.通过capistrano源代码快速搜索显示我可以:branch "branch_name"在部署脚本中使用set .我尝试了它,它的工作原理.然后我想我需要对所有分支进行类似的更改.当然,我是一个懒惰的草皮,并想知道是否有更好的方法.

如果您不熟悉git,git branch命令的输出是一个带有星号的分支列表,标记当前在本地计算机上签出的星号.例如:

> git branch
* drupal_authentication
fragment_caching
master
Run Code Online (Sandbox Code Playgroud)

所以,我想,如果我只是解析输出并搜索标记为当前的分支:

set :branch, $1 if `git branch` =~ /\* (\S+)\s/m
Run Code Online (Sandbox Code Playgroud)

现在,我可以从单个共享的部署脚本部署本地计算机上当前的任何分支.

git capistrano

120
推荐指数
8
解决办法
7万
查看次数

创建.tar.gz文件时排除目录

我有一个/public_html/文件夹,在该文件夹中有一个/tmp/文件夹,其中包含70gb的文件,我并不需要.

现在,我想创建一个.tar.gz/public_html/排除/tmp/

这是我跑的命令:

tar -pczf MyBackup.tar.gz /home/user/public_html/ --exclude "/home/user/public_html/tmp/" 
Run Code Online (Sandbox Code Playgroud)

tar仍在创建,通过做一个ls -sh我可以看到MyBackup.tar.gz已经有大约30gb,我肯定知道/public_html/没有/tmp/超过1GB的文件.

我做错了什么?

linux compression gzip tar

111
推荐指数
7
解决办法
18万
查看次数

将.gitignore添加到gitignore

是否可以将.gitignore文件添加到.gitignore自身?

.gitignore
Run Code Online (Sandbox Code Playgroud)

虽然不起作用

我不想在编辑过的文件中看到它

git gitignore

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

如何在不覆盖本地文件的情况下从远程提取文件?

我正在尝试为预先存在的远程仓库设置一个新的git仓库.

我希望我的本地文件覆盖远程仓库,但是git说我首先必须将这些远程文件拉入并合并它们.

有没有办法拉,但要确保本地文件不被遥控器覆盖?

git github

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

在git log中显示所有标签

为什么git log --decorate每次提交不显示多个标记?

编辑:Charles Bailey提出了答案(至少在我的情况下)
基本上,我有一个标签指向另一个指向提交的标签.由于这个额外的间接层,标记未显示在日志中.我将不得不解决这个问题,通过修复我们的标记脚本来正确标记,或者通过一些shell脚本voodoo来递归跟踪标记.无论如何,我会留下这个问题仅供参考,万一有人想要它.(我是堆栈溢出的新手,但我认为这是正确的协议?)

...原始问题如下......

背景故事:我们在工作中使用GIT进行源代码控制,我们的策略是在部署时始终标记提交.(它实际上是一个执行标记的脚本,然后在服务器上提取标记).由于它是一个具有单独的登台和生产服务器的Web应用程序,因此我们经常标记一个版本用于登台(用于测试或其他),然后标记相同的提交以进行生产.

所以我们经常在同一次提交中拥有多个标签.能够在文本日志中看到这一点会非常好,但它似乎不支持它.我目前正在解决这个问题,通过手动检查我正在寻找的标签,或通过启动gitk.虽然这两种解决方案都有效,但在我看来git log --decorate,默认情况下每次提交仅支持一个标记真的很奇怪.

我做了一些谷歌搜索,但没有找到太多.我错过了一些明显的东西吗

PS(我实际上使用自定义格式字符串%d,根据手册页和一些快速测试,它相当于--decorate)

git

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

Jquery .on()提交事件

我遇到了问题.on().我有多个表单元素(表单class="remember"),我也form.remember使用AJAX 添加另一个.所以,我希望它能够处理提交事件,例如:

$('form.remember').on('submit',function(){...}) 
Run Code Online (Sandbox Code Playgroud)

但是使用AJAX添加的表单不适用于它.

问题出在哪儿?这是一个错误吗?

forms ajax jquery submit

87
推荐指数
2
解决办法
25万
查看次数

在PHP中,如何清除WSDL缓存?

php_info()保存WSDL缓存的地方(/tmp),但我不一定知道从WSDL开始删除所有文件是否安全.

是的,我应该能够删除所有内容/tmp,但我不知道如果删除任何所有WSDL文件,这会产生什么影响.

php soap wsdl caching

85
推荐指数
5
解决办法
13万
查看次数

标签 统计

git ×7

git-checkout ×2

ajax ×1

caching ×1

capistrano ×1

compression ×1

file-io ×1

forms ×1

git-pull ×1

github ×1

gitignore ×1

gzip ×1

jquery ×1

linux ×1

php ×1

soap ×1

submit ×1

tar ×1

wsdl ×1