简介

git是一个工具,用于管理代码版本的工具。

解决的问题:

  • 开发版本

    • 功能A ===> V1.0
    • 功能A + B ===> V2.0
    • 功能C ===> V3.0
    • 功能A + C ===> V4.0
  • 代码合并
  • 。。。

仓库:被git工具管理的文件夹

  • 本地仓库:本地计算机硬盘上的文件被git管理
  • 将文件夹变成仓库
git init

被存储的代码分为3个状态:

工作区

暂存区

历史/版本区

  1. 查看仓库状态
git status
  1. 将工作区的代码放在暂存区
git add .
ait add 文件名称或文件夹名称
  1. 将暂存区代码拿回工作区
git reset .
git reset 文件名称或文件夹名称
  1. 将暂存区代码放在历史/版本区
git commit -m "版本描述"

将暂存区内容全部放在历史区

  1. 查看所有的分支

    git branch 
  2. 创建分支

    git branch 新的分支名称

    创建分支的时候,默认会将master分支的代码给新的分支上复制一份

  3. 切换当前分支

    git checkout 分支名 
  4. 创建并切换到新的分支

    git checkout -b 新的分支名
  5. 合并分支

    git merge 被合并的分支
  6. 删除分支

    git branch -D 分支名
  7. 查看所有版本

    git log 
  8. 切换版本

    git reset --hard HEAD^ # 切换到上一个版本,^1个表示回退1个版本;2个^表示回退两个版本
    git reset --hard 版本号 # 切换到指定的版本,版本号只要用前7位就ok

    找版本号,可以从.git隐藏文件夹中,找到:.git/logs/HEAD

  9. 设置提交的用户名和邮箱

    git config --global user.name '用户名'
    git config --global user.email '邮箱'
  10. 远程仓库: 远程服务器上文件夹被git管理
    借助github/gitee/gitlab服务器
    github:由微软收购的,服务器在国外,不方便访问。个人仓库免费的,默认是私有的;企业仓库都是私有的,仓库安全机制由github提供。

gitee:由国内开发的,服务器在国内,方便访问。个人仓库是免费的;企业仓库是私有的,仓库的安全机制由gitee提供。

gitlab:由乌克兰的一个程序员开发的,服务器在国外,但是国内有cdn加速,国内打开也方便;企业版没有提供,需要我们手动创建,所有的安全机制由自己把控。

  • 创建远程仓库克隆到本地

    1. 将远程仓库克隆到本地

      git clone 仓库地址
      git clone 仓库地址 自定义文件夹名称
    2. 将本地仓库内容推送到远程

      git push
  • 创建仓库不选择初始化

    1. 在本地创建文件
    2. 初始化成仓库
    3. 在本地仓库中最少有一个版本
    4. 跟远程仓库建立连接

      git remote add 变量名 远程仓库地址
    5. 推送到远程

      git push -u 变量名 master
    6. 后续推送到远程

      git push
  • 冲突解决
    冲突的原因:远程仓库每个版本的形成,都必须基于上一个版本形成的,不可以从版本1直接生成版本3

解决原理:先将远程仓库代码跟本地仓库同步一份,远程版本是多少,先在本地形成多少,在原本的基础上再次推动形成新的版本。

git pull # 将远程仓库的内容同步到本地一份
git push

执行 git pull 的时候,命令行窗口中会打开一个文件,我们需要通过:q命令将文件关闭。

  • 夸分支操作
    先将master克隆到本地,在本地创建跟远程分支名相同的分支,在新的分支上进行开发,推送.... 用:

    git push --set-upstream origin 分支名

    后续推送:

    git push

    也可以直接克隆远程指定的分支:

    git clone -b 指定的分支名 仓库地址

    给本地同步远程指定的分支代码:

    git pull 仓库地址 分支名

    通常是在本地创建一个跟远程相同名字的分支名进行操作。
    文件操作:
    git工具默认提供了两个特殊文件:

  • .gitignore: 用来设置黑名单。将黑名单文件的路径放在当前文件中即可。
  • .gitkeep:git是不会管理空文件夹的,如果希望空文件夹被管理,git规定必须在空文件夹中新建.gitkeep文件。

shh提交:

创建公钥秘钥:

检测当前计算机是否有公钥和秘钥:如果没有C:\Users\Admin.ssh这个文件夹或者文件夹中只有known_hosts文件,表示我们没有公钥和秘钥。

ssh-keygen -t rsa -C "自己的邮箱"

<<<<<<< HEAD 公钥需要设置在自己账号的公钥管理中。

有了公钥和秘钥后,我们就可以使用仓库的ssh链接进行推送了。

=======


道友
1 声望0 粉丝