Git时间:版本控制工具进阶

Git时间:版本控制工具进阶

忽略文件

Git允许用户将指定的文件或目录排除在版本控制之外,它会检查代码仓库的目录下是否存在一个名为.gitignore的文件,如果存在,就去一行行读取这个文件中的内容,并把每一行指定的文件或目录排除在版本控制之外。.gitignore中指定的文件或目录是可以使用“*”通配符的。

Android Studio在创建项目的时候会自动帮我们创建出两个.gitignore 文件

在这里插入图片描述

在这里插入图片描述

比如说,app模块下的所有测试文件都只是给我自己使用的,我并不想把它们添加到版本控制中,那么就可以这样修改app/.gitignore文件中的内容:

/build
/src/test
/src/androidTest

提交代码——先使用add命令进行添加

git add .

然后执行commit命令完成提交

git commit -m "First Commit."

查看修改内容

查看文件修改情况的只需要使用status命令就可以了,在项目的根目录下输入命令:`

`git status

查看更改的内容:

`git diff

这样可以查看所有文件的更改内容,如果你只想查看MainActivity.kt这个文件的更改内容,可以在后面加上完整的文件路径:

git diff app/src/main/java/com/example/playvideotest/MainActivity.kt

撤销未提交的修改

现在如果想要撤销这个修改就可以使用checkout命令

git checkout app/src/main/java/com/example/playvideotest/MainActivity.kt

不过,这种撤销方式只适用于那些还没有执行过add命令的文件,如果某个文件已经被添加过了,这种方式就无法撤销更改的内容。对于已添加的文件,我们应该先对其取消添加,然后才可以撤回提交。取消添加使用的是reset命令:

git reset HEAD app/src/main/java/com/example/playvideotest/MainActivity.kt

然后再运行一遍git status命令,你就会发现MainActivity.kt这个文件重新变回了未添加状态,此时就可以使用checkout命令将修改的内容进行撤销了。

查看提交记录

使用log命令可以查看历史提交信息

git log

在这里插入图片描述

当提交记录非常多的时候,如果我们只想查看其中一条记录,可以在命令中指定该记录的id`

git log 5ecddf53530b13c5cdf46ae2ca2a621498af8d1b

也可以在命令中通过参数指定查看最近的几次提交,比如 -1就表示我们只想看到最后一次的提交记录:

git log -1

Git时间:版本控制工具的高级用法

分支的用法

分支是版本控制工具中比较高级且比较重要的一个概念,它主要的作用就是在现有代码的基础上开辟一个分叉口,使得代码可以在主干线和分支线上同时进行开发,且相互之间不会影响。分支的工作原理如图所示:
在这里插入图片描述
如果想要查看当前的版本库当中有哪些分支,可以使用git branch这个命令
创建分支:

git branch version1.0

创建后再次查看分支时就可以看到新增了一个分支
在这里插入图片描述
你会发现,master分支的前面有一个“*”号,说明目前我们的代码还是在master分支上的,想要切换到version1.0这个分支上,只需要使用checkout命令即可,如下所示:

git checkout version1.0

切换后再次查看分支时就可以看到version1.0分支的前面有一个“*”号
在这里插入图片描述
需要注意的是,在version1.0分支上修改并提交的代码将不会影响到master分支。同样的道理,在master分支上修改并提交的代码也不会影响到version1.0分支。因此,如果我们在version1.0分支上修复了一个bug,在master分支上这个bug仍然是存在的。这时将修改的代码一行行复制到master分支上显然不是一种聪明的做法,最好的办法就是使用merge命令来完成合并操作,如下所示:

git checkout master
git merge version1.0

在这里插入图片描述
仅仅使用这样简单的两行命令,就可以把在version1.0分支上修改并提交的内容合并到master分支上了。
最后,当我们不再需要version1.0这个分支的时候,可以使用如下命令将这个分支删除:

git branch -D version1.0

在这里插入图片描述

与远程版本库协作

所有版本控制工具最重要的一个特点就是可以使用它来进行团队合作开发。每个人的电脑上都会有一份代码,当团队的某个成员在自己的电脑上编写完成了某个功能后,就将代码提交到服务器,其他的成员只需要将服务器上的代码同步到本地,就能保证整个团队所有人的代码都相同。这样的话,每个团队成员就可以各司其职,大家共同来完成一个较为庞大的项目。
比如说现在有一个远程版本库的Git地址是https://github.com/example/test.git,就可以使用如下命令将代码下载到本地:

git clone https://github.com/example/test.git

之后如果你在这份代码的基础上进行了一些修改和提交,想把本地修改的内容同步到远程版本库上就需要借助push命令来完成了,用法如下所示:

git push origin master

origin部分指定的是远程版本库的Git地址,master部分指定的是同步到哪一个分支上,上述命令就完成了将本地代码同步到https://github.com/example/test.git这个版本库的master分支上的功能。
将远程版本库上的修改同步到本地。Git提供了两种命令来完成此功能,分别是fetch和pull。fetch的语法规则和
push是差不多的,如下所示:

git fetch origin master

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

git diff origin/master

之后再调用merge命令将origin/master分支上的修改合并到主分支上即可,如下所示:

git merge origin/master

而pull命令则是相当于将fetch和merge这两个命令放在一起执行了,它可以从远程版本库上获取最新的代码并且合并到本地,用法如下所示:

git pull origin master
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值