没有提交历史记录从远程仓库拉?

时间:2016-09-09 18:54:32

标签: git github version-control

我正和朋友一起在gitHub上开展一个项目,我想知道是否有任何方法可以拉动(更新)我们的本地仓库而不需要提交#34;?

以下是该故事的简化示例:

我和我的朋友在我们的本地仓库上从远程仓库获得了相同的源代码副本。

示例源代码:

<p> This is the title </p>
<p> I love to code </p>

现在我的朋友决定在原始代码中添加另一行代码:

<p> Adding important text </p>
然后他承诺并推送到远程仓库。在那之后,我从远程仓库中撤出。现在我也有我朋友添加的内容。

然后我的朋友决定删除那行代码:

<p> Adding important text </p>

现在我必须再次拉(更新),但问题是,因为我的本地有添加的代码行,我需要进行提交(Merge)。然后,当我推动时,那个提交将会存在。这意味着有2个提交具有相同的更改(我的朋友的提交和我的提交 - 当然还有不同的消息)

我的问题是,有没有更好的方法来解决这个问题?有没有办法避免不必要的提交?我知道我们应该等到我们真正确定变化之后才能推进遥控器,但事情发生了。

1 个答案:

答案 0 :(得分:1)

如果您想清理提交历史记录,可以使用git reset --hard

例如,这是您的提交历史记录:

commit N+2: "Added important text again"
commit N+1: "Removed important text"
commit N:   "Added important text"
...

你想让它看起来像这样:

commit N: "Added important text"
...

然后执行以下操作(其中2是最后一个提交的数量):

git reset --hard HEAD~2
git push --force

小心:使用此组合可能会导致代码丢失,并且您无法恢复它。顺便说一下,可以进行相同的更改。至少你不会冒任何风险。