Git从入门到精通(一)
Git简单介绍,按照和常用的命令使用介绍
1.了解Git是什么以及Git的安装
01、Git是什么
- 1:版本控制是企业中开发中非常中的一个环节。一般用来团队协同开发和代码的管理
- 2:svn它集中式的版本控制,所有版本都依赖这个中心点,不支持离线工作
- 3:Git它也是版本控制,它的版本控制都是用户自己的电脑完成控制。把这种版本控制叫:分布式的版
本控制。目的:去中心化。
02、Git的由来和发展史及特点
同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002 年间)。到 2002 年,Linux 系统已经发展了十年了,代码库之大让Linus 很难继续通过手工方式管理了,于是整个项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码。到 2005 年的时候,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了免费使用 BitKeeper 的权力。这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds )不得吸取教训,只有开发一套属于自己的版本控制系统才不至于重蹈覆辙。他们对新的系统订了若干目标:
- 速度
- 简单的设计
- 对非线性开发模式的强力支持(允许上千个并行开发的分支)
- 完全分布式
有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
优点:
适合分布式开发,强调个体;
公共服务器压力和数据量都不会太大;速度快、灵活;
任意两个开发者之间可以很容易的解决冲突;离线工作。
缺点:
代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息;
权限控制不友好;如果需要对开发者限制各种权限的建议使用 SVN。
03、Git协作开发得流程
代码托管中心的任务是:维护远程库。
04、Git安装-客户端和服务端
1:安装Git服务端
这是 windows 版本的 git 服务器;https://git-scm.com/download
2:安装Git的客户端工具 ---- TortoiseGit
这是 windows 下对 git 操作的一个图形界面管理工具,安装后可以方便地使用图形界面去操作git;
2.Git的常用命令
01、Git文件操作系列-创建版本库
- 命令行创建本地仓库
git init #创建本地仓库
git init --bare
ps:The difference between the two commands:stackoverflow
- 核心文件了解
目录 | 描述 |
---|---|
config | 该文件主要记录针对该项目的一些配置信息,例如是否以bare方式初始化、remote的信息等,通过git remote add命令增加的远程分支的信息就保存在这里; |
objects | Git中的文件和一些操作都会以git对象来保存,git对象分为BLOB、tree和commit三种类型,例如git commit便是git中的commit对象,而各个版本之间是通过版本树来组织的,比如当前的HEAD会指向某个commit对象,而该commit对象又会指向几个BLOB对象或者tree对象。 |
HEAD | 该文件指明了git branch(即当前分支)的结果,比如当前分支是master,则该文件就会指向master,但是并不是存储一个master字符串,而是分支在refs中的表示,例如ref: refs/heads/master |
index | 该文件保存了暂存区域的信息。该文件某种程度就是缓冲区(staging area),内容包括它指向的文件的时间戳、文件名、sha1值等; |
Refs | 该文件夹存储指向数据(分支)的提交对象的指针。 |
02、Git文件操作系列-添加,修改,删除文件到暂存区和版本区
- 查看文件状态: git status
- 添加指定文件到缓存区: git add xxx.java
- 添加所有文件到缓存区: git add .
- 从缓存区中拉回到工作区: git rm --cached good.txt
- 添加文件到版本区:git commit -m 'write your comments for the added file’
git的整个过程不是可逆,一定工作区----暂存区—版本区
03、Git文件操作系列-查看状态,历史日记信息
- 查看状态: git status
如果文件还没有任何的add默认颜色:红色
如果执行 git add xx 后 被add文件的颜色:绿色,意味着你的文件已经放入暂存区
- 查看日志:git log & git log --pretty=oneline(print out the logs by one line)
- 其他查看日志命令汇总
git log -n number #check the last two logs
git log --graph #
git log --graph -n 2
git log --graph --oneline -n 2
03、Git文件操作系列-忽略不需要提交的文件-.gitignore
- 命令行添加方式
vim .gitignore
# input the ignored file
ignore.txt
# seve the .gitignore
- 添加到.gitignore中的文件在整个git版本管理周期中被排除
3.Git的远程仓库和协同开发Gitee&GitHub
01、Github远程仓库-注册安装和关联
1:国外提供了一个远程仓库的平台:https://www.github.com
2:国内提供了一个远程仓库平台:https://www.gitee.com
- 配置账号和密码
git config --global user.name "kekesam02"
git config --global user.email "[email protected]"
- 添加本地仓库和远程仓库关联-https连接
git remote add origin https://github.com/kekesam02/gitdemo.git
# 如果删除之前关联:
# 初次关联使用提交代码的时候需要填写,账号和密码信息
git remote rm origin
git remote add origin 改成新的地址
- 添加本地仓库和远程仓库关联-ssh连接(免密)
git remote add origin [email protected]:kekesam02/gitdemo.git
- 修改远程关联
git remote set-url origin http://jcode.cbpmgt.com/git/<your rep name>.git/
02、Git文件操作系列-创建版本库设置签名
- 设置项目级别的配置:仅在当前本地库范围有效
git config user.name "xiaoer"
git config user.email "[email protected]"
- 设置系统级别的配置:登录当前操作系统的用户都有效
git config --global user.name "xiaoer"
git config --global user.email "[email protected]"
- 查看全局的用户信息
信息路劲:系统盘的–用户目录–用户名目录–.gitconfig文件中
使用原则:
- 就近原则:项目级别的优先于系统级别的用户。二者都有时采用项目级别的签名。
- 如果只有系统级别的签名,就以系统级别的签名为准。
- 如果两者都没有是不允许,会报错。
03、Github远程仓库-提交文件到远程仓库中
- 现在远程创建仓库
- 关联远程仓库
# 添加对远程仓库的关联
git remote add origin https://gitee.com/michaelcoding/gitdemo.git
# 修改关联
git remote set-url origin https://gitee.com/michaelcoding/gitdemo.git
- 推送本地仓库数据到远程
git push -u origin master
04、Github远程仓库-克隆远程仓库到本机
- clone远程仓库到本机(默认clone master分支)
git clone https://gitee.com/michaelcoding/gitdemo.git
- 指定分支clone远程仓库到本机
git clone -b test https://gitee.com/michaelcoding/gitdemo.git
注意:
1:它会自动创建本地仓库
2:它也会自动和远程仓库进行关联。
3:已经和远程仓库同步,只执行一次。
05、Github远程仓库- 更新到本机
- 同步远程仓库的代码到本地仓库
git pull origin master
06、Github远程仓库-SSH-协议免密操作配置和注意事项
第一步:打开命令工具"git bash here" 输入命令 “ssh-keygen -t rsa ” 生成密钥和公钥
ssh-keygen -t rsa
ssh-keygen -t rsa -C michaelCoding
第二步:然后在命令执行的当前目录生成的公钥文件【mihcael.pub】内容复制出来.
第三步:打开github官网–【登录】–【settings】-【SSH-GPG keys】粘贴第二部中赋值的公钥:
第四步:测试和体验ssh的免密操作
07、Git远程仓库操作-邀请团队人员加入到团队中协作开发
- 1:点击管理
- 2:邀请用户
- 3:使用邮箱或手机邀请用户
- 4:被邀请人收到站内信,点击同意
- 5:被邀请人点击确认加入
- 6:被邀请人点击接受
- 7:邀请者查看是否邀请为开发者
08、Git分支管理,合并分支,切换分支
- 第一步:创建分支
git branch dev # 创建分支 dev
git checkout dev # 选中当前分支 dev
# 注:上面两个命令可以组合成一个复合命令
git checkout -b dev
git checkout -b dev = (git branch dev + git checkout dev)
- 第二步:查看分支
git branch
- 第三步:添加文件,提交文件在当前分支
vim e.txt # 创建文件,输入任意内容
git add . # 提交e.txt文件,
git commit -m 'e.txt' # 提交e.txt文件到test分支中
- 第四步:推送分支到远程仓库中
git push origin dev
- 第五步:合并分支
git checkout master # 切换回master分支
git merge dev # 将dev下面的内容全部合并到master中
- 第六步:删除分支
git branch -d dev