git pull替换现有代码

时间:2013-12-16 09:37:33

标签: git git-pull git-stash

我在Git中提交文件后,我发出了pull请求,但它停止了我的一些代码功能。我想在我提交文件之前进入上一阶段,即拉动请求之前的状态。

我发现git stash是进入上一阶段的选项。但是有很多选择,如

git --rebase
git stash
git stash pop

我尝试过的其他命令包括:​​

git status
git commit file1 file2 file3 -m "message"
git commit -i file1 file2 file3 "message"
git pull
git checkout 

拉动之前我需要使用哪些命令才能进入舞台?

2 个答案:

答案 0 :(得分:2)

我认为你混合 pull 拉取请求 Pull request 是对存储库所有者的GitHub请求,用于获取您的一些提交并将其应用于其存储库。另一方面,git pull是一个使用相关远程存储库中的新更改来更新本地存储库的过程。

警告: 首先备份您当地的存储库。

要从您的案例中可能出现的问题中恢复,您可以尝试:

  • git reset --hard重置正在进行的合并过程。这将删除所有暂存(git add ed)更改和所有本地更改。
  • git rebase --abort重置正在进行的rebase流程,以防您开始发布git rebasegit pull --rebase

在您清理存储库后,我建议您执行

git fetch

确保您与远程存储库保持同步。然后,您可以使用gitk --all来查看检查所有分支的历史记录。我想,你会看到origin/master分支超前于你的本地提交。为了推动您的更改,您必须合并或更好的rebase。为此,请使用

检查您当地的更改
git checkout master

(将master替换为您的本地分支),然后发出

git rebase origin/master

(将master替换为目标远程分支)。如果您遇到合并冲突,则必须解决它,然后git add更改文件,然后继续使用

进行rebase过程
git rebase --continue

现在,您可以使用

推送更改
git push origin master:master

(将master替换为您的本地分支,将第二个master替换为您的远程分支

答案 1 :(得分:1)

您必须事先使用git stash。如果没有,您可以通过运行git log -g来尝试猜测以前的状态。

在结果中找到提交“消息”。其中一个是你正在寻找的。