git 提交 作者 可以修改吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git 提交 作者 可以修改吗相关的知识,希望对你有一定的参考价值。

参考技术A 工具/原料

Git
Linux
方法/步骤

首先,我们可以用“git log”查看本地提交,本文中对最近的两次提交进行修改。

2
我们可以利用”git rebase -i HEAD^^“命令修改最近的两次提交。当然,命令”git rebase -i“的最后一个参数视具体情况而定,如修改最近的三次提交,则应该改为HEAD^^^,此参数也可以用commid ID值代替。

3
进入编辑状态。我们将需要修改的提交前对应的"Pick"命令改为"edit"命令(简写为"e"),保存退出,便可以修改相应提交的内容了。本回答被提问者采纳

git pull会把本地未提交修改覆盖吗?

git pull会把本地未提交修改覆盖。

处理的方式非常简单,主要是使用git stash命令进行处理,分成以下几个步骤进行处理。

1、先将本地修改存储起来

$ git stash

这样本地的所有修改就都被暂时存储起来 。是用git stash list可以看到保存的信息:

git stash暂存修改

其中stash@0就是刚才保存的标记。

2、pull内容

暂存了本地修改之后,就可以pull了。

$ git pull

3、还原暂存的内容

$ git stash pop stash@0

系统提示如下类似的信息:

Auto-merging c/environ.c

CONFLICT (content): Merge conflict in c/environ.c

意思就是系统自动合并修改的内容,但是其中有冲突,需要解决其中的冲突。

4、解决文件中冲突的的部分

打开冲突的文件,会看到类似如下的内容:

git冲突内容

其中Updated upstream 和=====之间的内容就是pull下来的内容,====和stashed changes之间的内容就是本地修改的内容。碰到这种情况,git也不知道哪行内容是需要的,所以要自行确定需要的内容。

解决完成之后,就可以正常的提交了。

参考技术A 分两种情况:1无冲突,2有冲突
无冲突时,本地未提交修改不会被覆盖,能够执行pull。
有冲突时,提示“Your local changes to the following files would be overwritten by merge”,本次pull执行失败,并且不会拉取远程代码,不用担心。
参考技术B

    没有 add 的文件,不会被覆盖。add 了文件没有 commit,不能 pull。commit 了之后 pull 有冲突,会自行解决或者提示需要编辑。只要 commit 过,都可以用 git reflog 找回。

    git库版本与本地库版本冲突:个人定义为就是git库版本与本地库版本不匹配,详细地说就是我们从git库clone克隆下来的版本,经过修改后提交并合并成新版本,但是后来又将git库的该版本撤销了,而本地没有撤销该版本,此时就是本地库拥有此版本而git库中没有此版本。这样在使用git pull或git pull origin master可能会出现:“Your local changes to the following files would be overwritten by merge”或"PULL  不可用,因为您尚有未合并的文件“或"自动合并失败,修正冲突后提交修正后的结果"“Your local changes to the following files would be overwritten by merge”这样的错误,意思就是你的本地修改以下文件将被覆盖合并。

以上是关于git 提交 作者 可以修改吗的主要内容,如果未能解决你的问题,请参考以下文章

如何在gerrit中修改已提交的change

如何在gerrit中修改已提交的change

如何在gerrit中修改已提交的change

如何在gerrit中修改已提交的change

如何只提取Git某次提交修改过的文件

深度学习发论文会提交代码吗