git pull - 在推送之前合并远程更改

4

我最近更换了编程机器,这导致我的新编码源与现有的Github存储库和Heroku应用无法无缝集成,出现了一些启动问题。

我最初使用 git clone 将Github存储库克隆到我的新机器上。从那时起,发生了一些事情。

  • 当我执行 git add .git commit -m "mychanges"git push 时,代码直接发送到Heroku。它曾经被发送到我的Github存储库,但我理解这只是重新定义了什么被认为是“origin”的简单问题。
  • 在将origin重新定义为我的Github存储库地址后,输入 git push origin master,我会收到以下错误信息:
    error: failed to push some refs to 'git@github.com:...'
    To prevent you from losing history, non-fast-forward updates were rejected. Merge the remote changes ('git pull') before pushing again.

如果我执行 git pull (我已备份了所有内容以防万一),我担心我最近两天的编码工作将会丢失。

我的目前想法:执行 git pull 并从备份中手动更新最近两天的文件,然后最后执行我的 git push。这是正确的做法,还是有更优雅的解决方案?

1个回答

11

如果你不使用reset,git不会覆盖你的数据。当你执行git pull时,它会获取origin/master上的提交(假设你的分支是master),并尝试将本地分支快进到该点,合并任何本地更改。如果你已经在本地提交了更改,并且那些提交应该放在服务器上更近期的提交之后,你可以使用git pull --rebase替代。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接