#################################################################
从master拉取
并push到远端
开发过程中经常用到从master分支copy一个开发分支:
1.切换到被copy的分支(master),并且从远端拉取最新版本
$git checkout master
$git pull
2.从当前分支拉copy开发分支
$git checkout -b dev
Switched to a new branch 'dev'
3.把新建的分支push到远端
$git push origin dev
4.关联
$git branch --set-upstream-to=origin/dev
5.再次拉取验证
$git pull
参考网址:https://www.jianshu.com/p/e174fe3dae34
##################################################################
其他命令:
删除本地分支:git branch -d 分支名(remotes/origin/分支名)
强制删本地:git branch -D 分支名
删除远程分支:git push origin --delete 分支名(remotes/origin/分支名)
查看所有分支: git branch
切换到指定分支: git checkout master
git merge命令用于合并指定分支到当前分支。合并后,再查看readme.txt的内容,就可以看到,和dev分支的最新提交是完全一样的。
注意到上面的Fast-forward信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。
当然,也不是每次合并都能Fast-forward,我们后面会讲其他方式的合并。
合并完成后,就可以放心地删除dev分支了
合并分支
https://www.liaoxuefeng.com/wiki/896043488029600/900003767775424
当merge失败后
error: You have not concluded your merge (MERGE_HEAD exists).
hint: Please, commit your changes before merging.
fatal: Exiting because of unfinished merge.
本地代码commit了,但无法push,发现git上现在不是最新版本,于是就想pull拉取最新版本
错误可能是因为在你以前pull下来的代码没有自动合并导致的.
有2个解决办法:
1.保留你本地的修改
git merge --abort
git reset --merge
合并后记得一定要提交这个本地的合并
然后在获取线上仓库
git pull
2.down下线上代码版本,抛弃本地的修改
不建议这样做,但是如果你本地修改不大,或者自己有一份备份留存,可以直接用线上最新版本覆盖到本地
git fetch --all
git reset --hard origin/master
git fetch
从远程仓库拉取一条本地不存在的分支时:
git checkout -b 本地分支名 origin/yx-branch
-- 本地分支回滚到指定版本
git reset --hard <commit ID号>
-- 强制推送到远程分支
git push -f origin <branch name>
git 覆盖本地分支为远程的分支
git fetch --all
git reset --hard origin/master (这里master要修改为对应的分支名)
git pull
将本地的master分支重置成linux
git reset --hard xxx