Git 初识
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.git git 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 '版本介绍' 本地创建Tag git show v1.0 查看 git tags -n 查看本地Tag git tag -l 'v1.4.2.*' 查看本地Tag,模糊匹配 git tag -d v1.0 删除Tag git push origin :refs/tags/v0.2 更新远程tag git checkout v.10 切换tag git fetch origin tag V1.2 git push origin --tags git pull origin --tags git 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