zoukankan      html  css  js  c++  java
  • Git的使用

    场景一:Git本地库的基本用法

    初始化本地版本库

    方式一:在vscode中使用打开工作区文件夹,然后用快捷键打开源码管理(⇧ ⌃ G )

    方式二:使用git init指令

    image-20201005110958021

    查看当前workspace的状态

    方式一:vscode的源码管理器中查看,绿色的U表示该文件未被版本库跟踪,即未添加到暂存区中,绿色的A表示工作区与暂存区中内容一致,红色的M表示工作区与暂存区内容不同,有修改

    方式二:通过git status指令查看

    image-20201005111925683

    暂存更改的文件

    方式一:在vscode中点击文件后的加号

    方式二:终端命令

    1. 添加到暂存区
    git add FILES # 指定文件或文件列表
    git add .     # 将当前目录提交到暂存区
    
    1. 将版本库同步到暂存区
    git reset HEAD FILES # 指定文件或文件列表
    git reset HEAD
    
    1. 将暂存区同步到工作区
    git checkout -- FILES # 不要忘记“--” ,不写就把FILES当分支名了
    git checkout .
    

    将暂存区中的文件提交到仓库

    方式一:在vscode中点击✔️号,并附上提交日志

    方式二:终端命令

    git commit -m "wrote a commit log infro"
    

    注意每一次的提交应该是有重大的变化

    git log        # 查看当前HEAD之前的版本
    git reflog     # 查看当前HEAD之前和之后的版本
    git reset —hard HEAD^  # 返回到上个版本
    git reset —hard HEAD~100   # 返回到上一百个版本
    git reset —hard 128个字符的commit-id
    git reset —hard 简写为commit-id的头几个字符
    

    image-20201008144705458

    场景二:Git远程版本库的基本用法

    创建远程仓库

    image-20201008151238468

    关联远程库

    git remote add origin git@gitee.com:codefish99/git-test.git 
    

    提交到远程库

    首次提交使用-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

    image-20201008152159621

    场景三:团队项目中的分叉合作

    创建分支

    # 创建一个新分支,并切换到新分支上
    git checkot -b <name> 
    git switch -c <name>
    
    # 相当于以下两条命令
    git branch dev
    git switch dev
    

    切换分支

    git checkout <name>
    git switch <name>
    

    合并分支

    git merge <name> # 将某个分支合并到当前分支上
    git merge --no-ff <name> # 关闭快进式合并
    

    快进式合并:

    image-20201009200747430

    dev分支在第三次提交后,版本号为d2ccf81,此时将其快进式合并到master上,反应为直接将master指向dev,因为版本号未变

    非快进式合并:

    image-20201009201202895

    dev分支在第四次提交后,版本号为c3486cd,此时关闭快进式合并,合并到master分支,创建了新的版本号,并且此时HEAD和master都指向新版本,dev仍然指向上一次的提交中

    删除分支

    git branch -d <name>
    

    场景四:Git Rebase

    目的:开发者的提交要尽量干净、简单。开发者要把自己的代码修改按照功能拆分成一个个相对独立的提交,一个提交对应一个功能点,而且要在对应的 commit log message 里面描述清楚。

    git rebase -i  [startpoint]  [endpoint]
    

    如果不指定endpoint,则默认为当前HEAD,表示重新整理startpoint 到 endpoint 区间内的提交

    image-20201010135910563

    此时去掉B记录,这时会提示冲突,打开冲突文件

    image-20201010140345911

    选择要保存的更改,保存后提交到暂存区,然后执行以下命令完成rebase

    git rebase --continue
    

    这时在log中已经没有B记录了

    image-20201010141258899

    心得体会

    作为一个小白初次接触git,体会到了git版本控制功能的强大,但是还是要在实践中不断巩固对Git的运用。感谢孟宁老师的指导

    参考文献

    https://mp.weixin.qq.com/s/Km5KuXPETvG0wCGHrvj9Vg

    https://www.liaoxuefeng.com/wiki/896043488029600/1216289527823648

  • 相关阅读:
    自定义 Spring Boot 安全组件 Security 的用户名和密码的方法
    禁用 Spring Boot 中引入安全组件 spring-boot-starter-security 的方法
    CentOS 7 上配置 maven 的环境变量
    CentOS 7 上配置 JDK1.8 的环境变量
    CentOS 7 上安装 xz utils 解压缩工具
    常用 Maven 配置
    接口统计模板
    为什么领域模型对于架构师如此重要? https://blog.csdn.net/qq_40741855/article/details/84835212
    什么是实体关系图(ERD)? 转
    彻底明白Flink系统学习5:window、Linux本地安装Flink
  • 原文地址:https://www.cnblogs.com/xkf97/p/13792389.html
Copyright © 2011-2022 走看看