***
准备写代码之前,先pull下远程仓库的代码,这样可将远程仓库的更改合并到本地代码,这样做的好处是通常无需手动解决冲突,因为之前你已经把本地仓库的更改推送到远程仓库了,远程仓库后面的更改也是在你的代码基础上,而你本地代码并没有更改,所以这种情况下合并是最好最简单的方式。合并代码后再写代码。
***
顺便说下pull和fetch的异同,他们都是更新远程仓库代码到本地的,不同的是fetch完以后还需要merge一下,而pull一个指令包含了fetch和merge两个操作。
然后再说下merge和rebase的异同,他们都是用于合并代码,不同的时rebase操作稍微复杂一些,但更仔细一些,它会将远程文件和本地文件做对比,并标记出冲突的地方,当解决完所有冲突后执行Add to Index操作,然后不要马上执行commit操作,先执行Continue Rebase操作,然后再执行Commit操作。是不是有写麻烦?如果使用merge指令就没有Continue Rebase操作了,但解决冲突就没那么明显了,他自动将远程和本地的代码合并到本地,然后用上图中的形式标记出来。解决完冲突后执行Add to Index ——Commit操作。所以这就看你个人喜好了。
省掉add--git commit -am '描述的信息'
rm-----git rm '文件名' 删除某个文件,是删除工作区和暂存区的文件,repositery没有删除
恢复-----git check HEAD --‘文件名称’ 恢复最后一次提交的文件 说明: HEAD^ 是回复最后一次提交的上一次提交的内容
log-----git log --oneline
reset --- git --mixed 'id' 这是默认的,不影响工作去的文件
reset --- git --soft 'id' ,不影响工作区和暂存区的文件
reset --- git --hard 'id' 三个区的文件都会受影响
查看当前的分支列表--git branch -a
查看当前的分支--git branch
为当前的分支创建分支---git branch ‘name’
切换分支--git checkout ‘分支名称’
查看所有分支的修改---git log -oneline --decorate --all -10(显示日志的数量)-graph(流程图)
查看两个分支的不同----git diff ‘分支1’。。‘分支2’
查看两个分支的不同(指定文件)----git diff ‘分支1’。。‘分支2’
分支重命名--git branch -m ‘原名' '现在的名字'
分支删除-- -d
merge --git merge '分支的名称'
暂时保存分支工作进步,修改其他的bug git stash save '描述'
查看保存的工作进度的列表 git stash list
查看工作进步的当前分支的对比-- git stash show -p 进度代号
召回工作进度---- git stash apply 进度代号
删除进度----git stash drop 进度代号
撤销删除进度----git stash pop 进度代号
log
查看--git log --oneline -5(5行)
指定作者查看---git log -oneline --author="zangliang"
关键字查看-- git log --oneline --grep='index.html' (包含index。html的)
指定日期之前--- --before='2014-01-09'
添加远程--
查看远程--
git remote
git remote -v
移除远程--
git rm origin(远程的名字)
本地分支推送到远程--
git push -u(跟踪远程分支的变化) origin(远程名称) master(本地的分支名称)
查看远程的分支--
git branch -r