Git使用心得体会

Git使用感受

本科阶段我一直都知道GitHub是基于git这个强大的版本控制工具来管理的,但是一直没有深入了解和使用过git。研究生很荣幸选了孟宁老师的高级软件工程的课程,老师对git的一步步深入细致的讲解让我受益匪浅。于是,我也希望通过这次作业实践,来进一步认识和使用git,为之后的企业实习打下良好的基础。

参考文献:https://mp.weixin.qq.com/s/Km5KuXPETvG0wCGHrvj9Vg


 

场景一 初始化一个本地版本库

 

新建一个gittest文件夹,用VScode打开,直接在终端输入

Git init

即可初始化本地仓库

 

 

 

 

然后,执行

Git status

获取当前仓库的状态,因为是刚刚新建的仓库,没有任何修改和提交

 

 

 

 

新建一个MyFirstGit文件,输入内容,修改完成后把文件添加暂存区并提交到本地仓库

 

 

 

 

 

打印下log日志

 

 

 

 

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

通过从github clone一个项目到本地仓库管理,这里的GitHubURL为

https://github.com/chywxsqy/git.git

成功克隆到本地如下图:

 

 

 

 

直接输入git remote可以看到git clone之后默认的远程存储库名称为origin。

 

 

 

使用git remote -v 可以查看更详细的远程存储库信息,包括fetch(抓取)的远程存储库URL和push(推送)的远程存储库URL。

 

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

1 同步最新的代码到本地存储库:

 

 

 

 

2 为了实现多人协作完成项目,应该为自己的模块建立一个新的分支,该分支只负责我这一部分项目功能或者模块的版本控制:

 

 

 

 

3 在我本地的分支上新建文件mybranch,进行我所负责的模块开发,进行如下操作:

Git add mybranch

Git commit -m “mybranch”

 

 

 

 

4 最后,切记先进行切换到main分支,讲远程仓库最新的文件同步到本地存储库,同时合并mybranch到main分支,推送远程仓库完成之后即完成了一项开发工作。代码如下:

 

Git checkout main

Git pull

Git merge –no-ff mybranch

Git push

 

 

 

 

 

 

 

场景四:gitrebase

首先来讲一下git merge和gitrebase的区别:

  git merge 操作合并分支会让两个分支的每一次提交都按照提交时间(并不是push时间)排序,并且会将两个分支的最新一次commit点进行合并成一个新的commit,最终的分支树呈现非整条线性直线的形式

  git rebase操作实际上是将当前执行rebase分支的所有基于原分支提交点之后的commit打散成一个一个的patch,并重新生成一个新的commit hash值,再次基于原分支目前最新的commit点上进行提交,并不根据两个分支上实际的每次提交的时间点排序,rebase完成后,切到基分支进行合并另一个分支时也不会生成一个新的commit点,可以保持整个分支树的完美线性。

 

 

 

这个命令做了以下内容:
a.把你 commit 到本地仓库的内容,取出来放到暂存区(stash)(这时你的工作区是干净的)
b.然后从远端拉取代码到本地,由于工作区是干净的,所以不会有冲突
c.从暂存区把你之前提交的内容取出来,跟拉下来的代码合并

所以 rebase 在拉代码前要确保你本地工作区是干净的,如果你本地修改的内容没完全 commit 或者 stash,就会 rebase 失败。

 

1 首先git rebase -I HEAD^^^查看到了3条记录

 

 

 

2 输入i进入编辑模式,此时我想合并版本,wq保存退出:

 

 

 

 

 

3 gitlog一下,已经合并成功。在合并过程中如果出现冲突或者其他,可以用git rebase –continue

 

 

 

4 如果想撤回rebase,用如下命令:

 

 

posted @ 2020-10-03 12:33  吾心似秋月666  阅读(377)  评论(0编辑  收藏  举报