【问题标题】:Messed up pushing to github, now would like to revert changes搞砸了推送到 github,现在想恢复更改
【发布时间】:2018-05-21 01:08:29
【问题描述】:

第一次为 github 使用 git 和命令行,我觉得我搞砸了。我使用的是此存储库的旧版本:https://github.com/nielsenramon/chalk。我下载、玩耍、制作自己的东西。然后我决定上传到 GitHub。发生的事情是我不知道自己在做什么,所以在 Git Bash 中,我输入了git init,然后输入了run/deploy。问题是,在我正在开发的版本的自述文件中,它告诉我:

重要提示:Chalk 不支持在 GitHub Pages 上托管 Jekyll 的标准方式。您需要使用 bin/deploy 脚本部署您的工作分支(可以是任何分支,对于 xxx.github.io 用户:使用除 master 之外的另一个分支)。这样做的原因是因为 Chalk 使用了 GitHub 页面不支持的 Jekyll 插件。 bin/deploy 脚本将自动构建整个项目,然后将其推送到您的 repo 的 gh-pages 分支。该脚本会为您创建该分支,因此无需自己创建。

您可以在此处找到有关如何使用 gh-pages 分支和自定义域的更多信息。

查看此内容以了解有关使用 Circle CI 进行自动化部署的更多信息。

这是它在 bin/deploy 中的内容:

#!/usr/bin/env sh

# Run this script to deploy the app to Github Pages.

# Exit if any subcommand fails.
set -e

echo "Started deploying"

# Checkout gh-pages branch.
if [ `git branch | grep gh-pages` ]
then
  git branch -D gh-pages
fi
git checkout -b gh-pages

# Build site.
yarn install --modules-folder ./_assets/yarn
bundle exec jekyll build

# Delete and move files.
find . -maxdepth 1 ! -name '_site' ! -name '.git' ! -name '.gitignore' -exec rm -rf {} \;
mv _site/* .
rm -R _site/

# Push to gh-pages.
git add -fA
git commit --allow-empty -m "$(git log -1 --pretty=%B) [ci skip]"
git push -f -q origin gh-pages

# Move back to previous branch.
git checkout -
yarn install --modules-folder ./_assets/yarn

echo "Deployed Successfully!"

exit 0

所以当我运行run/deploy 时,我收到了这条错误消息:https://pastebin.com/MZPGvstX 它还删除了我的一堆文件,我对发生的事情感到非常困惑。我真的希望我至少可以恢复它。

【问题讨论】:

  • 我认为你需要添加一个appropriate remote...git remote -v 告诉你 origin 指向什么?
  • 我想这就是我搞砸的地方,我应该在我的 github 存储库中添加一个遥控器
  • 您根本没有添加遥控器?我建议您阅读此内容,尽管听起来您实际上并没有破坏任何东西:help.github.com/articles/…
  • 是的,我真的搞砸了,我应该添加一个遥控器。但是我之前处理的很多文件现在都不见了,比如layout文件夹、css文件等等。我不知道它们去了哪里
  • 如果该行确实删除了您所做的一切,此时将不会暂存、隐藏或提交任何内容,因此 Git 与它无关。

标签: git jekyll


【解决方案1】:

看来我没有足够的分数对此发表评论,但我相信我的回答会填补这里缺失的空白。

我通过单独的社交媒体形式与 OP 进行了交谈,以弄清问题。

  1. 里面有项目文件的目录
  2. 该目录不是 git 存储库
  3. OP 在该目录上运行 git init - 但工作文件未暂存或提交
  4. Chalk 部署脚本在初始化之后运行
  5. 脚本创建一个分支
  6. 然后它有一个 find 命令在其中查找所有文件/目录 not .git, _sites, .gitignore - 然后继续运行 rm -rf on它找到的一切
  7. 然后脚本提交到新的gh-pages 分支

OP 向我展示了来自 Git GUI 的“所有分支历史记录”窗口的屏幕截图,并且只有一个提交。这些文件在被跟踪之前就被删除了,据我所知,这些文件很容易无法恢复。 如果要进行还原,它将在这些文件为 rm'd

之后立即将目录带到一个点

【讨论】:

  • @JakeD - 我单独与 OP 进行了交谈,并希望将您圈进来,因为您之前已经发表过评论。
  • 是的,that's what I thought,但 OP 表示情况并非如此。无论如何,感谢您解决这个问题...我想我可能会发疯。
猜你喜欢
  • 2019-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-10
  • 1970-01-01
  • 2016-02-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多