Git随记
为了方便的编写代码,灵活的修改,回退代码,需要有工具替我们管理我们写过的代码,Git
- 版本控制工具应该具备的功能
- 协同修改
- 数据备份
- 版本管理 SVN采用的是增量式管理,Git采用文件系统快照的方式
- 权限控制
- 对团队中参与开发的人员进行权限控制
- 可以对团队开发者以外贡献的代码进行审核,Git独有
- 历史记录
- 产看修改人,修改时间,修改内容,日志等等
- 可以恢复到某一个历史版本
- 分支管理
- 开发过程中可以允许多条生产线一起开发
- 版本控制简介
- 版本控制
- 版本控制工具
- 集中式的版本控制工具:SVN 缺点:依赖服务器端,单点故障问题
- 分布式版本控制工具:Git 任何一台客户端上都有用完整的库
- Git的优势
- 大部分操作在本地完成,不需要联网
- 完整性保证
- 尽可能添加数据而不是删除或修改数据
- 分支操作非常流畅快捷
- 与linex命令全面兼容
- 下载安装Git
- Git和代码托管中心
- Git本地初始化
- 效果
- 注意:.git目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡乱修
- 设置签名
- 形式
- 用户名
- Email地址
- 作用:区分不同开发人员的身份
- 辨析:这里设置的签名和远程库(代码托管中心)的账号密码没有任何关系
- 命令:
- 项目级别/仓库级别:仅在当前本地库范围有效
- git config user.nametom_pro
- git config user.email_pro...
- 系统用户级别:登录当前操作系统的用户范围
- git config--golbal user.name witcher_glb
- git config--golbal email_glb...
- 优先级:就近原则.项目级别优先于系统用户级别
基本操作
- 状态查看操作
- git status
- 产看工作区,暂存区的状体
- 添加操作
- git add [file name]
- 将工作区的新建/修改添加的暂存区
- 提交操作
- git commit -m"自定义的提交信息" [file name]
- 将暂存去的内容提交到本地库
- 产看历史记录
- gig log --pretty=oneline 每条日志只显示一行;
- git log --oneline 与上面相比哈希值只显示一部分,内容只显示故去的;
- git reflog 增加HEAD@{0}显示指针移动的步数
- 多屏显示时的控制方式,和linux一样,空格向下翻页 b向上翻页 q退出
- 前进后退 HEAD
- 推荐使用基于索引的办法 git reset --hard 索引值
- 使用^符号,只能往后退,不能往前 git reset --hard^后退一步 一个符号表示后退一步
- 使用~ git reset --hard ~n 后退n步 只能后退
- reset 命令的三个参数对比
- soft
- 仅仅是在本地库移动HEAD指针
- mixed
- 在本地库移动指针
- 重置暂存区
- hard
- 在本地库移动HEAD指针
- 重置暂存区
- 重置工作区
- 删除文件并找回
- 前提:删除前,文件存在时的状态提交到了本地库
- 操作:git reset --hard [指针位置] 还是利用了hard这个参数的特性,会统一 工作区.暂存区 本地库
- 如果删除操作已经提交到本地库:指针位置指向历史记录
- 如果删除操作尚未提交的本地库:指针位置使用当前HEAD
- 比较文件差异 diff
- git diff[文件名]
- 将工作区中的文件和暂存区进行比较
- git diff[本地库中历史版本(HEAD)][文件名]
- 将工作区中的文件和本地库历史记录比较
- 不指定文件名比较所有文件的差异
- 分支 master主干featute(功能)_
- 同时并行推进多个功能开发,提高开发现率
- 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支产生影响,失败的部分直接删除就可以
- 分支操作git branch -v查看分支
- 创建分支
- git branch[分支名]
- 查看分支
- git branch -v
- 切换分支
- git checkout[分支名]
- 合并分支(切换到接受修改的分支上)
- 执行 merge 命令
- git merge [有新内容的分支名]
- 解决冲突 冲突的表现
- 编辑文件,删除特殊符号
- 把文件修改到满意程度,保存退出
- 第三部git add[文件名]
- git commit -m"日志信息" 注意:现在不要加文件名
Git基本原理
- 哈希
- Git的文件管理机制
- Git分支管理机制
- 整合github
- git remote -v 查看当前所有远程地址别名
- git remote add[别名][远程地址]
- 推送
- git push[别名][分支名]
- 克隆 命令:git clone [远程地址],作用有三
- 完整的把远程库下载到本地
- 创建origin远程地址别名
- 初始化本地库
- 拉取 fetch merge
- pull=fetch + merge
- git fetch [远程库地址别名][远程分支名]
- git merge[远程库地址别名/远程分支名]
- git push origin master
- 解决冲入
- 要点
- 如果不是基于githb远程库的最新版所做的修改,不能推送,必须先拉取
- 拉取下来后如果进入冲突状态,则按照"分支冲突解决"操作即可
- 跨团队写作
- Fork
- 本地修改,推送到远程
- pullrequests
- 发送请求
- 管理人,处理请求
SSH的免密码登录
- ssh-keygen -t rsa -C 邮箱
idea连接码云的方法:
The flash that cuts through darkness, the light that breaks the night.

浙公网安备 33010602011771号