• 第一节:Git 安装配置及常用命令


    Git 介绍

    记录每次代码的变更,以便将来查阅特定版本的修改情况

    完成多人协作(必须配合远程仓库)

    分类:

    • 集中式(SVN、CVS、…)

      集中式版本管理软件的特点是:代码的版本集中到一个服务器上。问题是,如果没有网络或者服务器崩溃,将无法进行版本管理。

    • 分布式(Git、HG、bazaar、…)

      分布式版本管理软件的特点是,代码的版本分布到每个计算机上。99%的操作都是在自己的计算机上完成。

    Git 下载

    官网下载地址:https://git-scm.com

    Git 的配置

    用户名,理论上随意配置,但最好配置成和你的 码云、Github 相同的用户名邮箱,理论上随意配置,但最好配置成和你的 码云、Github 相同的邮箱

    1. windows 用户,在任何文件夹空白处,鼠标右键,打开 “Git Bash Here”;Mac 用户打开终端窗口

    2. 在出现的终端窗口中,输入 git config --global user.name "xxx" ,回车执行该命令,用以配置用户名

      git config --global user.name "xxx"
      
      • 1
    3. 在出现的终端窗口中,输入 git config --global user.email "xxx" ,回车执行该命令,用以配置邮箱

      git config --global user.email "xxx"
      
      • 1
    4. 再次输入,显示当前的用户名和邮箱,配置成功。

      20210422091157175


    初始化本地仓库

    初始化本地仓库后,项目才能被跟踪。

    使用:

    1. 在项目文件夹下打开 Git
    2. 输入 git init
    3. 在本地项目会有一个 .git 的隐藏文件夹,说明跟踪成功。
    git init
    
    • 1

    20210422091849372


    Git 记录代码的更变

    初始化 git 之后,记录每一次变更。

    Git 记录变更

    每一次想要记录时,都要进行记录更变。

    注意:add . 中间有空格

    git add .
    git commit -m '要记录的名字'
    
    • 1
    • 2

    查看变更记录

    git log
    
    • 1

    单行查看简略版日志

    git log --oneline
    
    • 1

    查看最近 n 次提交

    git log -n
    
    • 1

    可以查看到当前版本之后的日志

    git log --reflog
    
    • 1
    • 也可以这样配合使用
    git log --reflog --oneline
    
    • 1

    git log 更多选项参见官网: https://git-scm.com/docs/git-log

    20210422095447608

    如果更变日志比较多,后面会出现代码输入提示,以 : 开头,

    • 按 ↓ 键,查看剩余日志。
    • 按 q 键,退出。

    20210422103725949


    回到历史版本

    可以回到任意历史版本。

    • 版本号是40位长的一个字符串,它保证每个版本的版本号是唯一的。
    • 实际使用中,可以只使用版本号的前几位即可,只要不重复就可以用。
    git reset --hard 版本号
    
    • 1

    20210422103017112


    查看文件状态

    命令用于查看在你上次提交之后是否有对文件进行再次修改。

    git status
    
    • 1
    • 可以使用简短的输出,只显示文件

      git status -s
      
      • 1

    Git 三个区域

    工作区 => add => 暂存区 => commit => 仓库区

    工作区

    代码文件夹 - 写代码的地方。

    暂存区

    代码更变后 - 暂时存放的区域。

    仓库

    只有记录到本地仓库才能形成一个版本,代码才真正不会丢失。


    添加提交命令

    • 将工作区的改动添加到暂存区

      • 将工作区全部改动添加到暂存区

        git add .
        
        • 1
      • 指定文件添加到暂存区

        git add <file>
        
        • 1
    • 将暂存区的文件提交到仓库

      • 全部提交到本地仓库,形成一个版本

        git commit -m
        
        • 1
      • 指定文件提交到本地仓库,形成一个版本

        git commit <file> -m
        
        • 1
    • 直接将工作区的改动提交到本地仓库

      将工作区的改动更新到暂存区,同时提交到仓库。

      注意:不能提交新文件,对新增的文件无效。

      git commit -a -m
      
      • 1

    撤销添加或提交

    撤销,指的是将最后一次提交的内容撤销到暂存区、工作区;或者将刚刚暂存的内容撤销到工作区。

    • 最后一次提交的内容 => 暂存区

      • 撤销指定的文件

        git reset <file>
        
        • 1
      • 撤销全部文件

        git reset .
        
        • 1
    • 暂存区 => 工作区

      • 撤销指定文件

        git checkout <file>
        
        • 1
      • 撤销全部

        git checkout .
        
        • 1
    • 最后一次提交的内容 => 暂存区/工作区(相当于重置)

      该命令后不能指定文件。

      git reset --hard
      
      • 1
    • 回到历史版本、或在历史版本中穿梭

      git reset --hard 版本号
      
      • 1

    GIT删除指定的某次版本提交

    git log  // 获取提交信息
    git rebase -i (commit-id)  // commit-id 为提交版本的 hash code
    
    • 1
    • 2

    6542684682464

    使用命令后,打开一个文件,将需要删除版本前面的pick改为drop

    894984824843864


    报错恢复

    $ git pull
    You are not currently on a branch, so I cannot use any
    'branch..merge' in your configuration file.
    Please specify which remote branch you want to use on the command
    line and try again (e.g. 'git pull  ').
    See git-pull(1) for details.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    解决办法:

    # 首先
    git checkout -b temp
    # 其次
    git checkout master
    
    • 1
    • 2
    • 3
    • 4

    恢复到 master repository 的状态,然后就可以 pull

  • 相关阅读:
    Git使用说明,持续更新
    CentOS7.9 离线安装 PostgreSQL9.5 数据库
    MySQL报错:Duplicate entry ‘xxx‘ for key ‘xxx‘
    二叉树习题-小记
    Python独具特色的语法规范点梳理
    centos7 探测某个tcp端口是否在监听
    Python:让我教你如何让电脑永不息屏
    用java语言写一个AES算法,使用AES(CBC模式)对数据进行加密或解密。加解密用到的密钥(Key)和密钥偏移量(IV),代码实例类编写。
    JavaScript 的发展历史
    太绝了!NB!阿里第九版Java系统架构师+应用架构师面试突击宝典大全
  • 原文地址:https://blog.csdn.net/qq_41952539/article/details/127634831