use*_*er1 0 git git-pull git-branch
git branch告诉我,我是主人.我写git checkout -b newbranch.
git branch告诉我,我在新创建的分支newbranch.我写了git pull并得到以下错误:
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> newbranch
Run Code Online (Sandbox Code Playgroud)
我想这是因为我无法从我刚刚创建的分支中拉出来.所以我编写git pull origin master并获得了一百万个不同分支master和newbranch的文件(使用我的完整控制台,所以我看不到错误的开头),结果如下:
Please move or remove them before you can merge.
Aborting
Run Code Online (Sandbox Code Playgroud)
我不明白为什么分支newbranch不是master的精确副本.从我在创建新分支时读到的内容开始,它与我所在分支的提交相同.我只想git pull确保所有文件与主文件完全相同.如果新分支不是从中复制的分支的精确副本,我不知道所有文件的取自何处.
编辑: 正如大家提到的,问题是我的本地主人与远程主人不同.所以我必须这样做:
git checkout master
git branch -d newbranch
git fetch --all
# change permision issues with chmod and chown
git reset --hard origin/master
git checkout -b newbranch
Run Code Online (Sandbox Code Playgroud)
其中一个最重要的特性git是,git是一个分布式版本控制系统.这意味着您的本地分支不需要与远程分支同步.
在您的特定情况下,您master的计算机上有一个.执行此操作时git checkout -b newbranch,您创建了一个与master计算机上的分支相同的新分支.
但是master在远程机器上还有一个名称是origin(如果你使用它可能是GitHub).所以当你这样做的时候git pull origin master,你正在将你的本地newbranch与遥控器合并origin/master而不是你的本地master.我认为你的情况是你的本地master合并冲突origin/master.
你应该做什么
创建一个新分支
git checkout -b newbranch # create local newbranch from local master
git push --set-upstream origin newbranch # push your local newbranch to origin/newbranch
Run Code Online (Sandbox Code Playgroud)
您还希望让本地主人同步 origin/master
git checkout master
git pull # and solve merge conflicts
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
675 次 |
| 最近记录: |