Git版本控制工具的使用

简介

Git是一个开源的分布式版本控制工具,它的开发者就是鼎鼎大名的Linux操作系统的作者Linus Torvalds。Git被开发出来的初衷是问了更好的管理Linux内核,而现在被广泛应用于全球各种项目中。

  • 安装Git
    进入官网下载https://git-scm.com/download/win 最新版,下载完成后默认一直下一步就可以完成安装。

  • 创建代码仓库
    打开安装好的Git Bash
    这里写图片描述
    前面就是自己电脑的名字,首先我们配置自己的身份

git config --global user.name "cc"
git config --global user.email "276307854@qq.com"

输入以上两行命令就是配置好自己的身份了,配置完成后我们使用同样的命令查看是否配置成功,只需将最后的名字和邮箱地址去掉即可。如图所示:
这里写图片描述

现在我们来创建代码仓库,选择一个项目进入到项目的根目录下:

这里写图片描述
这里我的MyApplication项目就在L:\AndroidStudio_workspace\MyApplication路径下,然后在这个目录下输入如下命令:

git init

这里写图片描述
输入后如上提示就说明创建仓库成功,成功后会在项目根目录下生成一个隐藏的.git文件夹,这个文件夹就是用来记录本地所有Git操作,可以通过ls -al查看:
这里写图片描述
这里写图片描述
如果要删除本地仓库,只需要删除这个文件夹就可以了。

  • 提交本地代码
    代码仓库建立完成后就可以提交代码了,提交代码也很简单只需要使用add和commit命令就可以了。add就是把想要提交的代码添加进来,commit就是真正的去执行提交操作。比如我们想添加build.gradle文件,就输入如下命令就可以了:
git add build.gradle

这就是添加单个文件的方法,添加目录就是只需把文件名替换成目录名就可以了,在这里我把所有文件都一次性添加进入,只需写上git add .:

git add .

这里写图片描述

想在MyApplication项目下的所有文件都添加好了,接下来执行提交操作:

git commit -m "First commit"

在这里commit命令后面,一定要通过-m参数加上提交的描述信息,没有描述的信息的提交被认为是不合法的。

  • 忽略文件
    代码仓库已经创建好了,提交代码的操作也很熟悉,但是在实际项目中我们可能不需要提交所有代码,例如bulid目录下的文件是编译项目时候自动生成的,我们不应该把这部分添加到版本控制当中。
    Git提供了一种可配置性很强的机制来允许用户将指定的文件或目录排除在版本控制之外,它会检查代码仓库的目录下是否存在一个名为.gitignore文件,如果存在的话,就去一行行读取这个文件的内容,并且把每一行指定的文件或目录排除在版本控制之外,对AndroidStudio熟悉的话应该知道工具默认创建了两个.gitignore,一个在根目录,下一个在在app下,来看下两个.gitignore里面的内容:
    根目录下:
    这里写图片描述
    app下:
    这里写图片描述
    由于app模块下基本都是我们编写的代码,因此默认的情况下只有其中的build目录不会被添加到版本控制当中,当然我们可以对其修改满足自己的需求,比如说app模块下所有的文件都是自己测试所用,并不想添加到版本控制中,那么就可以修改 app/.gitignore文件中的内容:
    这里写图片描述
    然后执行:
git add .
git commit -m "First commit."
  • 查看修改内容
    我在MainActivity.class里面随便修改一个String字符串,然后用一下代码查看更改消息:
git status

这里写图片描述
可以看到Git提醒我们MainActivity.java这个文件夹发生改变,要查看更改的内容就需要输入一下命令:

git diff

这里写图片描述

git diff是查看所有的更改内容,如果只想看MainActivity可以在git diff后面加上文件的绝对路径。

  • 撤销未提交的修改
git checkout lbstest/src/main/java/com/cc/lbstest/MainActivity.java

这里写图片描述

可以看到,当前项目中并没有任何可以提交的文件,说明撤销成功。不过这种撤销方式只适合那些还没有执行过add命令的文件,如果某个文件已经被添加过了就无法用这种方式撤销。下面再做一下测试,还是修改字符串内容,然后执行git add . 然后输入git status检查:
这里写图片描述

现在我们再来执行checkout命令,会发现MainActivity仍然是处于已添加状态,所修改的内容无法撤销掉。
这种情况下我们需要取消添加:

git reset HEAD lbstest/src/main/java/com/cc/lbstest/MainActivity.java

然后在执行git status命令,会发现MainActivity.java这个文件重新变回了未添加,此时就可以用checkout命令来撤销修改内容。

  • 查看提交记录
git log

这里写图片描述

然后我执行重复操作修改字符串,然后提交,提交备注为”Change String.”
这里写图片描述

这样就可以直观看看到每次提交的目的。

  • 分支用法
    分支是版本控制工具中比较高级和重要的概念,它主要的作用就是在现有的代码上开辟一个分叉口,使得代码可以在主干线和分支线同时进行,且相互不影响。
git branch

这里写图片描述

由于目前环境没有创建任何分支,因此只有一个master分支存在,这也就是主干线。

现在来创建一个version1.0的分支:

git branch version1.0

这里写图片描述
我创建完version1.0分支后再次执行git branch后可以看到刚刚创建的分支。
在分支上执行的代码修改相互不影响。等到代码分支进行完毕后合并代码:

git checkout master
git merge version1.0

两行代码就可以将version1.0上修改的代码合并到master分支上,合并后可能出现代码冲突,解决冲突只能自己慢慢分析,工具无法帮助我们。

最后我们不需要分支时候执行以下代码删除分支:

git branch -D version1.0
  • 与远程版本库协作
    如何使用Git进行团队合作,这就需要使用远程版本协作。团队每个成员都可以从这个版本库中获取原始代码,然后自我开发,并且每次提交的代码都提交到远程版本库中。

使用git clone 下载代码到本地
代码修改后提交到远程版本库中就需要使用:

git push origin master

其中origin部分指定的是远程版本库的Git地址,master部分指定的同步到哪一个分支上,知道了将本地代码同步到远程版本库中,现在来学习把远程版本库中代码同步到本地,Git提供了两种命令完成,fetch和pull,两个语法差不多:

git fetch origin master

执行这个命令后就会将远程版本库中代码同步到本地,不过同步下来的代码并不会合并到任何一个分支上,而是存放到一个origin/master分支上,这时我们可以用diff查看远程版本库中代码修改哪些内容:

git diff origin/master

之后再调用merge将分支上修改的代码合并到主分支上:

git merge origin/master

而用pull命令相当于将fetch和merge同时执行了,它可以从远程版本库上获取最新代码并且合并到本地:

git pull origin master
  • 将代码托管到GitHub
    首先创建账户,然后点击主界面start a project:
    这里写图片描述
    如果是第一次使用还需要验证邮箱。
    这里写图片描述
    在这里我将版本库命名为GitHubHostingTest,然后选择一个Android项目类型的.gitignore文件,并使用Apache License 2.0来作为开源协议,接着点击创建就可以了。
    这里写图片描述
    如上就是创建完成后跳转的页面,可以看到GitHub自动帮我们创建了.gitignore,LICENSE,README.md这三个文件其中README.md为版本库主页描述。

接下来一步很重要,我们需要将远程版本库克隆到本地。
这里写图片描述
复制地址后打开Git Bash进入工程根目录,输入以下命令:

git clone https://github.com/cc15102710931/GitHubHostingTest.git

这里写图片描述

以上结果代表成功。现在我们将这个目录中所有文件复制到上一层目录中,复制时候直接覆盖所有即可,复制完把GitHubHostingTest文件夹删除即可。这时文件目录结构如下:
这里写图片描述
接着我们将项目中现有的文件提交到GitHub上:

git add .
git commit -m "First commit."
git push origin master

注意在最后一步的时候需要验证GitHub的用户名密码,同步完成后刷新页面就能显示刚刚上传的代码。
这里写图片描述
这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值