Git使用心得

前言

        如今在开发中,Git已成为现在主流的开源的分布式版本控制系统,基本上大多数的公司都在使用Git进行协同开发。很多代码托管平台也是基于Git来实现的,如大家所熟知的Github以及Gitee。Git可以帮我们做到很多的事情,比如代码的版本控制,分支管理等。Git里面主要包含的几个概念有远程仓库,克隆,本地仓库,分支,提交,拉取,合并,推送等。本文主要介绍Git在四个常用场景的基本使用。

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

 

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

1. 首先需要在vscode中安装git,之后使用git init命令初始化本地版本库:

 

2. 使用命令git status,因为是刚初始化的一个新的本地版本库,所以显示No commits yet.

 

 

3. 在Test文件下创建一个文件GitTest,使用git add GitTest将GitTest文件提交到暂存区,使用git commit -m " "命令把暂存区里的文件提交到仓库。

 

 4. 使用git log命令查看当前HEAD之前的提交记录,便于回到过去。

 

5. 点击暂存所有更改可以将更改暂存

 

 

场景一使用指令:

git init # 初始化一个本地版本库

git status # 查看当前工作区(workspace)的状态

git add [FILES] # 把文件添加到暂存区(Index)

git commit -m "wrote a commit log infro” # 把暂存区里的文件提交到仓库

git log # 查看当前HEAD之前的提交记录,便于回到过去

git reset —hard HEAD^^/HEAD~100/commit-id/commit-id的头几个字符 # 回退

git reflog # 可以查看当前HEAD之后的提交记录,便于回到未来

git reset —hard commit-id/commit-id的头几个字符 # 回退

 

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

1. 如果已经在Gitee.com或者Github.com等网站上创建了Git版本库,可以通过git clone命令,将版本库克隆到本地完成本地版本库的初始化,如果没有则需要在GiteeGithub上先Git创建版本库。git clone命令的用法如下:

git clone https://DOMAIN_NAME/YOUR_NAME/REPO_NAME.git

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

 

3. 使用git pull 和git push 命令进行同步操作:

git pull:拉取远程仓库里的README.md文件到本地仓库

 

git push:将对README.md文件的修改提交到远程仓库

 

 git fetch、git push加上git clone是三个对远程存储库的基本操作,而git pull(拉取)是实际上是 git fetch + git merge(合并)的组合。

 

使用指令:

git clone https://DOMAIN_NAME/YOUR_NAME/REPO_NAME.git# 如果您已经在Gitee.com或者Github.com等网站上创建了Git版本库,可以通过git clone命令,将版本库克隆到本地完成本地版本库的初始化。 

git remote#  管理本地版本库跟踪的远程存储库

git clone#  官方的解释是“Clone a repository into a new directory”,即克隆一个存储库到一个新的目录下。

git fetch#  官方的解释是“Download objects and refs from another repository”,即下载一个远程存储库数据对象等信息到本地存储库。

git push#  官方的解释是“Update remote refs along with associated objects”,即将本地存储库的相关数据对象更新到远程存储库。

git merge#  官方的解释是“Join two or more development histories together”,即合并两个或多个开发历史记录。

git pull#  官方的解释是“Fetch from and integrate with another repository or a local branch”,即从其他存储库或分支抓取并合并到当前存储库的当前分支。

 

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

1. 如果使用Git命令的创建分支为如下命令:

git checkout -b mybranch

 

2. 使用git branch 和git branch -a 分别查看本地分支列表和远程分支列表:

 

 

 

3. 使用git checkout [branch_name]命令切换到指定分支:

 

4. 合并mybranch分支到当前的master分支,可以使用如下Git命令:

git merge mybranch

 

 5. 如果要保留mybranch分支为一段独立的分支线段,则需要使用--no-ff参数关闭"快进式合并"(fast-farward merge),Git命令如下:

git merge --no-ff mybranch

 

场景三使用指令:

git checkout -b mybranch# 使用Git命令的创建分支

git branch# 查看分支列表 ,前面有一个*代表当前工作区处于分支

git checkout [branch_name] # 将当前工作区切换到指定分支

git merge [branch_name]# 合并指定分支到当前的分支

git merge --no-ff [branch_name]# 合并时若要保留指定分支为一段独立的分支线段,则需要使用--no-ff参数关闭"快进式合并"(fast-farward merge)

 

场景四:Git Rebase

1. 首先对文件进行三次修改提交,分别标记为A、B、C,输入git rebase -i HEAD^^^ 可以查看之前三次的提交记录:

 

2. 按i键进入编辑模式,由下方的注释可知,删除的快捷键是d,将想要删除的commit前方的pick改为d即可,我这里是将前两个删除,即删除A、B,然后按Esc键退出编辑模式回到一般命令模式(Normal Mode),这时按:键进入底线命令模式,输入:wq保存退出、输入:q退出、输入:q!强制退出。这里我们输入:wq,发生了冲突。

 

 

 

 之后我们打开发生冲突的文件进行修改合并,然后使用git rebase --continue命令,这样即完成了git rebase操作。

 

3. 最后先切换到主分支master

 

然后使用git merge --no-ff mybranch命令,合并分支mybranch到主分支master。

 

场景四使用指令:

git rebase -i [startpoint] [endpoint]# 重新整理一下提交记录。[startpoint] [endpoint]则指定了一个编辑区间,如果不指定[endpoint],则该区间的终点默认是当前分支的HEAD。一般只指定[startpoint] ,即指定从某一个commit节点开始。

git rebase -i HEAD^^^# 可以使用HEAD^^、HEAD~100、commit ID或者commit ID的头几个字符来指定一个commit节点,比如这里的代码指定重新整理HEAD之前的三个commit节点。

git rebase --abort# 撤销git rebase操作

git rebase --continue# 解决冲突后需要将修改后的文件存入暂存区(git add),最后执行如下命令完成git rebase

 

个人总结:

  Git的分布式版本控制在如今的企业项目开发中越来越重要,而在上孟老师的课之前,我并没有接触过Git,现在通过孟老师的课程可以系统的学习与实践Git的各项基本操作,在此感谢孟老师在课堂上的详细讲解已经这个作业的布置,不仅仅是让我了解了Git的作用,更是让我亲自动手实践了如何使用Git,这使我对Git的理解更加深刻。

 

posted @ 2020-10-11 20:51  lllsy  阅读(119)  评论(0)    收藏  举报