【01 常见Git命令】
#【001】
统一概念:工作区:改动(增删文件和内容)
暂存区:输入命令:git add 改动的文件名,此次改动就放到了 ‘暂存区’
本地仓库(简称:本地):输入命令:git commit 此次修改的描述,此次改动就放到了 ’本地仓库’,每个 commit,我叫它为一个 ‘版本’。
远程仓库(简称:远程):输入命令:git push 远程仓库,此次改动就放到了 ‘远程仓库’(GitHub 等)
commit-id:输出命令:git log,最上面那行 commit xxxxxx,后面的字符串就是 commit-id
#【002】
#编辑修改等
git show # 显示某次提交的内容 git show $id
git checkout <file-name> #放弃工作区的修改 ,类似于 svn revert
git revert <commit-id> #以新增一个 commit 的方式还原某一个 commit 的修改
#比较diff
git diff <branch1>..<branch2> # 在两个分支之间比较
git diff --staged # 比较暂存区和版本库差异
git diff --cached # 比较暂存区和版本库差异
git whatchanged --since='2 weeks ago' #查看两个星期内的改动
git diff --word-diff #详细展示一行中的修改
#查看提交记录
git log -p -2 # 查看最近两次详细修改内容的diff
git blame <file-name> #查看某段代码是谁写的, blame 的意思为‘责怪’,你懂的。
git reflog #显示本地更新过 HEAD 的 git 命令记录 ,类似 shell的 history
git log --all --grep='<given-text>' #在 commit log 中查找相关内容
#Git 本地分支管理
git branch -r # 查看远程分支
git branch <new_branch> # 创建新的分支
git co <branch> # 切换到某个分支
git co $id # 把某次历史提交记录checkout出来,但无分支信息,切换到其他分支会自动删除
git branch -d <branch> # 删除某个分支
git branch -vv 展示本地分支关联远程仓库的情况
git merge <branch> # 将branch分支合并到当前分支
#Git暂存管理
git stash # 暂存
git stash list # 列所有stash
git stash apply # 恢复暂存的内容
git stash drop # 删除暂存区
#Git远程分支管理
git pull --no-ff # 抓取远程仓库所有分支更新并合并到本地,不要快进合并
git push # push所有分支-- 要慎用,还是要push具体的分支好一点 https://www.cnblogs.com/djiankuo/p/6492533.html
git push -u origin develop # 首次将本地develop分支提交到远程develop分支,并且track
git push origin master # 将本地主分支推到远程主分支
git push origin dev_20190513_registrationpath #我们的java项目 数据统计的Git push命令
#Git远程仓库管理
git remote -v # 查看远程服务器地址和仓库名称
git remote show origin # 查看远程服务器仓库状态
【02 】本地仓库“三棵树”
本地仓库由 git 维护的三棵“树”组成。
1)【图01】本地仓库git 三棵树
本地仓库git 三棵树
2)【图02】git本地三棵树的相互转化命令:https://josh-persistence.iteye.com/blog/2215214
git本地三棵树的相互转化命令
3)三棵树的更详细的命令示意图
三棵树的更详细的命令示意图
git commit的时候,只是提交的 缓存区内的内容(如果你git add过,否则也等同你本地工作区内容的提交)
== git add可以实现我之前在 云主机上保存临时文件的tmpdjp的操作
==git diff 对比的是工作区和 缓存区的区别
==git diff --cached 对比是 缓冲区和本地的 head版本库的对比
另外需要指出来的是 git stash 不在上面的“三颗树”里,git stash 是暂存区,区别于 缓存区“stage”
git stash的用法见 https://www.cnblogs.com/tocy/p/git-stash-reference.html