走同样的路,发现不同的人生
这个产生的原因,就是你本地代码在开发过程中,远程代码更新了。
很简单,你需要做的只是把代码rebase一下。
做以下操作前,先检查一下你本地的remote的指向。如果你是fork的,应该会又一个指向你自己github的origin。你需要先添加一下指向源代码的remote。这样做:git remote add upstream *URL*其中URL是源代码的地址。
git remote add upstream *URL*
然后获取远程代码的最新HEAD指针(其实这个命令不仅用来获取upstream,同时也获取了origin的):git fetch --allgit fetch --all然后确保你是在working branch上,运行git rebase upstream/master然后确保你是在working branch上,运行git rebase upstream/master
git fetch --all
git rebase upstream/master
这个时候会出现conflicts,一般是你本地与远程同时修改了某个文件,git不知道该用哪个。用git status查看哪些文件出了问题,做一下更改就好。然后git add .,git rebase --continue。
git status
git add .
git rebase --continue
修改完之后,git push到你的origin working branch,有可能需要git push -f。特别是当你用了git rebase -i的时候,这个命令可以squash commit。
git push
git push -f
git rebase -i
不都给你提示了吗?说分支有冲突得解决啊!
我在自己fork出来的仓库中新建分支开发,那么我pull 下来的代码是没有冲突的,但是我的代码不是最新的,当我和最主要的代码库比较pull request的时候,就进去不了,
这个产生的原因,就是你本地代码在开发过程中,远程代码更新了。
很简单,你需要做的只是把代码rebase一下。
做以下操作前,先检查一下你本地的remote的指向。如果你是fork的,应该会又一个指向你自己github的origin。你需要先添加一下指向源代码的remote。这样做:
git remote add upstream *URL*
其中URL是源代码的地址。
然后获取远程代码的最新HEAD指针(其实这个命令不仅用来获取upstream,同时也获取了origin的):
git fetch --all
git fetch --all
然后确保你是在working branch上,运行
git rebase upstream/master
然后确保你是在working branch上,运行git rebase upstream/master
这个时候会出现conflicts,一般是你本地与远程同时修改了某个文件,git不知道该用哪个。用
git status
查看哪些文件出了问题,做一下更改就好。然后git add .
,git rebase --continue
。修改完之后,
git push
到你的origin working branch,有可能需要git push -f
。特别是当你用了git rebase -i
的时候,这个命令可以squash commit。不都给你提示了吗?说分支有冲突得解决啊!
我在自己fork出来的仓库中新建分支开发,那么我pull 下来的代码是没有冲突的,但是我的代码不是最新的,当我和最主要的代码库比较pull request的时候,就进去不了,