情景 主回购让我们说它为X |上游; 以上回购X的叉子原点
分支Y在上游和原点都有。 问题:
当我从分支Y转到Z并在我的本地回到Y时,特定文件被删除(所有时间分支始终存在于上游Y分支中,我正在提交并推送代码分支包括在分支Y)
然后我从上游获取文件(复制它)并再次提交并开始切换分支,问题再次开始发生。
知道为什么会这样吗?它是一致的,即使其他人这样做文件丢失。它只发生在一个文件中。
修改: 上游Y做了一个git pull。它说已经是最新的,令人惊讶的是文件又回来了。我很确定它以前不存在。当我让他们尝试这个场景时,同样的事情发生在别人身上。当我们第一次执行git checkout upstream / Y -b Y时,文件不存在,当我们执行上游Y上拉时,文件又回来了。这是git中的错误吗?
答案 0 :(得分:0)
您的本地分支Y
可能与您的origin/Y
分支不同步。
如果其他以下是git status
的结果:
$ git status
On branch Y
Your branch is up-to-date with 'origin/Y'.
nothing to commit, working directory clean
然后,您可以将Y
重置为origin/Y
的状态:
git checkout Y; git reset --hard origin/Y
注意:这将删除您所做的任何本地更改。
如果您不小心删除了本地分支Y
中的文件,并且只想恢复该文件,则可以使用以下命令执行此操作:
git checkout origin/Y /path/to/file
之后您可以提交更改
git commit -m "Add back accidentally removed file" /path/to/file
然后您可能想要重写本地历史记录(请参阅git rebase -i
和git commit --amend
)