创建代码仓库
首先配置一下你的身份,这样在提交代码的时候,Git就可以知道是谁提交的了。命令如下所示:
git config --global user.name "Tony"
git config --global user.email "tony@gmail.com"
进入文件夹(想要变成仓库管理的文件夹)输入以下命令:
git init
仓库创建完成后,会在根目录下生成一个隐藏的.git目录,这个 目录就是用来记录本地所有的Git操作的,可以通过ls -al命令查看一下

提交本地代码
建立完代码仓库之后就可以提交代码了。提交代码的方法非常简单,只需要使用add和commit 命令就可以了。
添加所有的文件,命令如下所示
git add .
然后可以进行提交,输入如下命令即可:
git commit -m "First commit."
忽略文件
文件夹中有些内容不是我们想提交上去的,比如build里编译后的一些文件。所以git提供一个方法可以忽略某些文件或者文件夹。它就是名为.gitignore的文件 。

在.gitignore中写入的内容都不会被添加和提交。
查看修改内容
查看文件修改情况的方法非常简单,只需要使用status命令就可以了
git status
查看所有文件的更改内容:
git diff
查看具体文件的更改内容:
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 log
分支
分支是版本控制工具中比较高级且比较重要的一个概念,它主要的作用就是在现有代码的基础上开辟一个分叉口,使得代码可以在主干线和分支线上同时进行开发,且相互之间不会影响。

尝试创建一个分支,命令如下
git branch version1.0
查看所以分支
git branch -a

切换分支
git checkout version1.0
需要注意的是,在version1.0分支上修改并提交的代码将不会影响到master分支。同样的道理,在master分支上修改并提交的代码也不会影响到version1.0分支。因此,如果我们在 version1.0分支上修复了一个bug,在master分支上这个bug仍然是存在的。这时将修改的代 码一行行复制到master分支上显然不是一种聪明的做法,最好的办法就是使用merge命令来完 成合并操作,如下所示:
git checkout master
git merge version1.0
最后,当我们不再需要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