Git五大使用场景

一、Git本地版本库的建立

1、首先初始化一个版本库,如果安装了VSCode的情况下可以通过单击初始化存储库来完成初始化:

2.初始化完成后,我们可以查看工作区的状态,使用命令git status来查看当前工作区状态:查看本地仓库的状态:

  1. 之后就能够将更改区列表里面的文件添加到暂存区了,VSCode中只需要点击文件旁边的“+”就可以完成操作:

    或者使用命令git add命令完成添加操作:把要提交的文件的信息添加到暂存区中。当使用 git commit 时,将依据暂存区中的内容来进行文件的提交:

    # 把指定的文件添加到暂存区中
    $ git add <文件路径>
    
    # 添加所有修改、已删除的文件到暂存区中
    $ git add -u [<文件路径>]
    $ git add --update [<文件路径>]
    
    # 添加所有修改、已删除、新增的文件到暂存区中,省略 <文件路径> 即为当前目录
    $ git add -A [<文件路径>]
    $ git add --all [<文件路径>]
    
    # 查看所有修改、已删除但没有提交的文件,进入一个子命令系统
    $ git add -i [<文件路径>]
    $ git add --interactive [<文件路径>]
    

    希望将文件从暂存区中移除的话可以点击文件旁边的“-”号,或者使用git reset命令完成撤销操作:

    git reset HEAD FILES # 指定文件或文件列表
    git reset HEAD
    

    4.接下来就能够将暂存区中的文件提交到本地仓库了,在VSCode中可以点击“✅”图标完成commit操作,或者使用git commit命令完成提交的操作:

    5.提交完成之后暂存区的文件就已经存储到本地仓库中了,在这里需要介绍一下HEAD指针:这要从git的分支说起,git 中的分支,其实本质上仅仅是个指向 commit 对象的可变指针。git 是如何知道你当前在哪个分支上工作的呢?其实答案也很简单,它保存着一个名为 HEAD 的特别指针。在 git 中,它是一个指向你正在工作中的本地分支的指针,可以将 HEAD 想象为当前分支的别名。在这里我们就可以通过git log命令来查看当前的日志信息:

如果此时你希望项目恢复到上次提交的版本状态,这时候仓库的重要性就显示出来了,可以通过git reset命令完成版本的回退:下面的命令可以让HEAD回退到任意一个版本,比如HEAD表示HEAD的前一个版本、HEAD^表示HEAD的前两个版本、HEAD~100表示HEAD的前100个版本,也可以用版本号字符串来指定任意一个版本。

为了体现版本回退,我们再次提交一次“Second commit”,这个时候HEAD指针指向Second commit,执行git reset --hard HEAD^命令之后:回退到First commit

二、Git远程版本库的用法

1、克隆一个远程版本库

首先,在GitHub上创建一个新的仓库,接下来可以使用VSCode中克隆存储库的按钮,或者使用git clone命令完成从远程库的克隆:

2.然后就可以使用git remote -v指令查看远程存储库的信息:

3.接下来就可以通过场景一的操作来完成对本地仓库的修改了,修改完毕之后通过git push命令将本地仓库推送到远程仓库中去,在这之前,需要先设置一下SSH Key,因为你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,设置完SSH Key后,就能git push了:

4.如果想要下载远程库中的内容可以通过使用git pull命令来完成该操作。同时VSCode自带了进行push和pull的操作:

三、在团队项目中进行分叉与合并

Git的存在让团队项目的开发效率有了质的飞跃,每个个体之间可以在开发自己的模块时可以暂时不考虑其他开发人员对项目的改变,只需要在最后将每个人的开发分为一个一个的开发分支既可解决问题。接下来我想说明在团队开发中,如何创造分支,以及合并分支:
1.拷贝远程版本库中的文件:这里可以利用场景二的知识,利用git clone命令完成对版本库的拷贝。

2.创建一个属于自己的分支,利用git branch命令:

3.在完成创造自己的分支后,可以对项目进行修改了:

git add FILES
git commit -m "commit log"

4.最后就能够进行分支合并的操作了:首先回到master分支,然后同步最新的远程版本库内容,最后将自己的分支合并到主分支上,就能够将自己的开发结果推送到远程版本库中了。这里将会用到git merge指令,将分支进行合并,下面是指令的执行顺序:

git checkout master;//切换到主分支
git pull;//确保现在是远程版本库的最新版本
git merge lemonbranch;//将自己的分支与主分支合并
git push;//将本地仓库推送到远程版本库中

之后GIthub上的远程版本库的文件结构将会是这样的:

四、Git Rebase的运用

rebase在git中是一个非常有魅力的命令,使用得当会极大提高自己的工作效率;相反,如果乱用,会给团队中其他人带来麻烦。它的作用简要概括为:可以对某一段线性提交历史进行编辑、删除、复制、粘贴;因此,合理使用rebase命令可以使我们的提交历史干净、简洁!为了让 log 记录将来更容易回顾参考,用 git rebase 重新整理一下提交记录。注意不要通过rebase对任何已经提交到远程仓库中的commit进行修改,接下来我们要实现在本地合并两次的提交信息,提交到远程版本库时只像是只有一个commit:

1.首先我们创建三个提交A,B,C,然后使用git log指令查看commit信息

2.使用git rebase命令,进入编辑模式,界面如下:

3.然后我们修改B与C,将pick改为S,意味与前一个commit合并:

之后将会出现如下界面,在这个界面下可以修改注释信息:

4.保存之后合并就成功了,我们就完成了commit的合并,通过git log来查看commit的信息:

5.接下来将项目提交到远程版本库就完成了如下节点网络:

五、Fork+Pull Request

为了解决开源社区松散团队的协作问题,Github提供了Fork+ Pull request的协作开发工作流程。

当你想更正别人仓库里的Bug或者向别人仓库里贡献代码时,要走Fork+ Pull request的协作开发工作流程:

  1. 先 fork(分叉) 别人的仓库,相当于拷贝一份;
  2. 做一些 bug fix或其他的代码贡献;
  3. 发起 Pull request 给原仓库;
  4. 原仓库的所有者 review Pull request,如果没有问题的话,就会 merge Pull request 到原仓库中。

1.第一步点击fork按钮,创建一个版本库,这样就可以在自己的仓库里查看复制的版本库:

2、然后可以在这个版本库里进行自己的修改。

3、之后创建一个新的pull requst,里面可以查看自己改变的信息:

4、然后可以查看变更的信息,没有问题的话提交pull请求即可:

参考资料:

https://www.liaoxuefeng.com/wiki/896043488029600

https://mp.weixin.qq.com/s/Km5KuXPETvG0wCGHrvj9Vg

posted @ 2021-04-01 20:29  sisisim  阅读(364)  评论(1编辑  收藏  举报