Git使用心得体会

分布式版本控制系统Git

无论是文章写作还是项目开发,都会涉及到版本的更迭。版本控制系统的工作就是将对象的版本历史演变进行记录和维护,协调各个版本,对新版本的生成起到积极作用。Git 是目前世界上最为先进,最受欢迎的版本控制系统。

本文参考https://mp.weixin.qq.com/s/Km5KuXPETvG0wCGHrvj9Vg,通过VSCode平台,练习并熟悉Git的操作。

 

Git 本地版本库的基本用法

在VSCode中打开项目文件(新建文件夹test,包含空文件夹test1,test2以及空白的readme.md),进入源代码管理

首次打开的项目文件需要一个本地git存储库,可以通过直接点击初始化储存库或是在项目根目录下使用命令行指令 git init 来建立。

 

建立git存储库之后,会在项目根目录中出现一个.git文件夹(默认隐藏):

分别在test1,test2文件夹中新建文件v1与v2。

进入源代码管理可以看到与上一个版本比项目的所有更改,即当前 workspace 的状态,比如如下图中源代码管理中以绿色U标记的文件为没有添加到版本库进行跟踪的文件(Untracked files)、以橙色M标记的文件为已修改(Modified)未提交的文件(Changes not staged for commit):

   文件状态为U,点击文件后面加号或者使用命令行 git add 可以将更改暂存,暂存更改可以通过点击减号清除更改:

在readme中添加内容,并暂存:

 当暂存区有内容时,可以通过点击源代码管理栏右上角的 “√” 来将暂存的文件提交到库中,提交时会强制填写日志。也可以通过命令行 git commit -m+日志的方式提交。

通过命令行 git log 可以看到提交记录: 

依次对v1,v2进行修改及提交,查看提交记录:

HEAD通常指向最新版本,但也可以回到过去:

git reset --hard HEAD^
git reset --hard HEAD~100

git reflog # 当HEAD回退之后,可以查看当前HEAD之后的提交记录
git reset --hard commit-id #指定id版本回退

这一系列指令可以让HEAD回退到任意一个版本,比如HEAD^表示HEAD的前一个版本、HEAD^^表示HEAD的前两个版本、HEAD~100表示HEAD的前100个版本,也可以用版本号字符串来指定任意一个版本。

两次使用HEAD^分别退回到第二次和第一次提交。

 

Git 远程版本库的基本用

 在GitHub上搭建一个库 git:

 

在VSCode上点击克隆存储库并输入对应URL,或使用命令行指令 git clone 关联:

通过git remote指令查看远程存储库的默认名称:

 

克隆之后的远程同步主要通过两条命令实现:

git pull #拉取远程仓库里的提交项到本地仓库并合并到当前分支
git push #将提交项推送到远程仓库  
在远程仓库修改readme.md,git pull,本地仓库readme.md修改:

在本地修改提交至库,git push,远程仓库readme.md修改:

   

git log查看提交日志:

团队项目中的分叉合并

由于实际团队项目中的工作提交在时间线上是并行的,为了避免出现push冲突且易于管控,就需要引入分支。项目开发人员将主体代码从远程仓库克隆到本地仓库后,为自己的工作创建一个分支,在自己的分支上完成功能模块开发,然后将该分支合并到主分支。

分支有关命令

git checkout -b mybranch        #创建并转到新分支mybranch
git checkout branchname         #转到分支branchname
git merge branchname          #将branchname分支合并到当前主分支 
git merge --no -ff branchname    #不使用快进式合并将branchname分支合并到当前主分支 

创建分支 branch1,创建的同时定位到此分支,*代表当前工作区处于branch1分支:

 pull远程仓库最新版本之后,在branch1分支对readme.md进行修改,切换回主分支,发现无变化:

 merge合并branch1分支,主分支readme.md内容变化:

 

将本地仓库改动push到远程仓库,在远程仓库的分支网络图查看分支合并:

Git Rebase

主分支上进行一次readme的修改,记录为add C;在分支branch1上进行两次修改,记录为add A与 add B。

输入git rebase -i head^^,弹出交互式的界面让用户编辑完成合并操作

 对于分支的两次提交,尝试将其中多余的一次 "add B" 删除。

将语句按照对应的命令语句修改,使用drop与reword删改日志,wq保存退出,保存并关闭文件时,Git将根据你的指令执行rebase消除无意义的提交,git log检查对应的日志修改:

 

 心得体会

Git是一种高效便捷的版本控制系统,熟练掌握Git,对以后的项目开发工作十分重要。初次接触Git,走了很多弯路,希望能在以后的使用中多多熟悉。

posted @ 2020-10-05 14:08  Fibona  阅读(297)  评论(0)    收藏  举报