Git Pull没有覆盖提交的文件

时间:2015-08-06 04:38:37

标签: git

我对某些文件进行了更改,并将更改推送到远程存储库。另一个人从回购中撤出并决定删除/修改我刚推过的一些文件,然后他推了推。

此远程存储库具有安全性设置,因此您只能拉(或使用特殊命令推送到它)。我需要拉动以获得其他人的改变,但不要让他覆盖我自己的(已经提交)。正如我所说,我不能做一个还原,我只能拉。

我需要一种方法,以便我可以拉(这将覆盖一些更改,但应用其他关键更新),然后只撤消最后拉动对我最初推送的文件所做的更改。理想情况下,通过"撤消"这些变化,我最初提交的文件现在都没有提交;即如果我输入" git status",我会在我提交和推送之前看到与我所做的相同的列表。

2 个答案:

答案 0 :(得分:0)

我不确定你要做什么。但无论如何,你可以简单地为你的版本创建一个分支:

git checkout -b mywork master

默认使用master分支,因此可以省略master部分。但是,如果您正在使用不同的分支,请将master替换为您希望以新分支为基础的分支。

未提交的更改也将出现。

然后提出他的改变。如有必要,可以做任何合并需要的工作。

答案 1 :(得分:0)

尝试以下方法:

  1. 使用您最初添加的文件检出您的提交
  2. Git reset HEAD~1#这会将文件从提交移到暂存
  3. git stash#这将存储您当前未提交的更改。
  4. git pull --rebase
  5. git stash pop #restore在提取的更改之上存储的原始提交更改
  6. 此后可能会发生冲突,您必须解决这些冲突。您也可以在步骤2之后和步骤3之前签出不需要的文件,以便不保存它们。 请参阅git stash man