Git push没有拉

时间:2017-05-22 21:01:27

标签: java git github push pull

我和我的同学一起做了一个学校项目,其中一个打破了程序的主要部分,然后把它推到了github。我有没有主要修改的项目,它的工作完美。有什么办法让我可以在没有拉动的情况下推送我的文件,并用我的文件替换坏文件吗?

2 个答案:

答案 0 :(得分:4)

如果其他开发人员已推送相关更改,您不应该只是将其删除,而是合并两个更改。

如果开发人员推动其他有意义的更改,那么最佳解决方案就是解决冲突,并修复损坏的代码。

从你的分歧提交中,将它们移动到一个新的分支,然后合并回主人 - 解决你的冲突。

# Create a new branch with your commits
git checkout -b featureBranch

# Get master from origin
git checkout master
git pull origin master

# Add in your changes
git merge featureBranch

# Resolve Conflicts

# Push to origin
git push origin master

如果你真的想要删除他的提交(我不建议你这样做),你可以强制推送 - 这将覆盖服务器上的所有东西,包括机器上的内容

正在进行项目的其他开发人员需要采取额外的行动,因为您现在正在改变历史;不建议这样做。

git push origin master --force

还有revert方法;这将创建一个完全反转所选提交更改的新提交;要使用它,首先需要一个干净的工作树。

# Move your commits to a new branch
git checkout -b featureBranch

# Get latest changes from master
git checkout master
git pull origin master

# Create new commit that reverses the other devs changes
git revert hashToRevert

# Pull in your additional commits
git merge featureBranch

# Push to master
git push origin master

答案 1 :(得分:2)

您可以使用git revert命令恢复该提交。这将执行一个新的提交,撤消之前提交的所有更改,文档here

  

git revert命令撤消已提交的快照。但是,而不是   从项目历史中删除提交,它会弄清楚如何   撤消提交引入的更改并附加新提交   结果内容。

完成后,您可以在还原提交的基础上推送自己的更改。