Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
完全覆盖以前的git提交_Git - Fatal编程技术网

完全覆盖以前的git提交

完全覆盖以前的git提交,git,Git,我的同事推到我们的git存储库是一个错误。我希望提交一些更新的代码,但我没有使用git,因此我在头后面提交了1个。如果我落后了,我怎么能完全忽略他的变化,忽略他的错误呢?我猜你的意思是他把一个错误的承诺推给了中央回购 如果是这样,那么您可以使用gitpush-f推送您的版本,这将覆盖存储库。当然,这也将打破历史(f意味着强制),因此您的同事将不得不重新克隆中央回购。您可以像另一个答案所建议的那样强制推送,但更安全的方法是继续推送他的更改,然后git revert他的提交,这将完全撤销他的所有更改

我的同事推到我们的git存储库是一个错误。我希望提交一些更新的代码,但我没有使用git,因此我在头后面提交了1个。如果我落后了,我怎么能完全忽略他的变化,忽略他的错误呢?

我猜你的意思是他把一个错误的承诺推给了中央回购


如果是这样,那么您可以使用
gitpush-f
推送您的版本,这将覆盖存储库。当然,这也将打破历史(
f
意味着强制),因此您的同事将不得不重新克隆中央回购。

您可以像另一个答案所建议的那样强制推送,但更安全的方法是继续推送他的更改,然后
git revert
他的提交,这将完全撤销他的所有更改。这不会有无意中丢失更改的风险:

git pull
git revert <treeish naming his commit>
git push
git拉
git还原
git推送

首先恢复到以前的版本。然后提交您的更改。您有权限访问git服务器吗?我们忘记添加.gitignore文件以防止添加已编译的文件,我不太确定如何解决合并冲突。如果您在一个多人团队中使用任何类型的源代码管理,我建议您在执行任何其他操作之前先研究合并冲突。解决这些问题是一项经常性和必要的活动。Git内置了与跨平台冲突解决工具kdiff3的集成。建立它将是一个良好的开端。我已经写了一系列关于Git的文章,还有一篇。你可以看看。你的同事不必重新克隆。告诉他,‘去拿吧;git-rebase-origin/master”,或者简单地说是“git-pull-rebase”。在那之后,他需要修复他的提交,或者完全删除它。