当多人协作本地仓库进行一个项目的开发时,难免出现以下问题:
创建一个分支本地仓库时:
git init //初始化仓库
git config --global user.name "自己名字"
git config --global user.email "自己邮箱"
git branch "分支名称" //创建一个分支
git checkout -b "分支名称"; //切换到该分支
此时,当我们从主分支拉取项目时(git push origin master):
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
翻译过来就是没有当前分支的跟踪信息,请指定要与之合并的分支。那么我们就需要将分支与主分支进行关联:
git push origin "分支名称"
git branch --set-upstream-to=origin/"分支名称" "分支名称"
也可以简写为:
git push -u origin/"分支名称"
之后我们想把远程项目拉下来进行合并时,又将出现以下问题:
* branch master -> FETCH_HEAD
fatal: refusing to merge unrelated histories
这表示在没有相关历史的本地库无法下拉,可用:
git pull origin master --allow-unrelated-histories
之后我们合并分支时,则会出现:
error: The following untracked working tree files would be overwritten by merge:
.DS_Store
此时我们需要删除主git本地库没有管理的文件:
git clean -d -fx "提示文件"
参数解释:
d :删除未被添加到git的路径中的文件(将.gitignore 文件标记的文件全部删除)
f :强制运行
x :删除忽略文件已经对git来说不识别的文件 (新修改的没有被跟踪的文件)
此刻,可以合并分支项:
git merge "分支项"
之后我们根据代码里看到的>>>Head进行修改保留项即可提交