说我在Git存储库中.我删除了一个文件并提交了更改.我继续工作,并做了一些更多的提交.然后,我发现我需要恢复该文件.
我知道我可以使用签出文件git checkout HEAD^ foo.bar,但我真的不知道该文件何时被删除.
我希望我不必手动浏览我的日志,检查整个项目的给定SHA,然后手动将该文件复制到我原来的项目结帐中.
我正在使用git并在master分支上工作.这个分支有一个名为的文件app.js.
我有一个experiment分支,我做了一堆变更和大量的提交.现在我希望把做只对所有变化app.js从experiment到master分支.
我怎么做?
再一次,我不想合并.我只是想把所有的变化app.js从experiment分支带到master分支.
我正在使用capistrano来部署RoR应用程序.代码库位于git存储库中,分支广泛用于开发.Capistrano使用deploy.rb文件进行设置,其中一个是要部署的分支.
我的问题是这样的:比方说,我创建了一个新的分支一个从主.部署文件将引用master分支.我编辑它,所以可以部署A来测试环境.我完成了该功能,并将分支A合并到主服务器中.由于deploy.rb从文件一个是新鲜的,它被合并了,现在deploy.rb在主分支引用一个.是时候再次编辑了.
这是很多看似不必要的手动编辑 - 参数应始终与当前分支名称匹配.最重要的是,每次都很容易忘记编辑设置.
什么是自动化这个过程的最佳方法?
编辑:结果已经完成了我所需要的人:
今天早上我有机会将一个git存储库的一个分支部署到一个临时服务器,但是没有最模糊的想法.通过capistrano源代码快速搜索显示我可以
:branch "branch_name"在部署脚本中使用set .我尝试了它,它的工作原理.然后我想我需要对所有分支进行类似的更改.当然,我是一个懒惰的草皮,并想知道是否有更好的方法.如果您不熟悉git,git branch命令的输出是一个带有星号的分支列表,标记当前在本地计算机上签出的星号.例如:
Run Code Online (Sandbox Code Playgroud)> git branch * drupal_authentication fragment_caching master所以,我想,如果我只是解析输出并搜索标记为当前的分支:
Run Code Online (Sandbox Code Playgroud)set :branch, $1 if `git branch` =~ /\* (\S+)\s/m现在,我可以从单个共享的部署脚本部署本地计算机上当前的任何分支.
我有一个/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的文件.
我做错了什么?
是否可以将.gitignore文件添加到.gitignore自身?
.gitignore
Run Code Online (Sandbox Code Playgroud)
虽然不起作用
我不想在编辑过的文件中看到它
我正在尝试为预先存在的远程仓库设置一个新的git仓库.
我希望我的本地文件覆盖远程仓库,但是git说我首先必须将这些远程文件拉入并合并它们.
有没有办法拉,但要确保本地文件不被遥控器覆盖?
为什么git log --decorate每次提交不显示多个标记?
编辑:Charles Bailey提出了答案(至少在我的情况下)
基本上,我有一个标签指向另一个指向提交的标签.由于这个额外的间接层,标记未显示在日志中.我将不得不解决这个问题,通过修复我们的标记脚本来正确标记,或者通过一些shell脚本voodoo来递归跟踪标记.无论如何,我会留下这个问题仅供参考,万一有人想要它.(我是堆栈溢出的新手,但我认为这是正确的协议?)
背景故事:我们在工作中使用GIT进行源代码控制,我们的策略是在部署时始终标记提交.(它实际上是一个执行标记的脚本,然后在服务器上提取标记).由于它是一个具有单独的登台和生产服务器的Web应用程序,因此我们经常标记一个版本用于登台(用于测试或其他),然后标记相同的提交以进行生产.
所以我们经常在同一次提交中拥有多个标签.能够在文本日志中看到这一点会非常好,但它似乎不支持它.我目前正在解决这个问题,通过手动检查我正在寻找的标签,或通过启动gitk.虽然这两种解决方案都有效,但在我看来git log --decorate,默认情况下每次提交仅支持一个标记真的很奇怪.
我做了一些谷歌搜索,但没有找到太多.我错过了一些明显的东西吗
PS(我实际上使用自定义格式字符串%d,根据手册页和一些快速测试,它相当于--decorate)
我遇到了问题.on().我有多个表单元素(表单class="remember"),我也form.remember使用AJAX 添加另一个.所以,我希望它能够处理提交事件,例如:
$('form.remember').on('submit',function(){...})
Run Code Online (Sandbox Code Playgroud)
但是使用AJAX添加的表单不适用于它.
问题出在哪儿?这是一个错误吗?
在php_info()保存WSDL缓存的地方(/tmp),但我不一定知道从WSDL开始删除所有文件是否安全.
是的,我应该能够删除所有内容/tmp,但我不知道如果删除任何所有WSDL文件,这会产生什么影响.