Git使用心得及场景演练
一、前言
此篇博客完成了Git的基本指令操作,进行了本地和远程版本库的编辑和更新,也初步尝试了团队项目的合作。
作为一个Git的初学者,本次实践过程受益良多,十分感谢孟宁老师的文章,为我扫清了学习路上的很多障碍。
孟宁老师的文章链接:五大场景玩转 Git,只要这一篇就够了!
二、场景实现
1.场景一:Git本地版本库的基本用法
1.1初始化一个本地版本库
下载好git后进行初始化储存库的操作。打开源代码管理,点击初始化存储库按钮,一个git本地版本库就初始化完成了。

1.2查看当前 workspace 的状态
在项目目录下使用命令行执行git status命令查看Git本地版本库当前 workspace 的状态,如下图所示。

1.3暂存更改的文件
在【更改】列表里的文件上点击加号“+”即可暂存更改,对应的命令行指令为:git add FILES,是将更改的文件加入到【暂存的更改】列表里。
【暂存的更改】列表里的文件上点击减号“-”即可取消暂存更改,对应的命令行指令为:git reset HEAD FILES,是将暂存更改的文件从【暂存的更改】列表里取消,重新回到【更改】列表里。

![]()
![]()
1.4把暂存区里的文件提交到仓库
在VS Code中打开源代码管理,点击对号“√”将暂存的文件提交到仓库中,或者使用git commit命令,在提交之前会强制要求输入提交日志消息。

操作中发现需建立本地账号,使用git config --global user.name "用户名" 和git config --global user.email "用户邮箱"来进行配置。注意一旦提交到仓库,尽管也可以撤销上次提交,但是依然会在仓库里留下记录,可以通过git reflog查看当前 HEAD 之后的提交记录。
![]()
下列命令可以让HEAD回退到任意一个版本,比如HEAD^表示HEAD的前一个版本、HEAD^^表示HEAD的前两个版本、HEAD~100表示HEAD的前100个版本,也可以用版本号字符串来指定任意一个版本。

2.场景二:Git远程版本库的基本用法
2.1远程版本库的基本命令
我在GitHub新建了一个仓库来进行基本的克隆操作,之后使用源代码管理界面上的克隆存储库按钮,然后输入git clone的指令将远程的版本库克隆到了本地。
此后可以参照上面场景一的本地版本库基本用法,查看工作区状态(git status)、暂存更改的文件(git add)、把暂存区提交到仓库(git commit)、以及回到过去、回到未来(git reset --hard / git log / git reflog)等本地本地版本控制的基本操作。



在本地进行修改后使用git push命令将本地修改推送到远程服务器以及git pull命令将远程服务器的修改拉到本地。
由下图可知,不管是在本地端还是远程端做过的更改都可以很好地进行同步。
使用git remote及git remote -v命令来查看远程存储库的详细信息。


3.场景三:团队项目中的分叉合并
3.1分支的基本用法
在VS Code中创建分支一个新的分支,可使用图形化界面或者指令git checkout -b mybranch进行创建。
如下图所示,我新创建了一个名为seeker的新的分支。

3.2团队项目工作流程
在seeker分支上进行相应的改动,再将其提交到本地库内。之后切换到master分支,将远端的origin/master最新版本同步至本地存储库,合并mybranch到master分支,再将之推送到远程origin/master。



4.场景四:Git Rebase
4.1分支的基本用法
在自己建立的分支上完成自己的工作之后,为了更易于回顾,用 git rebase 命令重新整理提交记录。
代码为 git rebase -i [startpoint] [endpoint] ,弹出交互式的界面让用户编辑完成合并操作,[startpoint] [endpoint]指定了一个编辑区间,如果不指定[endpoint],则该区间的终点默认是当前分支的HEAD。
一般我们只指定[startpoint] ,即从其中一个commit节点开始检查,另外,也可用HEAD^^、HEAD~100、commit ID或者commit ID的头几个字符来指定一个commit节点。
我使用下面指令重新整理了HEAD之前的三个commit节点。

![]()

之后,按i键进入插入编辑模式,删除第二个版本;按ESC键退出编辑模式回到一般命令模式。最后,输入q退出。
如下图所示,第二个版本已被删除。



三、心得体会
通过本次的学习,我对VSCode以及Git的使用有了一个基本了解。同时,在博客上记录自己的学习进程也是一种全新的体验。
在学习的过程中也发现了自己的很多不足,对一些操作和流程也还有很大的进步空间。
在以后的学习过程中,自己也要补足这些短板,对高级软件工程有一个更全面深入的了解。
浙公网安备 33010602011771号