Git是什么?
Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。
开放源码社区中的有些人觉得BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。
尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。
例如 很多 Freedesktop 的项目迁移到了 Git 上。
GitHup
是一个基于Git的远程文件托管平台(同GitCafe、BitBucket和GitLab等)。
Git的使用:
window下
就是去官网下载然后点点点------>官网地址:https://git-scm.com/
liunx:
yum install git (但是好像会出错)
源码安装:
还是自己百度吧:我也不想复制了
第一次使用(我们这里是window)
首先进入程序目录:第一次进入需要执行git init 方法进行初始化git status命令可以查看当前git的状态git add . #添加当前目录下所有文件到版本库git commit -m "xxx" #提交到版本库并写说明第一次执行git commit 命令的时候可能会弹出用户和邮箱的配置
回溯到以前的版本
git log查看往后的版本号
git reflog 查看提交的版本记录
git reset --- 版本号 回到那个版本 git stash 把代码存在储存在某个地方
stash相关常用命令:(将当前工作区所有修改过的内容存储到“某个地方”)
git stash 把代码存在储存在某个地方
git stash 将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原到当前版本未修改过的状态
git stash list 查看“某个地方”存储的所有记录
git stash clear 清空“某个地方”
git stash pop 将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
git stash apply 编号, 将指定编号记录从“某个地方”重新拿到工作区(可能有冲突)
git stash drop 编号,删除指定编号的记录
创建分支:
git branch 分支名称 创建分支
git checkout 分支名称 切换分支
git branch -m 分支名称 创建并切换到指定分支
git branch 查看所有分支
git branch -d 分支名称 删除分支
git merge 分支名称 将指定分支合并到当前分支
git如果代码出现了bug ,如何解决?
创建一个bug分支 吗然后进行bug处理 , 处理完毕后,合并到master分支
删除bug分支
回到dev分支继续开发
提交云端:(githup)
- githup 做代码托管
- 码云 做代码托管
第一次上传代码
git add .
git commit -m 'xx'
git remote add origin https://github.com/WuPeiqi/greenlu.git
git push origin master
第一次下载下载代码
方式一git clone https://github.com/WuPeiqi/greenlu.git方式二git init git remote add origin https://github.com/WuPeiqi/greenlu.gitgit pull origin master 直接拿回来方式三git init git remote add origin https://github.com/WuPeiqi/greenlu.git这的两句相当于git pull origin master 这一句git fetch origin master 拿到分支上了git merge origin/master 合并在一起日后git pull origin master #或者git fetch origin master git merge origin/master 或者 git rebase origin/dev 如果你在本地修改问题,又add,又提交,在线上去拿的时候,或许会冲突
在协同开发的时候需要注意
git协同开发应当注意:1:创建好一个组织2:给组织拉取成员3:赋予每个成员owner权限(即最高的权限,否则只有自己才可以提交数据,成员提交不了)4:创建每一个分支5:每个成员拉取自己的分支工作(git clone -b 分支 git@github.com:xxxx.git)6:写自己的代码,7:提交自己的代码()- git add .- git commit -m "提交测试代码"- git push origin "自己的分支"8:重新写代码- git pull origin news
而在协同开发中 同事一起来一起合并代码时候就会出错
error: Your local changes to the following files would be overwritten by merge:xxx/xxx/xxx.php
Please, commit your changes or stash them before you can merge.
Aborting
解决问题的方式是:
需要 把
git pull master
版本
git tag -a v1.0 -m '版本介绍' 本地创建Taggit show v1.0 查看git tags -n 查看本地Taggit tag -l 'v1.4.2.*' 查看本地Tag,模糊匹配git tag -d v1.0 删除Taggit push origin :refs/tags/v0.2 更新远程taggit checkout v.10 切换taggit fetch origin tag V1.2git push origin --tagsgit pull origin --tagsgit clone -b v0.1版本相关
用户:
由于Git和Github交互操作可能会很频繁,那么一定少了用户授权的操作,为了防止每次操作重复输入用户名和密码,Git提供了两种解决方法:
- 秘钥
首先创建一对秘钥 ssh-keygen -t rsa,然后将 id_rsa.pub (公钥)内容拷贝到github中,日后操作无需再输入用户名和密码。
注意:这种方式需要使用GIt中 git@github.com:WuPeiqi/xxxxx.git 格式地址。 - 密码
Https访问git时,避免每次操作需要输入用户名和密码,可以在配置文件中添加如下配置项:
[credential]
helper = store/cache/第三方store:
表示将用户名和密码保存在硬盘上
第一次输入过用户名和密码之后,用户名和密码就会保存在当前用户根目录的 .git-credentials 文件中,内容格式为:https://用户名:密码@github.com自动添加配置命令:git config credential.helper store
cache:
表示将用户名和密码保存在缓存中
第一次输入过用户名和密码之后,用户名和密码就会保存在缓存中,默认超时时间是 900 秒,缓存相关文件保存在当前用户根目录的 git-credential-cache 中
自动添加配置命令:
git config credential.helper cache
git config credential.helper 'cache --timeout=300'相关操作:
清除缓存:git credential-cache exit
指定超时:
[credential]
helper = cache --timeout=300
注意:
这种方式需要使用GIt中 https://github.com/WuPeiqi/xxxx.git 格式地址。
指定用户名和密码: https://用户名:密码@github.com/wupeiqi/xxx.git
- 秘钥