git&github
Posted ywzq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git&github相关的知识,希望对你有一定的参考价值。
一、版本控制工具
功能:
协同修改:多人并行修改服务器同一个文件。
数据备份:不仅保存目录和文件的状态,还能保存一个提交过的历史状态。
版本管理:在保存每一个版本的文件信息的时候都要做到不保存重复数据。这方便svn采用的是增量
git采用文件系统快照的方式。
权限控制:团队中参与开发的人员进行权限控制
团队对外开发者贡献的代码进行审核(git独有)
历史记录:查看修改人、修改时间、修改该内容、日志;本地文件恢复到一个历史状态
分支管理:允许开发团队在工作过程中多条生产线同事推进
简介:
分如下两类:
1.集中式版本控制工具(例:cvs、svn...)
特点:文件、版本信息存储在服务器上;服务器损坏历史数据丢失
2.分布式版本控制工具(例:git)
特点:分布存储,可以有效避免单点故障、与linux命令全面兼容
二、git结构
分为三部分:本地库、缓存区、工作区三个大区
工作区:写代码
暂存区:临时存储
本地库:历史版本
结构图:
三、get和代码托管中心(维护远程库)
局域网环境下
gitLab服务器
外网环境下
gitHub、码云(国内速度快一点)
本地和远程库
情况一:团队内协作
情况二:跨团队协作
四、 git命令行操作
本地初始化
命令:git init
效果:
注意:.git存放的是本地库的子目录和文件
五、设置签名(区分开发人员身份):
设置用户名、地址 (辨析:和代码托管中心的用户名没有关系)
项目/仓库级别:尽在当前本地方位内有效;
git config user.name zwl
信息存储位置./git/config文件
系统用户级别:登录当前操作系统的用户范围
git config --global user.name zwl
信息存储位置 ~/.gitconfig文件使用ll -lA查看
六、git&github添加提交查看
git status查看状态(查看工作区、暂存区状态)
git add 添加操作 (将工作区添加到暂存区)
git rm --cached 文件移除暂存区/追踪文件
git commit 文件提交(将暂存区提交到本地库)
git add 修改文件 ;或者使用git commit -a提交
git commit -m ‘my second commit,modify file‘ good.txt 添加文件并注释
七、版本查看
git log 版本查看(默认完整内容;--pretty=oneline:一行展示;--oneline:简洁模式(展示当前版本位置))
git raflog 查看版本(展示当前版本位置,移动版本需要几步)
八、版本控制
本质:head指针控制
基于索引值操作版本
命令:git reset --hard 索引值/hahs值
基于^符号:只能后退(一个^表示后台一步,多个表示后退多步)
命令:git reset HEAD^3
基于~符号:只能前进
命令:git reset head~
get help 命令(例:soft)查看帮助文档
--soft参数:移动指针
--mixed参数:移动指针,重置暂存区
--head参数:移动指针、重置暂存区、重置工作区
八、添加到暂存区删除文件找回
前提:删除前,问津存在的状态提交到本地库
操作:git reset --head 指针位置
删除操作已经提交到本地库:指针指向历史记录
删除操作未提交到本地库:指针执行HEAD
九、文件对比
git diff 文件名 工作区和暂存区对比
git diff HEAD 工作区和本地库对比
git diff HEAD 索引值 文件名 工作区和历史记录对比
十、分支
多任务并行推进
分支查看:git branch -v
创建分支:git branch 分支名
切换分支:checkout 分支名
合并分支:
切换(git checkout 被分支名)到被合并的分支上;执行megre命令(git megre 有新内容分支名字)
解决冲突:
删除特殊符号,修改内容,保存退出
git add 文件名
git commit -m 日志内容(不能带文件名)
十一、git基本原理
哈希:一种加密算法
特点:大量数据,算法加密长度固定。
哈希算法确定,输入数据确定,输出数据不变
哈希算法不可逆
git底层采用SH-A算法
git保存版本的机制
git的“提交对象”
提交对象及其父对象想成的链条
git分支的创建:本质就是创建指针
切换分支:
GitHub
本地和远程库交互
推送
git push 远程库地址(别名) 分支
拉取(克隆)
git clone 远程仓库地址
三个目的:完成下载远程库到本地;创建origin 远程库别名;初始化本地库
邀请加入团队
远程库(github)settings中邀请Manager access中邀请成员加入
远程库修改拉取
拉取(pull=fetch+merge)
git fetch 远程库地址别名 远程分支名
切换分支
git checkout 别名/分支名
合并
git merget 远程地址别名/远程地址分支名
拉取并合并
git pull 远程库别名 远程库分支名
分支冲突
如果不是基于gitHub最新库所做的修改,不能推送,必须先拉取最新内容
拉取内容,修改冲突,提交本地库;推送远程库
跨团队协作
远程库fork操作
pull request 远程库提交修改
merge pull request;confirm merge 远程库合并修改
将远程库拉取到本地
配置SSH免密登录
生成ssh目录: ssh-keygen -t rsa -C github邮箱账号
进入目录,复制id_rsa.pub秘钥
githuib配置ssh key
本地库新建远程库别名:git remote add origin_ssh 地址
git图形化界面
eclipse工程初始化本地库
工程右键→Team→share project →git→creat repository(创建工程本地库)
设置签名
git Configuration设置签名
git配置忽略文件
新建忽略文件目录;git配置文件路径
eclipse推送远程库
工程右键→Team→push(配置远程库)
eclipse克隆远程库
import→git→Projects from Git→Clone URI(远程库地址)→选择分支→选择eclipse工作区目录→普通工程→转换工程(maven)
以上是关于git&github的主要内容,如果未能解决你的问题,请参考以下文章