git命令
基础命令
git diff 比较的是工作区和暂存区的差别
git diff --cached 比较的是暂存区和版本库的差别
git diff HEAD 可以查看工作区和版本库的差别
$ git init
$ git clone git@github.com:duanwandao/test001(项目名).git //从服务器上克隆到本地,如果服务器上面已经有项目了,直接使用这个命令clone到本地进行使用。
$ git diff <filename> // 输入q退出 Git查看版本改动—— git diff https://blog.csdn.net/asheandwine/article/details/78982919
$ git add readme.txt $ git add . //添加单个文件,添加全部
$ git commit -m "wrote a readme file"
git pull origin master //从已存在的远程仓库下载到本地
$ git push origin master //把已经修改的文件push到服务器 git push --tags --push所以缓存到本地服务器的文件
$ git checkout -- readme.txt //直接回退
$ git reset commit_id //完成Commit命令的撤销,但是不对代码修改进行撤销。想在从新提交需要再add 然后commit
$ git reset --hard 1094a (sha1版本号几位 commit_id) //将当前远程HEAD、暂存区和工作区为commitid对应的提交 回退到上一个commit节点, 代码也发生了改变,变成上一次的
$ git reset HEAD readme.txt $ git reset --hard HEAD^ HEAD~100 (数字版本) // 例如当add*之后,后悔了,可以reset head readme.txt 来取消暂存(工作目录不会被修改)
$ git reset --soft commitid // 只更新远程HEAD
$ git reset --hard origin/master //将本地的状态回退到和远程的一样
$ git log //日志
$ git log --pretty=oneline //简化查询日志
$ git reflog //查看所有commit历史
$ git remote -v //要查看远程库的详细信息
创建与合并分支
$ git branch -a //查看分支
$ git checkout -b dev // git checkout 命令加上 –b参数表示创建并切换,相当于如下2条命令 git branch dev git checkout dev
$ git merge dev
$ git merge fz1 -m"合并分支1"
$ git merge --no-ff -m"主master合并修复bug分支" issue-101 //这种模式下,删除分支后,不会丢掉分支信息
$ git branch -d dev
$ git log --graph //分支合并图 下面简洁版
$ git log --graph --pretty=oneline --abbrev-commit
$ git log --pretty=raw HEAD 查看每个commit的具体详细信息
$ git reset --merge //撤回到merge前
$ git stash //工作只进行到一半,还没法提交. 可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
$ git stash save "哈哈" //这样到时候查看可以显示信息,方便查阅
$ git stash list //查看工作现场
$ git stash pop //恢复工作现场,并自动删除stash缓存
$ git stash apply 或者 $ git stash apply stash@{0} //恢复工作现场,不删除stash git stash drop 删除
$ git show stash@{1} //显示信息
首先master主分支应该是非常稳定的,也就是用来发布新版本,一般情况下不允许在上面干活,干活一般情况下在新建的dev分支上干活,干完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。
GIT 分支管理:创建与合并分支、解决合并冲突 https://www.cnblogs.com/wangmingshun/p/5425150.html
远程仓库
查看远程仓库信息
$ git remote -v
添加远程仓库
$ git remote add origin https://github.com/duanwandao/pinyougou.git
用户
用户名和邮箱地址的作用
用户名和邮箱地址是本地git客户端的一个变量,不随git库而改变。
每次commit都会用用户名和邮箱纪录。
github的contributions统计就是按邮箱来统计的。
查看用户名和邮箱地址:
$ git config user.name
$ git config user.email
修改用户名和邮箱地址:
$ git config --global user.name "username" $ git config --global user.email "email"
杂
git客户端启动“分块”请求的默认大小为1MB,当上传大体积项目时,可以改变这个设置:
git config http.postBuffer 524288000 //单位为字节
此示例将postBuffer设置为500MB。
git 书籍资料
-《Pro Git》 作者Scott Chacon是github的员工,git的布道者,这本书被誉为git学习圣经,中间有好多插图描述的浅显易懂,挺适合详细学习下的,最新英文第二版《pro git (Editon 2)》;
-《Git Community Book》汇聚了Git社区的很多精华, 并对git的对象模型原理等做了解释,可以深入的了解下git原理;
2015-01-22 增加
- 推荐的工作流程 git workflow
2015-04-05 增加 git flow 工具
- git flow 工具
- git flow 中文备忘清单
- 一个很有意思的学习 git 的小游戏 http://pcottle.github.io/learnGitBranching/
- 图解 git 将书籍中很多
术语
用图片的方式进行讲解,很容易就懂了 - 图文并茂-猴子都能懂的git入门教程 全面,生动形象,图文并茂,简单易懂,强烈推荐!
git stash 用法 https://www.cnblogs.com/yanghaizhou/p/5269899.html
git 官方中文文档 https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E8%8E%B7%E5%8F%96-Git-%E4%BB%93%E5%BA%93 https://book.git-scm.com/docs
猴子都能懂得git教程 https://backlog.com/git-tutorial/cn/contents/
Git使用详细教程 https://blog.csdn.net/youzhouliu/article/details/78952453