zoukankan      html  css  js  c++  java
  • git基本操作

    git基本操作

    一、初始化git
        格式:git init
    
    二、工作区中状态的查看
        格式:git status
    
    三、设置用户邮箱和用户名

        格式:git config --global user.email "1352785294@qq.com"
        格式:git config --global user.name "Luosir"
    
    四、从工作区向git的暂存区添加文件
        格式:git add test.txt(文件名)
    
    五、从git暂存区提交到提交区(会把提交区的内容全部提交,所以不用加文件名)
        格式:git commit -m “自己设定的备注信息”
    

    分析图:

    六、git log和版本切换(查看git的日志信息)

    commit:commit id
    Author:作者
    Date:提交日期

    若觉得打印日志信息过多,简化:
    格式:git log --pretty=oneline

    回退版本:

    1. 例1:回退到第一个版本(通过commit id回退)
      格式:git reset --hard (commit id)
      

    1. 例2:直接回退到上个版本
      格式:git reset --hard HEAD^   回退到当前版本的上个版本
      格式:git reset --hard HEAD^^  回退到当前版本的上上个版本
      

    如果进行版本回退之后,发现最新commit id没有了,可以使用git reflog

        格式:git reflog    进行所有的commit id的查询
    

    如图:

    七、工作区暂存区和提交区
    • 撤销工作区的修改操作
      格式:git checkout -- (test.txt)文件名    文件中的内容会被撤销掉
      
    • 撤销已在暂存区的内容(使用了git add 命令之后后悔了)
    1. 第一步:回到提交区的最新版本
      格式:git reset HEAD (test.txt)文件名
      
    2. 第二步:撤销工作区的内容(回退到刚刚保存的阶段)
      格式:git checkout -- (test.txt)文件名    把工作区的内容清空
      
    八、分支
    • Master分支指向的是主分支提交的commit id,头指针指向的是我们的当前分支最新的commit id。
    1. 在主分支Master上切出一个开发分支
      格式:git checkout -b (dev_luo)分支名   创建一个分支
      

      此刻的操作都会在新的分支上进行

    2. 查看分支情况(可以看到当前所处的分支(*号表示当前分支))
      格式:git branch
      

    1. 切换分支
      格式:git checkout (master)分支
      

    1. 删除分支
      格式:git branch -d (dev_luo)分支名
      


      只能强制性的删除该分支(没有合并):改为 -D 命令

    九、合并分支和冲突解决

    主分支Master我们不会去动,只会用于版本的发布。
    各自在自己的分支开发完成之后,需要将开发的内容合并到主分支上,这就叫做merge。

    例1:有一个新的开发人员 dev_zhang

    1. 第一步:添加新分支
      git checkout -b dev_zhang
      
    2. 第二步:进行文件的修改并提交
      git add (文件名)
      git commit -m "备注信息"
      
    3. 第三步:合并分支
      git checkout (master)分支   切换到主分支
      git merge dev_zhang
      
    4. 第四步:删除新分支
      git branch -d dev_zhang   此处已经合并,所以可以删除
      

    例2:有两个开发人员合作开发一个项目,并负责不同的模块,此时Master分支作为一个版本的发布,不应该直接在上面开发

    1. 第一步:加入两个新分支
      git checkout -b dev_luo
      git checkout -b dev_li
      
    2. 第二步:进行小罗文件的修改并提交(该步完成之后就在原来的Master基础上多出一个分支)
      git add (test.txt)文件名
      git commit -m "小罗完成了商品管理模块"
      
    3. 第三步:回到Master分支
      git checkout master
      
    4. 第四步:进行小李文件的修改并提交(该步完成之后就在原来的Master基础上多出一个分支)
      git add (test.txt)
      git commit -m "小李完成了商品管理模块"
      
    5. 第五步:合并分支
      a. 回到Master分支

      git checkout master
      

      b. 合并小罗分支

      git merge dev_luo
      

      c.合并小李分支

      git merge dev_li
      

      此时会发生冲突

      解决方法
      解:需要手动解决冲突,修改文件并且再去add,commit的操作

    6. 删除分支
      git branch -d dev_luo
      git branch -d dev_li
      
    十、git config 和配置别名
        格式:git config -l   查看所有的配置信息
        格式:git config --global -e   编辑全局级别的内容信息
    

    • 这里的所有信息实际上都是整合出来的(仓库级别、全局级别、系统级别)
      格式:git config --global --add user.name luosir   增加用户名
      格式:git config --global --unset user.name    删除用户名
      
    • git config 还可以配置git的命令
      例1:用 git st 来表示查看用户状态

      格式:git config --global alias.st status
      

    例2:用 git one 来代替 git log --pretty=oneline

        格式:git config --global alias.one log --pretty=oneline
    

    十一、打标签和忽略文件
    一、 标签(给 commit id 起一个别名)
    1. 打上标签
      commit id 不容易记住,能不能用一种独特的方式去记住每一个版本

      格式:git tag      查看有哪些标签
      格式:git tag v3   给当前最新的版本commit id 打上v3这个标签
      格式:git tag v2 (以前的commit id)   给以前的版本commit id 打上v2这个标签
      
    2. 跳转标签
      格式:git reset --hard v2(标签)   跳转到标签v2版本
      
    3. 删除标签
      格式:git tag -d v2(标签)
      
    二、 忽略文件

    希望这个文件不要被 git 管理起来

    1. 第一步:创建一个( .gitignore)文件并写入想要被忽略管理的文件类型
      格式:vi .gitignore
      

    2. 第二步:提交( .gitignore)文件
      格式:git add   和   git commit
      
    十二、本地仓库和远程仓库
    • 本地仓库:工作区
    • 远程仓库:
      a. 一台公共的电脑
      b. GitHub(国外的远程仓库)
      c. 码云(国内的远程仓库)

    这些远程仓库如果不交一些费用,账号上的内容都是公开的

    解决方法

        搭建自己一个私有的仓库,让别人不可见 (Gitlab)
    
    十三、操作远程仓库和本地仓库

    push、 pull 和 clone

    1. 第一步:在 GitHub 上创建一个repository(仓库)
    2. 第二步:设置关联或取消关联
      格式:git remote add origin (远程仓库的地址)   让本地仓库和远程仓库关联
      格式:git remote rm origin   取消本地仓库和远程仓库的关联
      格式:git remote -v   查看关联信息
      

    3. 第三步:推送仓库内容
      格式:git push -u origin master
      

      没有权限

    解决方法(需要添加权限)

    a. 需要在本地中生成一个 ssh key

        格式:ssh-keygen -t rsa -C "自己注册的邮箱"
    

    b. 把这个key告诉 GitHub/码云

    1. 第四步:解决权限问题后再次推送
      格式:git push -u origin master
      

    如果在其他分支进行了修改,则需要进行分支的合并或者指定推送的分支:

        格式:git push -u origin dev_luo(其他分支)
    

    克隆(clone)
    例:新来的一个成员小李需要进行一个开发

    a. 在本地建立一个工作区(xiaoli)

    b. 克隆操作(前提是 sshkey 也要完成添加)

        格式:git clone (远程仓库地址)
    


    在(xiaoli)这个文件夹下输入命令

    两个人同时开发时,当远程仓库内容和本地仓库内容不一致,需要先 git pull 把远程仓库的内容拉下来,然后手动解决这个冲突(手动修改文件内容),最后在提交并上传

    <wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

  • 相关阅读:
    意法半导体STM32MP157A MPU加持,米尔科技首款ST Linux开发板MYD-YA157C评测
    基于nxp i.mx8m mini的新一代高性价比核心板之王
    Spring IoC容器-ApplicationContext
    XML文档
    Spring资源访问
    Spring框架简介
    SpringBoot整合RabbitMQ
    发布订阅模式
    主题模式
    RabbitMQ Work Queues(工作队列)
  • 原文地址:https://www.cnblogs.com/luosir520/p/11446636.html
Copyright © 2011-2022 走看看