Git知多少!!!
第一次写博客,内心有点小激动呀!首先祝大家圣诞快乐~~啦啦啦~~好了,我要步入正题啦!今天是上班第二周,终于开始写需求啦!开森~~撒花~~
来这里第一个要学的就是git的操作啦!入职第一天发了一个大大的git操作流程文档,下面我就整理一下,为了我日后复习,大家可以一起学习。
一,理论的东西
首先介绍一下git 一个分布式管理工具,相信大家对svn有了解的
至于区别嘛!我贴出来啦~
分布式/集中
差异存储/完整备份
节点树分支/文件夹分支
独立版本号/全局版本号
学习git 首先要知道这四个概念:
workspace 工作区
index 暂存区
本地仓库
远程仓库
具体关系看图:
二,git相关配置
git config 本地化配置相关
git config --list 查看所有的config配置
git config --global [--system] 选择配置环境 g:用户,s:系统
git config user [name/email] 配置用户名和邮箱
git config --global
color.diff=auto
color.branch=auto
color.interactive=auto
color.status=auto
alias.st=status
alias.ci=commit
alias.br=branch
alias.co=checkout
alias.df=diff
push.default=current
git branch --set-upstream-to=origin/<branch> branch
三,git常用命令
- git add [-a].
添加到暂存区,或使用git add file添加指定文件
-a 有删除文件的动作时使用
- git commit -m ‘msg’ [--amend]
提交到本地仓库 --amend 和上一次的commit合并
- git pull [--rebase] [仓库] [分支:分支]
更新远程代码到本地,相当于 fetch + merge
--rebase 以变基方式更新。
[仓库] [分支:分支]指定仓库分支。
git branch --set-upstream-to=origin/<branch> branch
- git push [-f] 仓库 分支
提交本地更新到远程, push.default=current
- git status
查看仓库状态
- git fetch
获取远程的更新(不会合并到仓库和工作区)
- git merge
[分支/节点] 合并分支或更新节点,有代码差异时会新建节点
- git rebase
分支 [--continue | --abort | --skip] 变基操作,逐个合并节点,并提示修复冲突
- git log [-p] [—-stat] [file][节点/分支]
查看日志
-p:查看文件详细
--stat:只查看修改文件列表
file : 查看指定文件
--oneline --graph --author
- git statsh [list] [pop] [apply]
临时搁置已修改的代码
list :查看搁置的记录
apply:恢复某次搁置记录(不删除)
pop: 恢复并删除上一次搁置的记录
- git checkout [-b] [分支/节点]
切换分支/节点
-b 创建并切换到一个分支
可以从暂存区取出文件
- git diff [--cache] [节点]..[节点]
查看修改内容差异
默认查看工作区和仓库的区别。
--cache 查看工作区和暂存区区别
[节点]..[节点]:查看节点和节点的区别
…和..区别
- git blame [节点] file
查看文件中具体某行的书写人:
[节点]: 指定某个节点的文件状态
- git branch [-a] [-d/d]
操作分支
-a 所有的分支,含线上
-d 删除分支,-d强制删除
git show [节点] 查看节点信息
git clone 克隆一个远程仓库
git init 本地生产一个仓库
git remote [add] [-v] 查看、操作仓库信息 add 添加一个远程地址
git reflog 查看仓库操作日志(用于找回操作历史)
git reset [—hard] [节点] 回退版本 (历史回退) —hard 覆盖工作区
git revert [-n|e] 节点 回退版本 (历史递增) -n 不自动commit -e 可以编辑提交信息
git rm –cached 删除文件,相当于 rm + add -a cached从暂存区删除,取消跟踪。
git clean –df 清理未跟踪的文件
git cherry-pick [-n] 拣选某个节点 -n 执行完不进行commit
为了方便大家查找,附上一张图图(ps:图图是我辛苦盗来得的,哈啊~~)
最后最后,以上都是基础的东西。关于冲突处理,以及在多人协同开发中的使用,下期我在更新呀~~~~
(ps:自己在努力学习研究中,脑子是个好东西呀~~~)
欢迎大家交流,还是一只小菜鸟~~~~扑腾中,希望大佬们不吝赐教啦啦啦~~撤啦撤啦,bug还没改完呢!
仰天长啸~~~~~ing
下一篇: C++中“#”号的使用方法介绍