软件构造:Git的安装与使用

软件构造:Git的安装与使用

目 录

  1. 安装Git
    1.1 本地机器上安装Git
    1.2 申请Gitee/GitLab/GitHub帐号
  2. Git操作过程
    2.1 仓库创建与提交
    2.2 分支管理
    2.3 远程分支管理
  3. 小结

1.安装Git

1.1本地机器上安装Git

Git版本号:Git-2.29.2.windows.2
命令行模式:

图形界面:

Git初始化(基本信息设置)(只进行一次):
(该设置在GitHub仓库主页显示谁提交了该文件)

1.2申请Gitee/GitLab/GitHub帐号

GitHub账号名称:1183710212liuxingyu

2.Git操作过程

2.1仓库创建与提交

在进行每次Git操作之前,随时查看工作区、暂存区、Git仓库的状态,确认项目里的各文件当前处于什么状态

本地初始化一个Git仓库,将自己所创建项目的全部源文件加入进去,纳入Git管理
初始化一个新的Git仓库“test”:
(1)创建文件夹

(2)在文件内初始化git(创建git仓库)

在test文件夹下生成隐藏文件.git,如果看不见,则设置电脑显示文件;
打开test文件夹—>在文件夹上方点击查看—>选项—>查看—>显示隐藏的文件、文件夹和驱动器(.git文件用于存储本地仓库所有数据信息)
向仓库添加文件,将所创建项目的全部源文件加入进去,纳入Git管理:
首先在GitHub下创建一个仓库,并获得该仓库的URL地址

在放置源文件的文件夹下打开GitBash,执行如图命令行:


提交:手工对某个文件进行修改

进入文件后(1)Insert编辑(2)ESC退出编辑模式(3):wq保存并退出(英文输入法)
将修改后的ScorePage.java文件添加到Git仓库

查看上次提交之后都有哪些文件修改、具体修改内容是什么(查看修改后的文件和暂存区域中相应文件的差别)
(1)不加参数直接输入git diff
查看尚未暂存的文件更新了哪些部分,比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容。
再次修改ScorePage.java文件,只在工作区,不添加到暂存区,使用git diff查看具体修改内容,如下:

将上面修改后的文件添加到暂存区,若要看已经暂存起来的文件和上次提交时的快照之间的差异,可以用git diff --cached命令(Git 1.6.1 及更高版本还允许使用git diff --staged,效果是相同的)

==重新提交:再次对某个文件进行修改 ==
第三次修改文件,并提交到Git仓库,使用git log查看所有的commit提交记录:

把最后一次提交撤销
在本地撤销,输入下面的命令:git rebase -i HEAD~2


可用git show查看提交详情

2.2分支管理

从Gitee/GitLab/GitHub上(URL)克隆一个已有的Git仓库到本地
在GitHub上有一个仓库“test”,含有三个文件,如下图:

使用命令行**git clone **仓库地址 ,即git clone https://github.com/1183710212liuxingyu/test.git

获得该仓库的全部分支

当我们从远程仓库克隆时,默认情况下只会克隆到远程仓库的master分支,如果远程仓库还有其他分支默认是不能clone的。
在B2分支基础上创建一个新分支C4
git checkout -b branchname 直接新建一个分支然后切换至新创建的分支,就是创建加切换分支,等价于命令
git branch branchname + git checkout branchname
其中git checkout branchname 是切换分支名
在这里插入图片描述
在C4上,对4个文件进行修改并提交

将C4和B3分支合并,若有冲突,手工消解
git merge branchname 这个命令把分支"branchname"合并到了当前分支里面


重新add和commit文件Graph1.Java后可以合并:

查看目前哪些分支已经合并、哪些分支尚未合并
使用gitk --all命令可以查看图形化界面:

2.3远程分支管理

将本地分支推送到Gitee/GitLab/GitHub上

将各步骤得到的结果推送到Gitee/GitLab/GitHub上

在GitHub网站以Web页面的方式查看两个仓库的当前状态

3.小结

使用Git的优点:
适合分布式开发,强调个体
公共服务器压力和数据量都不会太大
速度快、灵活
任意两个开发者之间可以很容易的解决冲突。
离线工作

在个人开发和团队开发中,Git起到的作用有何主要差异?
在个人开发中,Git起到记录代码修改、删除等的作用,方便代码的管理。而在团队开发过程中,Git涉及到分工以及上传更改的不同的版本,Git的本地及远程分支为我们带来了很多的便利,可以随时获取他人的推送以便于进一步的修改和整合代码。

Git对与SVN而言的的优势:

  1. 版本库本地化,支持离线提交,相对独立不影响协同开发。每个开发者都拥有自己的版本控制库,在自己的版本库上可以任意的执行提交代码、创建分支等行为。例如,开发者认为自己提交的代码有问题?没关系,因为版本库是自己的,回滚历史、反复提交、归并分支并不会影响到其他开发者。
  2. 更少的“仓库污染”。git对于每个工程只会产生一个.git目录,这个工程所有的版本控制信息都在这个目录中,不会像SVN那样在每个目录下都产生.svn目录。
  3. 把内容按元数据方式存储,完整克隆版本库。所有版本信息位于.git目录中,它是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签、分支、版本记录等。
  4. 支持快速切换分支方便合并,比较合并性能好。在同一目录下即可切换不同的分支,方便合并,且合并文件速度比SVN快。
  5. 分布式版本库,无单点故障,内容完整性好。内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

在什么情况下适合使用Git、什么情况下没必要使用Git?
在开发团队比较庞大的情况下适合使用Git,因为人工去协调矛盾成本是很大的,也很低效。几个人的小开发团队直接协调矛盾冲突的效率是高于使用Git的,因为本身学习使用Git就是成本。而在代码量较小、实现功能比较简单或者开发人员较少的时候没必要使用Git,因为Git分布式版本管理目的就在于协调团队中各种代码的冲突。在有一些安全考虑,代码需要保密时也不方便使用Git。

其他相关思考
学习Git投入的时间是否与收益成正比,关于工作区、暂存区、Git仓库、远程仓库以及一系列命令行语句是否冗余,能否有更方便简洁清晰的方式来管理代码。在学习Git的过程中,发现Git的设计都是比较实用且有效方便的,并且在不断使用Git的过程中,操作会越来越熟练,对Git的认识也会越来越清晰。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值