Git学习:
git branch XX 新建分支。
git checkout XX 切换分支。
git checkout -b XX新建分支,并切换到新建分支上。
git reset //重置分支指针
1、--hard 修改不存在,也没有add的文件,指针指向重置节点,要修改之后,add,commit。
2、--mix 修改还存在,但没有add过的文件,指针指向重置节点,提交要重新add之后,再commit
3、--soft HEAD指针指向的节点之后,修改的文件和add的文件一样,还存在。提交只需commit即可
git branch
git branch -D 分支名 //删除分支。
git branch -m oldname newname //修改分支名。
git branch -vv //查看本地分支对应的远程分支。
若本地创建多个分支,想把本地上的b分支合并到a分支上
git checkout a //切换到a分支上
git merge b //把b分支合并到a分支上
与远端分支合并
git fetch origin //抓取远端分支到本地
git merge origin/master //把远端分支合并到本地。
git reset --merge //撤销合并。
git diff 查看工作区与暂存区的差别
git diff --cached /--staged 比较暂存区文件与上一次commit的差别
工作上用到的拉取与提交过程
工作流:(比较简单的,本机分支只有一个的)
1.repo sync或者git remote update //更新远端主机
2.git branch -av //查看所有分支最后一个提交对象的信息
4.git reset --hard HEAD //回滚到最后一次远端主机同步后的版本,清理本机
5.git clean -df //清理没有跟踪的文件及文件夹,和上一条命令一起执行,基本是本机回的上一次commit的状态。
6.git pull origin master:master//把远端主机最新的代码同步到本地分支,拉取+合并
7.修改。
8.git add
9.git commit -m
10.提交前先确认一下,是否有人先push了。
git remote update
git branch -av 查看远端分支是否有人先push了,
若有,执行git reset --soft HEAD^ //最新一次提交消失,但修改并没改变。
git pull origin master:master
git commit -m //重新提交
然后在push,若没有直接push
11.git push origin master//提交代码到远端主机
*no branch问题:
代码更新脚本,只明确用哪个远端仓库,并未指明用哪个分支,执行后就会
出现当前处于no branch分支。处在no branch分支是不受git管理的,所以要
切换到工作分支,再处理。切换分支执行 git checkout -b newname
git push 时报错error:rejected –non-fast-forward
解决方法:此提示为当前提交无法快进版本,意味着别人已经先你一步,
做了其他提交到远端,远端需要你在最新的基础上提交。
1、合并 git remote update
git pull到最新代码,
git push。
2、重新提交
git remote update
git reset --soft HEAD^
git pull
git commit
git push