git 版本控制
版本控制
1 概述
现有许多版本控制工具 git ,svn ,cvs 等
- git 是分布式的版本控制工具,即每个队员可以看到项目所有的代码,部分设备数据丢失不影响整个项目。
- svn ,cvs 是集中式版本控制工具,队员只能获取更新的代码,所有的更新都在一个服务器上,有安全隐患。
安装好后会出现这两个工具,他们的区别只是使用命令不一样。
这个里面写 Linux 命令
这个里面写 windows 的 cmd 命令
1.1 git 四个工作区域
- Workspace:就是原始代码存放的地方
- Index / Stage:暂存区,用于临时存放你的改动,保存即将提交到文件列表的信息
- Repository:仓库,里面存放你提交的所有版本数据,其中 HEAD 指向最新放入仓库的版本
- Remote:远程仓库,如 gitHub ,gitee
1.2 git 工作流程
- 写代码: coding
- 将更新文件放入暂存区: add
- 提交到 git 仓库: commit
- 上传到远程仓库: push
1.3 git 配置
//查看用户 git config user.name //查看邮箱 git config user.email //修改用户 //修改用户名,邮箱(这两个变量是用来告诉别人这是你) git config --global user.name "new_name" git config --global user.email "new_email"
2 上传操作
//初始化仓库 Repository //本地仓库又叫版本库,用来记录操作痕迹。 git init //向本地仓库添加文件 //分两步,先 add 再 commit ,文件名要加后缀 // -m 的 m 是 message 的意思 // 添加所有文件到暂存区 git add . git add " file_name " git commit -m " add file_name" //添加多条时 git add " file_name_1 " git add " file_name_2 " ... git commit -m " add file_name_1 file_name_2 ..."
3 下载操作
//克隆到本地 //克隆得到的文件在本地仓库 git clone [url]
4 文件操作
4.1 文件状态
git 操作的文件共有四种状态
- 未跟踪(untracked): 通过 add 可以变为 staged
- 已修改(modifiled)
- 已暂存(staged)
- 已提交(commited)
//查看文件状态 git status [ file_name ] //查看所有文件状态 git status
4.2 忽略文件
有些文件我们不需要进行版本控制,比如说一些配置文件
.gitignore 为忽略配置文件
# 为注释 # 下面为一些例子 # /A 表示忽略 A 里的文件,但 A 里的文件夹里的文件不忽略 # B/ 表示忽略 B 下的所有 *.txt #忽略所有 .txt 结尾的文件 !lib.txt #除 lib.txt 外全部忽略 /temp #仅忽略 temp 文件夹下的文件 build/ #忽略 build/ 目录下所有的文件 doc/*.txt #忽略doc/下的所有 .txt 文件
5 码云用 git
5.1 将本地项目传到码云
- 在码云上创建一个仓库
- 克隆到本地
- 将克隆下来的文件拷贝到本地项目文件夹里
- 执行 add 添加到暂存区
- 执行 commit 提交到本地仓库
- 执行 push 到远程仓库
可以在终端输入 add . 会添加所有文件到暂存区,可以选择提交
然后输入提交备注,点击提交就会提交到本地本地仓库,然后还可以选择 push 到远程仓库
6 git分支问题
分支是为了解决多版本问题,主分支:master,一般开发版本的:dev
//列出所有本地分支 git branch //列出所有远程分支 git branch -r //新建一个分支,但依然停留在当前分支 git branch [ branch_name ] //新建一个分支,并切换到该分支 git checkout -b [ branch_name ] //合并指定分支到当前分支 git merge [ branch_name ] //删除分支 git branch -d [ branch_name ] //删除远程分支 git push origin --delete [ branch_name ] git branch -dr [ remote/branch ]