一、为什么要使用Git?
方便多人协同开发;方便版本控制
二、1.Git结构
Git
是分布式管理系统。服务器和客户端都有版本控制能力,都能进行代码的提交、合并等
2.本地代码管理:
工作区(Workspace):添加、
修改、
删除`文件
暂存区(Index):将工作区中的操作完成小阶段的存储,是版本库的一部分
本地仓库区(Respository): 对个人开发的一个小阶段代码存储
- 记录的各版本可以查看或者回退
- 但是在暂存区的版本一旦提交就再也没有了(保存到仓库区中)
三、本地仓库操作
-
1安装git: sudo apt-get install git ; sudo yum install -y git centos安装
2查看是否安装成功 git version 3创建项目: 1,创建git_test 文件夹, 表示工作项目 2,cd git_test 3,git init git init 把这个目录变成Git可以管理的仓库(后续新建提交和ssh克隆需要) 会创建一个.git隐藏文件 s -al 查看隐藏文件 ls .git 显示隐藏信息 配置个人信息 git config --global user.name "laowang" # 配置名字 git config --global user.email "python@admin.com" # 配置邮箱 配置信息出现在.git/config文件中 A 基本操作 $ git init 把这个目录变成Git可以管理的仓库(后续新建提交和ssh克隆需要) 操作版本库 $ git add 文件名 添加文件(新增或者更改都需要先add) $ git commit -m "说明" 提交到本地版本库 $ git status 查看仓库状态 版本回退(从一个commit恢复) $ git log 查看版本历史 $ git reset --hard HEAD^ 回退到上个版本 $ git reset --hard 1094a 回退到特定版本号(commit以后回退) $ git reflog 记录每一次命令 $ git checkout -- file 直接丢弃工作区的修改(add以前回退) $ git reset HEAD <file> 添加到了暂存区时,想丢弃修改(add以后回退) 删除文件 $ git rm file(已经add/commit,在目录中删除) $ git checkout -- file 删错了回退 回退版本 - `HEAD` 表示当前最新版本 - `HEAD^` 表示当前最新版本的前一个版本 - `HEAD^^` 表示当前最新版本的前两个版本,**以此类推...** - `HEAD~1` 表示当前最新版本的前一个版本 - `HEAD~10` 表示当前最新版本的前10个版本,**以此类推...** git reset --hard HEAD^ 会回退到上一个版本也就是上一个文件的内容 撤销修改 只能撤销工作区、暂存区的代码,不能撤销仓库区的代码 如果撤销仓库区的代码就相当于回退版本操作 ·撤销工作区代码 将文件里任意增加代码,不`add`到暂存区,保留在工作区 git checkout 文件名 ·撤销暂存区代码 增加任意代码,并`add`到暂存区 第一步:将暂存区代码撤销到工作区 git reset HEAD 文件名 之前的代码还有 第二步:撤销工作区代码 git checkout 文件名 cat 文件名 添加的内容消失了 文件删除 确定删除 git rm 文件名 误删处理,撤销修改 touch test.py # 创建文件 git add test.py # 暂存区 git commit -m '删除描述' # 提交到仓库 rm test11.py # 删除文件 git checkout -- 文件名 # git撤销修改 B 分支操作 添加远程库(连接远程库) 1 关联远程仓库 git remote add origin git@github.com:<github 用户名> / <github远程库的名字>.git https://github.com/create-codeless/git_demo.git git remote add origin git@github.com/create-codeless/git_demo.git 2 提交到仓库 git push -u origin master 需要登录密码 3 分支操作 git branch -a 查看所有分支 git branch -vv 查看分支关联 git branch demo 创建分支 git checkout demo 切换分支 git merge dev 合并某分支到当前分支 git branch -d dev 删除分支 git checkout -b dev 创建并切换分支 git push origin [name] 创建远程分支(本地分支push到远程) git push origin :heads/[name] 删除远程分支 此例的意思就是,我们有一个叫做 master 的分支,并且该分支是当前分支。 当你执行 git init 的时候,默认情况下 Git 就会为你创建 master 分支。 如果我们要手动创建一个分支。执行 git branch (branchname) 即可 $ git branch dev $ git branch * master dev $ ls README $ echo 'htllo world' > test.txt $ git add . $ git commit -m 'test.txt' $ ls README test.txt $ git checkout dev # 切换分支就没了 $ ls README $ git checkout master # 切换到主分支又有了 # 创建分支立马切换 主分支内容还在分支里面 删除之前的内容对主分支不影响 git checkout -b dev touch demo.txt git add . git commit -am '测试' # 分支合并 git merge dev ls # 查看 git branch -d dev # 删除分支 git branch # 查看分支 ls # 查看文件分支的文件被合并了 4 版本管理操作 $ git tag # 查看版本 $ git tag [name] # 创建版本 $ git tag -d [name] # 删除版本 $ git tag -r # 查看远程版本 $ git push origin [name] # 创建远程版本(本地版本push到远程) $ git push origin :refs/tags/[name] # 删除远程版本