git - 在 bitbucket.org 上创建一个分支并检查它删除了我的代码
问题描述
所以我在 bitbucket 上创建了一个 repo,试图将我笔记本电脑上的本地代码推送到它,但它一直在写这个错误:
To https://bitbucket.org/username/repo.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'https://username@bitbucket.org/username/repo.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
之后,我在 bitbucket.org 上创建了一个新分支并看到了这个:
查看您的分支
此分支不包含任何更改 - 在您的本地机器上检查它以做一些工作。
在 Sourcetree 中查看
您还可以使用此命令检查您的分支:
结帐命令:
git fetch && git checkout test_branch
运行这些命令后,我的整个代码在我的本地机器上消失了。我该如何取回它?
要求的信息:
$ git reflog
MAC:thenestfour mac$ git reflog
c47ec7f (HEAD -> test_branch, origin/test_branch, origin/master) HEAD@{0}: reset: moving to HEAD
c47ec7f (HEAD -> test_branch, origin/test_branch, origin/master) HEAD@{1}: reset: moving to HEAD
c47ec7f (HEAD -> test_branch, origin/test_branch, origin/master) HEAD@{2}: checkout: moving from master to test_branch
eb7abd8 (master) HEAD@{3}: commit (initial): secondtemplate for Omnibiz
我正在运行的命令将我的本地存储库推送到我的 Bitbucket 云存储库:
MAC:thenestfour mac$ git push origin test_branch
一切都是最新的 MAC:thenestfour mac$ git pull 当前分支没有跟踪信息。请指定要合并的分支。有关详细信息,请参阅 git-pull(1)。
git pull <remote> <branch>
如果您希望为此分支设置跟踪信息,您可以这样做:
git branch --set-upstream-to=origin/<branch> master
MAC:thenestfour mac$ git push fatal: 当前分支master没有上游分支。要推送当前分支并将远程设置为上游,请使用
git push --set-upstream origin master
MAC:thenestfour mac$ git push --set-upstream origin master 到https://bitbucket.org/username/repo.git ![rejected] master -> master (non-fast-forward) error: failed to push some refs to ' https://username@bitbucket.org/username/repo.git ' 提示:更新被拒绝,因为您当前的提示分支在提示后面:它的远程对应物。在再次推送之前集成远程更改(例如提示:'git pull ...')。提示:有关详细信息,请参阅“git push --help”中的“关于快进的说明”。
解决方案
工作在主分支
的输出git reflog
包括:
moving from master to test_branch
这表明您以前在 master 分支上。因此,要找回“丢失”的工作:
git checkout master
发生了什么
看起来通过 bitbucket.org 创建的分支(我不使用它,所以不确定)创建了一个空分支。因此,当在本地签出这个新分支时 - 它更新了本地工作副本以匹配即创建一个空目录。
将更改推送到 master
原来的错误是:
更新被拒绝,因为远程包含您在本地没有的工作
它接着说:
您可能希望在再次推送之前先集成远程更改(例如,'git pull ...')。
解决方案已经在响应中,即:
git checkout master # Just in case still on a different branch
git pull
git push
请参阅任何git 入门教程(其中有很多,找到一个您喜欢的)以熟悉正常的 git 工作流程。
推荐阅读
- c - 为什么我的 Atmega644 TIMER0 以预期时钟速度的一半速度运行?
- ansible - 从 AWS 机密管理器中查找机密 | Ansible
- groovy - 想在groovy中解析yaml文件的内容
- java - 为什么服务器向我返回 Java 中有效文件的响应代码 403?
- ruby-on-rails - Rspec 实际使用实例变量测试方法
- c - 如何动态分配内存而不影响其他动态分配的数据?
- amazon-web-services - 如何授予对私有 s3 存储桶中对象的长期读取访问权限
- c# - 与 websocket 服务器和客户端的连接问题
- python - 生成组合时跳过重复
- asp.net-core-mvc - 绑定模型中的 ID 属性是否对过度发布构成威胁?