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

原文地址:https://www.cnblogs.com/xkf97/p/13792389.html