首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我把git搞得一团糟,有没有人能解释一下我做错了什么?

我把git搞得一团糟,有没有人能解释一下我做错了什么?
EN

Stack Overflow用户
提问于 2019-09-28 12:37:41
回答 2查看 95关注 0票数 0

我仍在学习git,我正在将它用于实践,并将其作为保存项目进度的工具。我在办公室的电脑上和家里的电脑上使用同一个应用程序。我是唯一一个在努力的人。昨天,我在家完成工作后,一如既往地推动了我的更改,但出于某种原因,git抱怨道(我之前肯定做错了什么)。所以我做了(如果我没记错的话) git push origin master --force

今天在工作的时候,我试着更新我的本地文件,我得到了这样的信息:

代码语言:javascript
复制
C:\Users\nova\Desktop\ez-class>git pull origin master
From https://github.com/sickdyd/ez-class
 * branch            master     -> FETCH_HEAD
 + ace98f3...145956d master     -> origin/master  (forced update)
Already up to date.

但是..。它不是最新的。所以我在谷歌上搜索了如何解决这个问题,我有点着急,我认为这是正确的方法:Git pull after forced update

这就是我所做的(叹气):

代码语言:javascript
复制
C:\Users\nova\Desktop\ez-class>git fetch

C:\Users\nova\Desktop\ez-class>git reset origin/master --hard
HEAD is now at 145956d hello

C:\Users\nova\Desktop\ez-class>git pull
Already up to date.

C:\Users\nova\Desktop\ez-class>git pull origin master
From https://github.com/sickdyd/ez-class
 * branch            master     -> FETCH_HEAD
Already up to date.

所以我很高兴地告诉大家,显然我在远程存储库上的所有更新都像本地更新一样消失了。我不知道这里发生了什么..。有没有什么办法可以解决这个问题,或者我必须回家重新推送这些更改?

编辑:最后,我不得不承认,仅仅是为了保持文件同步,git已经是一个相当痛苦的问题;你有没有更好的解决方案?Google drive不允许忽略子文件夹(如node_modules)。

EN

回答 2

Stack Overflow用户

发布于 2019-09-28 13:07:01

我在远程存储库上的所有更新都已删除

当您强制从家里推送到办公室时,您将覆盖办公室主分支的历史记录。

当您要访问您的办公室时,您可以使用git reflog列出最近一次强制推送之前的提交。你可以使用reset it to its old state

然后,在家里:

  • 再次克隆office存储库(在新文件夹中)
  • 报告您的最新更改并添加、提交和推送

更普遍的是,对于同步文件,Steve Gibson在中提到了几种替代方案:

中的文字记录

主要有:

的自由层

票数 1
EN

Stack Overflow用户

发布于 2019-09-28 15:13:39

可能发生的情况是,您使用诸如rebase之类的东西编辑了历史记录,或者您碰巧在另一个分支中没有您的更新。当分支的历史记录不兼容时,--force会给出警告,Git会覆盖该历史记录,而不是简单地添加新的提交。我喜欢使用git push,并且默认使用具有相同名称的分支,而不是git push origin master。这有助于防止从错误的、过时的分支推送到master之类的事情。

git的好处是它不会删除提交,它只会创建新的提交。您的计算机上仍有正确的更新。你可以用git reflog找到它们。这向你展示了你的头提交的历史,它随着你的工作而改变。您可以找到看起来正确的提交,然后运行git checkout <commit-id>查看这是否是您想要的状态。然后,您可以在提交时创建一个新分支(git checkout -b recovery-test),也可以切换回master并将master重置为该提交(git checkout mastergit reset <commit-id>)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58143402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档