Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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
Mercurial TortoiseHg-如何在推送到远程存储库后从分支中删除文件_Mercurial_Repository_Branch_Commit_Tortoisehg 2.0 - Fatal编程技术网

Mercurial TortoiseHg-如何在推送到远程存储库后从分支中删除文件

Mercurial TortoiseHg-如何在推送到远程存储库后从分支中删除文件,mercurial,repository,branch,commit,tortoisehg-2.0,Mercurial,Repository,Branch,Commit,Tortoisehg 2.0,我已修改、提交并推送了:fileA、fileB和fileC。我应该只推送“fileA”和“fileB”,而我的拉取请求由于这个不需要的fileC而被拒绝 请记住,我已将这些更改推送到远程存储库,是否有办法在本地修复此问题,以便我的拉取请求不再包含fileC?只需创建一个包含所有必要提交的新头,并开始在“错误”更改集所基于的同一父级分支。然后为这样创建的新头部创建一个新的拉动请求 之后,您可以选择使用变更集删除不需要的磁头,这些变更集包括不需要的文件C,但这不是必需的。strip命令将非常方便(它

我已修改、提交并推送了:fileA、fileB和fileC。我应该只推送“fileA”和“fileB”,而我的拉取请求由于这个不需要的fileC而被拒绝


请记住,我已将这些更改推送到远程存储库,是否有办法在本地修复此问题,以便我的拉取请求不再包含fileC?

只需创建一个包含所有必要提交的新头,并开始在“错误”更改集所基于的同一父级分支。然后为这样创建的新头部创建一个新的拉动请求


之后,您可以选择使用变更集删除不需要的磁头,这些变更集包括不需要的文件C,但这不是必需的。
strip
命令将非常方便(它是一个扩展,需要在mercurial配置文件中激活)

有两种方法: 1-修复存储库并更正历史记录,以便从历史记录中清除不正确的提交:

a-执行git日志:

Desphilboy@computer:~/workspace/project(master)$ git log
commit dee4f318231b07ca3dbf213579dbfdeb89f72591
Author: Desphilboy<desphilboy@yahoo.com>
Date:   Wed Jul 13 11:04:43 2016 +1000

    feat(project): this is a wrong commit pushing FileC

commit e9772baa0abefc3423db2e6b518c71bade74abd9
Author: Somebody else<someoneelse@yahoo.com>
Date:   Tue Jul 12 12:05:18 2016 +1000

    feat(project): added new API endpoint 
....    
这将恢复您的提交,同时保留所有更改。如果您现在执行git状态,那么在提交之后您将看到所有更改

c-删除文件c并执行另一次提交,然后使用-f开关再次推送它

Desphilboy@computer:~/workspace/project(master)$ rm FileC 
Desphilboy@computer:~/workspace/project(master)$ git rm FileC
Desphilboy@computer:~/workspace/project(master)$ git add .
Desphilboy@computer:~/workspace/project(master)$ git commit -m "some commit message"
Desphilboy@computer:~/workspace/project(master)$ git push -f
2-保存历史: 您只需删除文件C,将其从repo中删除,提交并再次将本地文件推送到主文件。这将纠正您的问题,但将有一个额外的提交给主机,它将显示在历史记录中

Desphilboy@computer:~/workspace/project(master)$ rm FileC 
Desphilboy@computer:~/workspace/project(master)$ git rm FileC
Desphilboy@computer:~/workspace/project(master)$ git add .
Desphilboy@computer:~/workspace/project(master)$ git commit -m "some commit message"
Desphilboy@computer:~/workspace/project(master)$ git push -f