git版本控制工具运用

154 阅读5分钟

版本控制工具git

两种方式:

可视化界面操作

命令行操作

工作原理:

版本控制的概念:操作内容可以是代码,也可以是文档;

记录它们的每次更爱提交的时间,谁提交的,提交的内容。。。

分类:git是分布式版本控制工具

svn是集中式版本控制工具。

分区: 当一个文件夹被git管理之后,当前文件夹分为三个区域。

  1. 工作区

版本库 :

  1. 暂存区,
  2. 历史区

推送一个项目到远程仓库

  • 初始化用户名和邮箱
  $ git config --global user.name  "你的名字"
  $ git config --global user.email "你的邮箱地址"
  • 配置密钥对:生成公钥和私钥,用于上传代码时的安全验证

    git bash里执行命令ssh-keygen 一路回车,就可以生成密钥对,默认密钥对是存放在(/c/Users/[主机用户名]/.ssh/) 。这个目录下有两个文件, .pub就是公钥,另外一个是私钥,这两个文件千万不要动!!!

    到线上(gitee或其他平台)打开设置->安全设置->ssh公钥,把本地的公钥文件全选复制进来,输入登录密码,就配置成功了。

  • 将本地仓库和线上仓库建立关联:git remote add origin [线上仓库的SSH地址]

    如果在执行这句话的时候报错:fatal: remote origin already exists.

    那么就先执行 git remote rm origin

    再重新执行 git remote add origin [线上仓库的SSH地址]

  • 添加内容到暂存区

    git add --all 添加所有

    git add 文件名/文件夹名

  • 添加暂存区到历史区

    git commit -m "提示信息"
    
  • 代码推送到远程 git push origin master

版本管理

  1. 把已经放在暂存区的内容在拉回到工作区
# 拉回暂存区的 index.txt 文件
git reset HEAD -- index.txt
​
# 拉回暂存区的 ceshi 文件夹
git reset HEAD -- ceshi/
​
# 拉回暂存区的 所有文件
git reset HEAD -- .

注意:-- 两边都有空格,拉回所有文件的时候有个 .

  1. 历史版本回退
# 查看历史版本
git log
commit   8baf3f1b6fade6d0ff935207379cffdc9c05a6e8
Author: ...
Date: ...
这是一次提交测试

方法一:这里commit后面的字符串即为版本号,我们可以使用 git reset --hard 版本编号 进行历史回退

# 回退到第一次提交的版本
git reset --hard 8baf3f1b6fade6d0ff935207379cffdc9c05a6e8
# 回退到第二次提交的版本
git reset --hard fa7bc9650fcae5c07f31f834f2d840cb5d8c0dc3

方法二: git reset --hard HEAD ^ ( ^ 表示回到上一个版本,如果需要回退到上上个版本的话,将HEAD改成HEAD^, 以此类推。那如果要回退到前100个版本,这种方法肯定不方便,我们可以使用简便命令操作:git reset –hard HEAD~100 );

分支管理

git分支,就是我们自己把我们的整个文件夹分成一个一个独立的区域,比如我在开发 登录 功能的时候,可以放在 login 分支下进行开发;开发 列表 功能的时候,可以放在 list 分支下进行开发,大家互不干扰,每一个功能都是一个独立的功能分支,这样开发就会好很多。

git在初始化的时候,会自动生成一个分支,叫做 master,是表示主要分支的意思,我们就可以自己基于master开辟出很多独立分支

  • 开辟分支

    # 开辟一个 login 分支
    $ git branch login
    
  • 查看分支

    # 查看当前分支情况
    $ git branch
    
  • 切换分支

    # 切换到 login 分支
    $ git checkout login
    
  • 合并分支

    # 把 login 的内容合并到自己的分支
    $ git merge login
    
  • 删除分支 git branch -d 分支名称 来删除

    # 先切换到别的分支
    $ git checkout master
    ​
    # 删除 login 分支
    $ git branch -d login
    

GIT克隆

  • git 克隆式只把远程仓库里面的内容克隆一份到本地
  • 可以克隆别人的公开的仓库,也可以克隆自己的仓库

第一次克隆命令: git clone 远程仓库地址

之后只需要 git pull

误删文件复原

通过git进行代码管理的项目,如果在本地编辑的过程中误删了某些文件或者文件夹,可以通过git操作来复原。

Step 1: git status (查看删除文件)

Step 2:git reset HEAD [ 被删除的文件或文件夹 ] (版本回退)

Step 3:git checkout [ 被删除的文件或文件夹 ] (恢复文件)

冲突解决

git冲突是指在我们的上传过程中,本地的版本和远程的版本不一致导致的,这个时候只要先使用 git pull 拉取回来,让本地和远程保持一致,然后再从新上传就好了,但是 git pull 相对不安全,因为会自动和本地内容合并,我们也可以选择使用 git fetch

# 使用 fetch 获取远程最新信息并开辟一个临时分支
$ git fetch origin master:tmp
​
# 将当前分支和临时分支的内容进行对比
$ git diff tmp
​
# 再选择合并分支内容
$ git merge tmp

git常见命令

git init    初始化仓库
git config    配置用户信息
git remote add origin [线上仓库地址]    新增远程仓库的关联
git remote rm origin    删除远程仓库的关联
git add    添加到暂存区
git commit -m '[本次提交的备注信息]'    代码提交(每一次commit都会有一个新的版本号)
git push origin [分支名]    推送到远程仓库
git status    查看当前仓库的状态
git log    查看日志(每一个commit在这里都能查看到,而且commit后面的随机字符串就是版本号),按字母q 退出log
git reset --hard [要回退的版本号]    回退到之前的某一个版本
git clone [线上仓库地址]    把线上仓库代码克隆到本地
git pull origin [分支名]    在已有的仓库基础上拉取某分支最新的线上代码,拉取之后直接合并
git fetch origin [分支名]    在已有的仓库基础上拉取某分支最新的线上代码,拉取之后由用户决定是否合并
git branch    查看分支
git branch newBranch    基于当前分支创建newBranch分支
git branch -d myBranch    删除myBranch分支
git diff tmp    查看当前分支和tmp分支的区别
git merge tmp    将tmp分支合并到当前分支