GIT 项目管理工具

概念理解

1 说明: git 是分布式版本控制系统

2 优点: 
  1 每个人的电脑上都可以是一个完整的版本库, 适合分布式开发
  2 公共服务器压力和数据量都不会太大, 速度快灵活
  3 可以离线工作

3 缺点: 
  1 操作复杂
  2 代码保密性较差  (因为是上传到别人的服务器上存储的)

4 SVN 的优缺点:
  1 优点: 操作简单 / 代码保密性较强
  2 缺点: 需要单独搭建SVN服务器 / 不能离线工作 

5 相关理解
  1 项目根目录下, 要有 git的本地仓库   // git init
  2 初始化本地仓库, 会当前文件夹内分出3个区域  (工作区 -- 暂存区 -- 本地仓库)
  3 上传项目的时候, 注意忽略 node_modules 包
  4 工作职责: 
    1 拿到项目文件 -> 更新我们模块的代码 -> 提交到本地仓库 -> push
    2 更新我们负责的模块:  创建分支 --> 写代码 --> 合并分支 --> 提交到本地仓库  "本次修改了哪些内容"
    3 push 到远程仓库 (注意查看是否存在版本冲突)

6 git 忽略文件的规则 (.gitignore)
    1 # hhh -- 注释
    2 hh.js -- 忽略该文件, 每个文件占一行
    3 hh/ -- 忽略该目录下的所有文件, 每个目录占一行
    4 *.txt -- 忽略所有以 txt结尾的文件
    5 hh/*.txt -- 忽略hh目录下的所有 -- 以txt结尾的文件 */
    6 hh/hh* -- 忽略hh目录下的所有 -- 以hh开头的文件

7 git 基础配置
-----------------------------------------------------------------------------------------
  1 设置当前操作 git的用户名+邮箱  (用于提交到远程仓库的时候, 别人知道是谁提交的)
    1 查看
      git config --global user.name    //输出你的 git名称 
      git config --global user.email    //输出你的 git验证邮箱

    2 设置
      git config --global user.name 'zhangwei'     //配置 git名称, 重新赋值就是修改
      git config --global user.email '[email protected]'     //配置 git验证邮箱

    3 查看配置列表
      git config --list
-----------------------------------------------------------------------------------------

8 必要知识点
-----------------------------------------------------------------------------------------
1 一个本地仓库可以关联多个远程仓库
-----------------------------------------------------------------------------------------

9 注意事项 (重点)
-----------------------------------------------------------------------------------------
1 本地代码上传到远程仓库时, 习惯先执行 git pull, 防止直接覆盖别人的代码
-----------------------------------------------------------------------------------------

基础操作

1 本地基础操作
-----------------------------------------------------------------------------------------
1 初始化本地仓库: git init 
2 把当前目录下的全部或某个文件提交到暂存区: git add .
3 提交文件到本地仓库: git commit -m '本次提交的注释文本'(形成一次版本)
4 查看当前目录下的状态信息: git status  (状态信息提示如下)
  1 readme.md()    //新建了一个文件
  2 new file:   readme.md(绿)   //新文件 readme.md 已经添加在了暂存区
  3 modified:   readme.md()   //readme.md 文件在添加到暂存区或本地仓库之后, 又有变动了, 需再次重新添加
  4 modified:   readme.md(绿)  //readme.md 文件改动之后, 且重新添加到了暂存区
-----------------------------------------------------------------------------------------

2 远程仓库相关操作
-----------------------------------------------------------------------------------------
1 本地仓库与远程仓库的并联  (并联了之后才可以执行其他操作)
  1 并联: git remote add hh "仓库地址"   //hh用来指代, 该地址对应远程仓库
  2 解除: git remote rm hh   //解除hh指代的远程仓库, 和本地仓库的并联
  3 查看: git remote -v   //查看本地仓库关联的所有远程仓库, 信息如下 ↓
    origin  https://github.com/635031145/hh.git (fetch)   // 本地仓库拉取代码对应的的远程仓库地址
    origin  https://github.com/635031145/hh.git (push)    // 本地仓库提交代码对应的的远程仓库地址
    
2 把从本地仓库提交到远程仓库
  1 第一次提交: git push -u hh1 master (设置默认提交的远程仓库及其分支; 且执行提交操作, 可能需要帐号密码)
  2 之后的提交: git push

3 获取远程仓库的数据 (pull 前先把工作区的代码提交到本地仓库)
  1 git pull   //把远程最新版本代码拉取到本地; 且合并(merge)到本地; 会直接改变我们工作区的内容
  2 git pull hh1 分支名     //更新某个远程分支到本地
  3 git clone 远程仓库地址   //把整个版本仓库克隆到本地指定目录下 (包含.git 文件); 
  4 如果不需要 .git, 直接下载一个压缩包就可以了 (具体获取代码, 用哪种操作, 还需要详细了解)
  5 git fetch   //相当于是从远程获取最新到本地, 不会自动合并(merge)   (不怎么用)
-----------------------------------------------------------------------------------------

3 本地分支操作
-----------------------------------------------------------------------------------------
1 分支理解
  1 创建分支: 就相当于你拷贝了一份项目文件, 自由修改, 优化之后再合并到主分支上
  2 切换分支: 也就是切换多个项目文件的备份
  3 合并分支: 就是把我们完善的代码, 直接去覆盖主分支的内容, 形成一个新的版本

2 代码操作
    1 查看分支: git branch    //当前分支前标识: * 和 绿色
    2 创建分支: git branch <name>      //默认拷贝当前所在分支的项目文件
    3 切换分支: git checkout <name>    //我们工作区的文件也会跟着切换
    4 合并分支: git merge <name>       //合并某分支到当前分支, 也就是让指定分支覆盖当前分支内容
    5 删除分支: git branch -d <name>

3 操作注意
    1 分支切换之前, 要先把工作区保存到本地仓库;   
        //否则当前分支的修改不会被保存;  且会直接把内容合并到要切换的分支上去
    2 主分支上的工作区与本地仓库没有同步时, 是不允许切换分支的
    3 要保证当前分支, 工作区与本地仓库同步, 才可以合并分支
    4 合并出现冲突问题的时候, 解决冲突之后, 要习惯重新提交本地仓库
    5 push 前 pull, 发现冲突, 处理有冲突的地方, 然后再把变更后的代码提交本地仓库, 再提交到远程仓库

4 知识点
    1 注意尽量不要动主分支上的内容, master 分支代码是要发布到正式生产环境的
    2 (master |MERGING) 表示当前分支处于正在合并的状态
    3 也可以把当前非主分支, 发到远程仓库的指定分支上(没有就自动创建);  代码: git push hh1 分支名
    4 组合操作: (创建+切换分支)  --> git checkout -b <name>      //创建并切换到分支 <name> 上
    5 本地仓库有自己的分支, 远程仓库也有自己的分支, 他们的不一样且没有关联的, 但是其作用是相似的
    6 提示信息: Already up to date.    //说明远程仓库代码没有变更;  触发场景: 根据github 是否经过, 可视化或其他项目人员更改, 判断是否变更
-----------------------------------------------------------------------------------------

git辅助命令

1 查看本地操作日志
	1 git log
        commit 84aebb4917e54829e8857d2b0bb4432579ad555a (HEAD -> master)      //哈希值类型的版本号
        Author: zhangwei <635031145@qq.com>       //提交的人 和 邮箱
        Date:   Tue Nov 3 20:22:30 2020 +0800     //提交的时间
            第一次,  提交我的项目文件到本地仓库      //提交到本地仓库时的注释文本

    2 git reflog    //简化操作日志
        d66c764 (HEAD -> master) HEAD@{
    
    0}: commit (initial): 第一次, 提交我的项目文件到本地仓库    
        //版本号 / 当前所在版本 / 0==最新的版本 / 第一次提交项目到本地仓库的文本描述

2 查看工作区修改的具体内容  
    git diff 文件名;     //红色表示修改之前的内容;  绿色表示修改之后的内容;

3 版本回退
    作用: 本地仓库帮我们把, 每次提交的项目都保存下来了, 我们可以通过版本回退, 取到我们之前做的项目
    代码操作: 
        git reset --hard HEAD^     (表示回退到上一个版本了;  HEAD^^ == 上俩个;  HEAD^^^ ...)
        git reset --hard 191e0c7   (通过版本号, 回退到指定版本)
    注意: 工作区文件也会随之改变; 也是建议尽量保存本地之后再去回退; 分支也有属于自己的版本号

4 小黑窗常用命令操作
    cd d:    //进入相应的磁盘文件
    cd 路径  //进入指定路径文件夹
    cd ..    //返回上一层目录
    mkdir    //创建目录
    pwd      //显示当前工作目录的全路径
    touch xx    //新建xx文件
    vi xx       //编辑xx文件,按i切换到编辑模式,按esc切换到命令模式,输入冒号:wq 回车,保存并返回
    rm      //删除文件
    ls      //查看当前目录的所有文件
    clear   //清屏  Ctrl+L
    :wq     //进入编辑状态如何退出

配置 SSH

作用:  配置一下公钥, 配置好之后, 下次提交就不用输入密码了;  且提交的远程地址也要用 SSH 地址;

1 首先检查电脑是否曾经生成过私钥
  cd ~/.ssh       
  //若打开文件夹为空, 代表没有生成过密钥, 进入第二步  (~ 表示跟目录)    //或者能进入该文件夹就表示生成过私钥;
  如果已经生成过了, 想重弄一个, 在回车的时候, (y/n) --> y
  
2 生成私钥
  ssh-keygen -t rsa -C "[email protected]"     // 命令要求输入密码, 不用输, 三个回车即可
  执行成功后; 会在主目录.ssh 路径下生成两个文件:  id_rsa私钥文件; id_rsa.pub公钥文件  c/Users/DELL/.ssh/
    
3 配置公钥
  1 复制公钥内容 -->  github 头像下拉菜单  -->  Settings
         --> 左边选 SSH and GPG keys  --> New SSH key  --> Title: hh1; key: 粘贴公钥内容  --> 添加
  2 重新配置 -- 本地仓库和远程仓库关联 (使用ssh地址) --> 删除原来的 --> 添加新的

  3 添加合作者
    说明:  小明创建了一个 github 仓库, 我要和他一起去开发这个项目, 我可以克隆这个 github 仓库项目文件, 但是我不能提交阿
    操作:  当前项目下 -->  Settings  -->  Manage access  --> 邀请协作者  -->  他会收到邮件  --> 同意之后,就可以一起去提交这个项目了

猜你喜欢

转载自blog.csdn.net/weixin_46178697/article/details/113943190