合并git提交历史记录

时间:2013-12-17 07:49:55

标签: git

在本地计算机上将所有提交合并为一个(用于重写git日志历史记录)(此操作已成功完成)我在命令git status

之后发出通知
Your branch and 'origin/master' have diverged,
# and have 1 and 8 different commits each, respectively.

这8个提交是我合并为一个提交的提交。 我尝试git push --force origin master,结果是

Compressing objects: 100% (9924/9924), done.
Writing objects: 100% (21454/21454), 24.68 MiB | 2.95 MiB/s, done.
Total 21454 (delta 8595), reused 20826 (delta 8591)
remote: error: denying non-fast-forward refs/heads/master (you should pull first)
To http://somesite.com/gitproject.git
! [remote rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'http://somesite.com/gitproject.git'

分支机构仍然存在分歧。 我想如果我做git pull那么所有已经合并的git提交历史记录将再次出现在本地机器上。

简而言之,如何将本地git提交历史推送到原始分支?

1 个答案:

答案 0 :(得分:1)

看起来这里的问题就像在本地提交你自己的提交时,有些提交已被推送到某人。

所以你在git中的历史就像这样。

*   d993799 Commit 1
*   caa12d6 Commit 2
|\
| * e38fecc Your Commit 
|
*   29158f8 Commit 3

现在,您有两个选项,执行Merge或Rebase

git merge origin/master

git rebase origin/master

Pro提示在您准备好进入原点后进行本地提交时执行 git pull --rebase 这样做会拉出最新版本的原点然后它是将尝试更新您的更改

一些很棒的网址: http://git-scm.com/book/en/Git-Branching-Rebasing