学习使用GitHub/Git

本学期开了现代软件工程这门课程,在本课程的大作业中,需要小组协作完成一个项目的开发,这就需要用到Github。
我在之前只是简单听说过GitHub,没有实际的使用过,只知道是用来管理代码的,对于管理的机制、具体的管理的操作并不了解。 通过完成本次作业,我知道了Git管理的内部机制,并掌握了一些基本的git操作命令。

Git是代码的分布式版本控制系统,适用于项目开发,尤其是小组多个人一起合作开发项目。

在github上创建远程库,每个小组成员的终端是各自的本地库。

对源代码的增删改都属于修改,实际上,Git就是管理这种修改。小组成员在自己的本地库使用分支进行项目的修改,可以通过git同步到github远程仓库上;当远程仓库有了更新,其他小组成员可以clone下来最新版本的代码。通过这两方面,保持远程仓库和本地仓库同步一致,从而实现小组成员分布式协作开发。

在本文中,我主要分享一下git的基本命令操作。包括git clone/add/commit/push/status/diff/log/fetch/merge/pull

git clone

使用该命令,将远程仓库克隆到本地仓库。
  1. 在GitHub的官方网站上注册一个账号Guosiying,并登录。点击“+”号,选择“New repository”创建一个新的远程仓库。
    这里写图片描述

仓库名设为“HelloWorld”,并选择初始化时创建一个README文件。
这里写图片描述

在仓库信息页,点击“Clone or download”,将网址“https://github.com/Guosiying/HelloWorld.git”粘贴下来,这会在clone时用。
这里写图片描述

  1. 在本机E盘新建一个文件夹Test01_GitHub,在该文件夹内空白处,右击选择“Git Base Here”,进入命令行界面。
    这里写图片描述

  2. 输入git clone https://github.com/Guosiying/HelloWorld.git命令,将远程仓库克隆到本机,本机中出现了仓库HelloWorld文件夹,此为本地仓库,在文件夹中有README.md文件。
    这里写图片描述

git add/git commit/git push

先后使用这三个命令,分三步将本地仓库的内容同步到远程仓库。

  • git add:将修改内容从工作区添加到暂存区

  • git commit:将暂存区中的所有内容提交到当前的分支

  • git push:将分支的所有内容推送到远程仓库

    1. 修改本地仓库内容

在本机创建一个Hello.java文件,添加到 上步已经克隆到本机的仓库HelloWorld中(E:/Test01_GitHub/HelloWorld)。
这里写图片描述

Hello.java文件中的内容:
这里写图片描述

  1. git add

在命令行界面,先进入本机HelloWorld仓库的目录,输入git add hello.java命令,将该文件从工作区添加到暂存区。
这里写图片描述

  1. git commit

在命令行界面输入git commit -m “wrote a Hello file命令,把暂存区中的所有内容提交到当前分支(master)中。
这里写图片描述

注意:如果还没有配置本机的信息,在commit时,会提示配置你的邮箱地址和名字信息。
这里写图片描述

这里写图片描述

配置好信息后,再commit一次,这次就成功了。
这里写图片描述

  1. git push

在命令行界面输入git push -u origin master命令,将向远程库推送master分支的所有内容。

注:在第一次push时,会弹出窗口,让你输入GitHub的注册邮箱和密码来确定身份。
这里写图片描述

经过这三步,可以在Github上看到本地仓库的修改(添加了Hello.java文件)已经被push上去了,此时本地仓库和远程仓库是一致同步的。
这里写图片描述

Hello.java文件中的内容
这里写图片描述

git status/git diff/git log

这三个命令可以让我们时刻掌握仓库的修改情况。

  • git status:查看当前仓库的状态(有没有进行了修改)

  • git diff:查看具体修改了什么

  • git log:查看修改提交的日志

    1. git status

在本机修改一下Hello.java文件(添加一条输出语句)。
这里写图片描述

在命令行界面输入git status命令,查看当前仓库的状态。可以看到Hello.java文件被modified了,但是还没有被commit。
这里写图片描述

  1. git diff

在命令行界面输入git diff命令,查看具体的修改内容。可以看到具体修改了文件哪一行。
这里写图片描述

再输入git add命令和git commit命令进行提交。
这里写图片描述

commit后,在git status一下。可以看到工作目录是干净的了。

再输入git push,将本次修改push到远程仓库中。
这里写图片描述

github上已经更新,此时本机仓库和远程仓库达到一致状态。
这里写图片描述

  1. git log

在命令行界面输入git log命令,可以查看截止到目前commit的日志信息。
这里写图片描述

git fetch和git merge 与 git pull

git fetch和git merge 与git pull都可以实现将远程仓库的最新版本同步到本地仓库。

git fetch和git merge:将最新版本从远程仓库拉取下来,不会自动merge到本地分支。

git pull:将最新版本从远程仓库拉取下来,并自动与本地分支merge。

前者将更新同步操作分为了两小步,操作了第一小步后,可以查看一下具体做了什么修改,然后再决定是否和本地分支合并,不易产生冲突。而后者是两小步一起完成,更方便了操作,但是有可能在没了解具体修改了什么内容就合并到了本地分支,若是产生了冲突,需要手动进行解决。

  1. git fetch和git merge

在GitHub远程仓库中修改Hello.java文件(添加一条输入语句)。
这里写图片描述

在命令行界面输入git fetch命令。
这里写图片描述

此时git status和git diff一下,可以查看一下 远程仓库的内容和本地仓库对比做了哪些修改。
这里写图片描述
这里写图片描述

然后输入git merge命令。
这里写图片描述

查看一下本地仓库文件,本地文件完成更新。
这里写图片描述

  1. git pull

在GitHub上再次修改Hello.java文件(再添加一条输出语句)。
这里写图片描述

在命令行界面输入git pull命令。
这里写图片描述

在本地可以看到已更新。
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值