1. Git
1.1 Git的简介
git是一种分布式的版本控制软件。
1.2 git的初始化操作
- 进入要管理的目录
-
git init
:初始化,让git帮助管理当前文件夹 -
git status
:检测目录下文件的状态 - 三种状态的变化
- 红色:新增或者被修改的文件,
git add 文件
来添加 - 绿色:git已经管理起来了,
git commit -m '提交的描述'
- 生成版本
- 红色:新增或者被修改的文件,
-
ps:第一次使用时,生成版本之前需要个人信息的配置:用户名、邮箱
git config --global user.email "staick@163.com" git config --global user.name "staick"
git的三大区域
1.3 git的回滚
git log #1.先利用该命令查看各版本的校验值
git reset --hard 版本校验值 #2.使用该命令回滚到校验值所对应的版本
git reflog #该命令可以查看完整的版本目录
git reset Head 文件名 #暂存区->已管
git checkout -- 文件名 #已管->未管
- 新版本只保留修改的部分,未修改的用指针指向上一个版本
1.4 分支
分支的应用:bug的紧急修复
-
分支的操作
git branch #分支表、目前所处分支 git branch 分支名 #创建分支 git checkout 分支名 #切换分支 git merge 分支名 #合并分支,合并时应该注意切换分支 git branch -d 分支名 #删除分支
ps:分支的合并操作可能出现冲突,解决方法是根据提示,手动修改
1.5 git工作流
2. Github
2.1 git 配合github的基本操作
-
git -> github
- 给远程仓库起别名:
git remote add 别名 仓库地址
- 向远程推送代码:
git push -u 别名 分支
- 给远程仓库起别名:
-
github -> git
-
git clone 远程仓库地址
(内部已实现git remote add origin 仓库地址
) - 切换分支:
git checkout 分支
-
-
ps:如果再dev上开发,要先合并master
git merge mster
-
更新一下
git pull origin dev
2.2 多地开发的实现
-
在家里上传代码
-
给远程库起别名
git remote add origin 远程仓库地址 #其中origin为别名
-
向远程推送源代码
git push -u origin 分支
-
-
到公司新电脑上第一次获取代码
-
克隆远程仓库代码
git clone 远程仓库地址 #内部已实现git remote add origin 远程仓库地址的操作
-
切换分支
git checkout 分支
-
-
在公司开发
-
切换到dev分支进行开发
git checkout dev
-
把master分支合并到dev(仅一次)
git merge master
修改代码
-
提交代码
git add git commit -m '描述' git push origin dev
-
-
回到家中继续写代码
-
切换到dev分支进行开发
git checkout dev
-
拉代码
git pull origin dev
继续开发
提交代码
-
-
开发完毕,上线
-
将dev分支合并到master,进行上线
git checkout master git merge dev git push origin master
-
把dev分支也推送到远程
git checkout dev git merge master git push origin dev
-
-
ps:
git pull origin dev
等同于git fetch origin dev #拉到本地 git merge origin/dev
2.3 rebase(变基):使git记录简洁
-
第一种:多个记录整合成一个
git rebase -i 版本号 #现在的版本号与给的版本号之间进行合并 git rebase -i HEAD~3 #最近三条合并
- 注意:合并记录时,不要和已提交push合并。
-
第二种:仅记录为一条线,将C3插入到线中
git checkout dev git rebase master git checkout master git merge dev
-
关于log显示
git log --graph #可显示流程线 git log --graph --pretty=format:"%h %s" #按哈希值 说明显示
-
-
第三种:防止产生分叉
git pull origin dev git fetch origin dev git rebase origin/dev
-
git rebase
产生冲突时,先解决冲突,再git rebase --continue
2.4 多人开发
2.5 添加标签
-
可以用标签替代版本哈希值
git tag -a v1 -m "第一版" git push origin --tags
git checkout -b dev #创建并切换到dev分支
2.6 给开源项目贡献代码
- fork源代码:将别人源代码拷贝到自己的远程库
- 在自己仓库进行代码修改
- 给源代码的作者提交修改申请(pull request)
2.7 git配置
-
项目配置文件:项目/.git/config
git config --local
-
全局配置文件:~/.gitconfig
git config --global
-
系统配置文件:/etc/.gitconfig
git config --system #该命令需要root权限
2.8 免密登录
-
URL中实现
原来的地址:https://github.com/xx
现在的地址:https://用户名:密码@github.com/xx
-
SSH实现
-
生成公钥和私钥(放在~/.ssh下,id.rsa.pub为公钥,id.rsa为私钥)
ssh -keygen
拷贝公钥内容,并设置到github中
-
在git本地配置ssh地址
git remote add origin git@github.com
-
git自动管理验证
2.9 git忽略文件
git忽略文件可以让git部管理某些文件
创建.gitignore文件,并在其中添加需要忽略的文件名
2.10 任务管理相关
- issues:文档以及任务管理
- wiki:项目文档