为啥我的git中没有commit and push

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥我的git中没有commit and push相关的知识,希望对你有一定的参考价值。

参考技术A git作为支持分布式版本管理的工具,它管理的库(repository)分为本地库、远程库。
git commit操作的是本地库,git push操作的是远程库。

git commit是将本地修改过的文件提交到本地库中。
git push是将本地库中的最新信息发送给远程库。本回答被提问者采纳

Git 合并或修改线上 commit

简介

在使用 Git 作为版本控制的时,处于多种原因想修改commit。

  • 如果没有 push 到服务器的情况,,只是本地进行了 commit,并且没有进行新的 commit,只需要 git commit --amend
  • 还没 push 到服务器,但是有了新的 commit,只需要 git reset --soft xxx (xxx有问题那次提交的commit id)
  • 如果已经 push 到了服务器,并且有了多个 commit,而这些 commit 拼接起来才是完整的任务。为了避免太 多commit,推荐将这些 commit 合并成一个。git reset HEAD^1

前两种情况简单,这里着重介绍第三种

问题再现

$ git status

commit 1a607dcdc4ab522ce94b395fff5968c5035362b4
Author: 陈子云 <ever-lose@foxmail.com>
Date:   Tue Mar 21 16:05:34 2017 +0800

    changelog补上

commit a7bd84613243535f5a2de1d1f35037531ea153e3
Author: 陈子云 <ever-lose@foxmail.com>
Date:   Tue Mar 21 16:03:14 2017 +0800

    标签合并出错,html结构被改乱了

commit 8a7c40cd96153f1eb51648f46389c9ef4395c8a9
Author: 陈子云 <ever-lose@foxmail.com>
Date:   Tue Mar 7 19:37:11 2017 +0800

    chore(package.json): update verison to 2.2.2

在“标签合并出错,html 结构被改乱了”之后发现 changelog 还没写呢,于是在提交了一发 “changelog补上”,希望能把这两个提交合并成一个。

解决办法

# You can do a soft reset and amend the changes to the root commit. 
$ git reset HEAD^1

Unstaged changes after reset:
M	CHANGELOG.md


$ git add ./
$ git commit --amend

[photoGallery df482e8] 标签合并出错,html结构被改乱了
 Date: Tue Mar 21 16:03:14 2017 +0800
 2 files changed, 18 insertions(+), 17 deletions(-)

合并成功

$ git log

commit df482e862824c9ba8335f6ca25491231b44fc9e1
Author: 陈子云 <ever-lose@foxmail.com>
Date:   Tue Mar 21 16:03:14 2017 +0800

    标签合并出错,html结构被改乱了

commit 8a7c40cd96153f1eb51648f46389c9ef4395c8a9
Author: 陈子云 <ever-lose@foxmail.com>
Date:   Tue Mar 7 19:37:11 2017 +0800

    chore(package.json): update verison to 2.2.2

最后 push 时需要加 -f 参数强制推送,若你在 develop 等保护分支上,记得先去去掉 protected branch

技术图片

以上是关于为啥我的git中没有commit and push的主要内容,如果未能解决你的问题,请参考以下文章

文件修改后git add+git commit提交一次,但是没有push到远程,接着继续修改文件,继续git add+git commit提交,并push到远程仓库。会发现本地仓库两次commit一次

git commit 后,没有push ,怎么撤销

Git commit/pull/push的操作步骤

git pull之前要先commit

git放弃本地commit,未push

Git 合并或修改线上 commit