Git的基本用法

来源:互联网 发布:淘宝win10激活靠谱不 编辑:程序博客网 时间:2024/05/21 11:06

1.初识

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

安装Git

  • Git在Linux上安装十分简单方便,只需打开shell界面,并输入sudo apt-get install git-core,按下回车后输入密码,即可完成Git的安装。
  • 访问网址https://git-for-windows.github.io/,点击Download按钮下载安装包,进行安装。

创建代码仓库

  • 如果使用的是Linux系统,就打开shell界面,如果是Windows系统,就从开始里找到Git Bush并打开。首先应该配置一下身份,这样在提交代码的时候Git就知道是谁提交的了:
    git config –global user.name “Tony”
    git config –global user.email “tony@gmail.com”
    配置完成后可以用相同的命令来查看配置时候成功,只需将最后的名字和邮箱去掉就可以了。
  • 通过cd命令进入到项目的根目录下面,然后创建代码仓库:
    git init
    仓库创建完成后,会在项目的根目录下生成一个隐藏的.git的文件夹,这个文件夹就是用来记录本地所有的git操作的,可以通过ls -al命令来查看一下。

提交本地代码

  • add命令可以将想要提交的代码添加进来,commit命令则是真正的去执行提交操作。
    git add 文件/文件夹/.
    git commit -m “提交描述信息”
    add后面加一个.,表示添加所有文件,另外commit的后面一定要通过-m参数加上提交的描述信息,没有描述信息被认为是不合法的。

2.进阶

忽略文件

  • 由于有些文件是不需要添加到版本控制中的,所以Git提供了一种可配性很强的机制来允许用户将指定的文件或目录排除在版本控制之外,它会检查代码仓库的目录下是否存在一个.gitignore文件,如果存在的话,就把每一行指定的文件或文件夹排除在版本控制之外,指定的内容可以使用*通配符。
  • Android Studio在创建项目的时候会自动生成两个.gitignore文件,一个在根目录下,一个在app模块下,这是Android Studio的自动生成的默认配置,不需要添加到版本控制中,我们还可以对他们进行修改。

查看修改文件

  • 通常情况下每当完成了一小块功能,就执行一次提交。但是如果某个功能模块牵扯到的代码比较多,有可能写到后面的时候就已经忘记前面修改了哪些东西了,这时候可以使用Git来查看自上次提交后文件修改的内容。
    git status
    这个命令可以查看哪些文件做了修改,要想查看具体修改的内容,可以使用以下命令:
    git diff
    如果想要查看某个指定文件的修改内容,还可以在该命令的后面加上想要查看的文件目录。

撤销未提交的修改

  • 查看完修改的内容后,有时候想要撤销修改,只要代码还未提交,就可以撤销。
    git checkout 文件
    执行完该命令后,重新执行git status,就可以看到撤销成功了。
  • 不过这种情况只适用于那些没有执行过add命令的文件,如果已经添加过了,需要先取消添加,再撤销修改:
    git reset HEAD 文件

查看提交记录

  • 如果想要查看提交记录,可以使用如下命令:
    git log
    每次提交记录都包含提交id、提交人、提交时间以及提交描述这4个信息。当提交的记录非常多时,如果我们只想查看其中一条记录,可以在命令中指定记录的id,并加上-1参数表示只想查看这一条记录。
    git log 记录id -1
    而如果想要查看具体修改了哪些内容,可以在命令后面加入-p参数。
    git log 记录id -1 -p

3.高级用法

分支的用法

  • 分支是版本控制工具中比较高级且比较重要的概念,它主要的作用是在现有代码的基础上开辟一个分叉口,使得代码可以在主干线和分支线上同时开发,且相互之间不会影响。通常情况下我们只在主干线上开发是没有问题的,但一旦涉及出版本的问题,就要建立分支。如果想要查看现在项目中有哪些分支,可以使用:
    git branch
    在没有创建过任何分支的情况下,只有一个master分支存在,即主干线。创建分支时,只需在该命令的后面加上分支名。
    git branch 分支
    再执行git branch命令就会有一个新的分支出现,而在master分支的前面有一个*号,说明我们目前的代码在master分支上,要想切换到其他分支,可以执行:
    git checkout 分支
  • 需要注意的是,在一个分支上做的修改不会影响到另一分支。因此如果我们在一个分支上修改了一个bug,在另一个分支上bug仍然存在,这时候无需一行一行地复制代码,只需执行以下命令:
    git merge 分支
    在合并分支的时候,有时会出现代码冲突,这个时候就要自己慢慢解决这些冲突了。当我们 不再需要某个分支的时候,可以将其删掉:
    git branch -D 分支

与远程版本库协作

  • 可以这样说,如果你是一个人在开发,那么使用版本控制工具就远远无法发挥它真正强大的功能,所有版本控制工具最重要的一个特点就是可以使用它来进行团队合作开发。首先要有一个远程的版本库,团队的每个成员都从这个版本库中获得到最原始的代码,然后各自进行开发,并且以后每次提交的代码都同步到远程版本库上就可以了。另外,团队中的每个成员都要及时从远程版本库中获得最新的代码。
  • 比如现在有一个远程版本库的git地址是https://github.com/example/test.git,就可以用如下的命令将代码下载到本地:
    git clone https://github.com/example/test.git
    之后在本地做了修改和提交,可以使用如下命令同步到远程版本库:
    git push origin master
    其中origin部分指定的是远程版本库的git地址,master部分指定的是同步到哪一个分支。执行以下命令,可以将远程版本库的代码同步到本地:
    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

4.GitHub

  • GitHub是全球最大的代码托管网站,主要是借助git来进行版本控制的,任何开源软件都可以提交到GitHub上,以零成本的代价进行代码托管。
  • 首先我们应有一个GitHub账号,在个人主页上,点击start a project按钮来创建一个版本库,如果是Android项目,可以选择添加一个Android项目类型的.gitignore文件,并使用Apache License 2.0作为项目的开源协议,然后点击Create repository按钮,版本库就创建完成了。可以看到,GitHub已经自动帮我们创建了.gitignore、LICENSE和README.md这3个文件,其中编辑README.md文件可以修改版本库主页的描述。然后,在本地创建一个Android项目。
  • 接下来,我们要将远程版本库克隆到本地,首先点击Clone or download按钮就可以看到远程版本库的地址,然后点击右边的复制按钮可以将版本库的地址复制到剪切板。我们进入到工程目录下,打开Git Bush,输入以下命令将远程版本库克隆到本地:
    git clone https://github.com/example/test.git
    这时候在项目中多了一个文件夹,而且.gitignore、LICENSE和README.md这3个文件就已经复制到本地了,可以进入到该文件夹里面使用ls -al查看。
    现在我们需要将这个目录中的所有文件全部复制粘贴到上一层目录中,注意.git是一个隐藏目录,在复制的时候不要漏掉。另外,上一层目录中也有一个.gitignore文件,我们直接将其覆盖即可。复制完之后可以将刚刚clone下来的文件夹删掉。
  • 接下来我们将项目中的所有文件提交到GitHub上面,先将所有文件添加到版本控制中:
    git add .
    然后在本地执行提交操作:
    git commit -m”First Commit”
    最后将提交的代码同步到远程版本库,也就是GitHub上面:
    git push origin master
    注意在最后一步的时候GitHub可能要求输入用户名和密码来进行身份校验,这里我们输入用户名和密码就可以了。这样就同步完成了,刷新一下远程版本库的主页,刚才提交的那些文件就已经存在了。
原创粉丝点击