问题一:推送到远程某分支
fatal: 当前分支 master 没有对应的上游分支。为推送当前分支并建立与远程上游的跟踪。
解决:
方法1. 这是因为本地的分支没有和远程分支建立联系,需要执行一次以下代码,以后就直接使用push即可:
git push --set-upstream origin master(master可以根据子的需要自定义,就是当前分支在远程分支对应的名称)
方法2:git push origin xxx
问题二:合并的时候,分支和主支冲突
git fetch origin master 取回origin主机的master分支
git fetch origin 只是手动指定了要fetch的remote。在不指定分支时通常默认为master
git fetch 取回远程主机上的全部更新
git merge xxx 将xxx分支合并到当前分支
git checkout -b dev origin/dev 创建并切换本地分支dev,并且和远程origin/dev分支关联,本地dev分支的 初始代码和远程的dev分支代码一样
git merge --no-ff dev
游离代码(detach HEAD)以及丢失
HEAD是一个 指向某一分支的指标 ,你可以把HEAD当做 目前所在分支 看待。
正常情况下,HEAD会指向某一个分支,而分支会指向某一个commit。但HEAD偶尔会发生 没有指向某个本地分支 的情况,这个状态的HEAD,便被成为 detach HEAD。
解决:
只要提交过,git都会记录下来。
git reflog
git checkout Oa35a5f(游离分支前七位)
git switch -c lintfix 创建并切换 lintfix 分支,相当于git checkout -b 分支名(git 2.23 版本新,多了两个新命令 git switch 和 git restore,用来解决 git checkout 的两个核心功能,一个是分支管理,一个是文件恢复)
lintfix 分支就是游离的分支
拉取远程某一分支到本地
方法一:
需要本地分支和远程分支建立起映射关系
方法二:
不需要本地分支和远程分支建立映射关系
git fetch origin 远程分支:本地分支
git checkout 本地分支
把本地分支推送到远程
git checkout -b 本地分支
git push origin 本地分支:远程分支
为什么会出现代码冲突?
根本原因是
所基于开发的版本不一致,并修改了同一个地方。
为什么会这样设计???
https://blog.csdn.net/u010416101/article/details/60784811
把冲突代码合并到远程master
删掉本地dist文件
git stash
git pull
删掉dist文件
git stash pop
npm run build
git add .
git commit -m ''
git push
git stash的作用
git stash (save “说明“)
会把所有未提交的修改(包括暂存区和非暂存区的)都保存起来,用于后续恢复当前工作目录。
git stash list
显示暂存列表
git stash pop
恢复之前缓存的工作目录
git push origin xxx:xxx踩坑
问题:已经修改好的新分支,使用 git push origin xxx:xxx 无法上传。
一直报错,在远程也没有相关的分支
error: failed to push some refs to 'http://git.code.oa.com/evaluation/eva_ui_server.git'
解决:手动在远程建立分支,拉取远程分支到本地,创建相同名字的本地分支,建立远程联系再提交。
之前已经提交成功,但报错,再重复由于上传内容为空,所以会一直报错。
问题???
是不是不同名字不可以推送?
为什么git push origin xxx:xxx 不生效?