Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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
Git 在拉取之前隐藏/提交,以避免丢失本地文件_Git_Github_Git Pull - Fatal编程技术网

Git 在拉取之前隐藏/提交,以避免丢失本地文件

Git 在拉取之前隐藏/提交,以避免丢失本地文件,git,github,git-pull,Git,Github,Git Pull,如果远程和本地回购都发生了更改,我在GitHub上将本地回购与远程回购同步时遇到问题。例如,如果我还没有开始开发某个功能,在开始之前,我可以通过运行 git pull origin master 这是一个简单的例子。然而,当我在本地开发一个功能时,比如说我的同事将新功能推到了远程设备上,因此远程设备也发生了变化。我试着在拉之前完成提交和隐藏的同步。所以那些代码 git add . git commit -m "message" git pull origin master 或 这两种方法最终

如果远程和本地回购都发生了更改,我在GitHub上将本地回购与远程回购同步时遇到问题。例如,如果我还没有开始开发某个功能,在开始之前,我可以通过运行

git pull origin master
这是一个简单的例子。然而,当我在本地开发一个功能时,比如说我的同事将新功能推到了远程设备上,因此远程设备也发生了变化。我试着在拉之前完成提交和隐藏的同步。所以那些代码

git add .
git commit -m "message"
git pull origin master

这两种方法最终都会覆盖本地更改,因此它不会将远程更改放在本地主分支的顶部,而是覆盖本地文件和本地更改

我做错了什么?我参考了很多关于git的文档,但我就是做不到


谢谢,

假设您正在处理my_branch,并在那里做了一些更改。现在,您的同事推送到主控台,您需要更新您的:

git stash
git checkout master
git pull
您的
master
已与更改同步

现在您想继续在my_branch上工作,所以

git checkout my_branch
现在您应该
隐藏pop
更改:

git stash pop

如果未检测到冲突,合并将自动工作。否则,将要求您解决这些问题。

通过两个步骤将分支设置为与远程分支完全匹配:

git fetch origin
git reset --hard origin/master
如果要在执行此操作之前保存当前分支的更改,可以执行以下操作:

git commit -a -m "Saving my work, for later use"
git branch my-saved-work

现在,您的工作保存在分支“我保存的工作”上,以防您决定要返回(或稍后查看,或将其与更新的分支进行比较)。

因此,我遇到的问题是在主分支中隐藏和拉入,如我所见。这真的很有道理。所以,我试着用你的方式。不幸的是,这次回购协议上的新功能没有出现在我的本地回购协议上。在最后一个命令“stash pop”之后,我是否需要类似“git merge master”的东西?当然,您需要合并来自远程master的更改。非常感谢!让我试试,我会写回结果。我假设,因为我在弹出隐藏后尝试过,它会给出错误提示“您需要提交或隐藏”。所以,我再次隐藏并运行“git合并主机”。它工作了,但在我再次尝试隐藏pop之后,它尝试在我遇到冲突的地方自动合并。当然,这是另一个问题,所以我把问题放在这里。希望我能解决它。谢谢你的帮助@KutayDemireren我很高兴它帮助了你。解决冲突是您现在需要做的:)我建议您与主机保持同步,以避免将来发生巨大冲突。在这种情况下,重置对我来说似乎很危险,实际上我不想指望重置。无论如何谢谢你
git commit -a -m "Saving my work, for later use"
git branch my-saved-work