Git

Git代码管理工具的使用与进阶

Posted by WHX on October 10, 2024

创建代码仓库

首先配置一下你的身份,这样在提交代码的时候,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