美文网首页
Git 新手教程(快速上手)

Git 新手教程(快速上手)

作者: GCYML | 来源:发表于2019-04-13 09:17 被阅读0次

    基本了解

    Git 是一些命令行工具的集合,可以用来跟踪、记录文件的变动,经常用于开源代码。比如你可以进行旧版本恢复、比对、分析、合并等等。这个过程被称之为 版本控制。已经有一系列的版本控制系统,比如 SVN、Mercurial、Perforce、CVS、Bitkeepe 等等。

    Git 是分布式的,这意味着它并不依赖于中心服务器来保存你文件的旧版本。任何一台机器都可以有一个本地版本的控制系统,其实就是一个硬盘上的文件,我们称之为 仓库(repository)。如果是多人协作的话,你还需要一个线上仓库,用来同步代码等信息。这就是 GitHub、BitBucket 等网站做的工作。

    安装 Git

    在你的机器上安装 git 非常简单:

    • Linux – 打开终端,然后通过包管理安装,在 Ubuntu 上命令是:sudo apt-get install git
    • Windows – 推荐使用 git for windows,它包括了图形工具以及命令行模拟器。
    • OS X – 最简单的方式是使用 homebrew 安装,命令行执行 brew install git

    基础命令

    这里仅介绍基础命令,远程仓库和分支管理等功能在下一章节。

    初始化仓库

    git init
    

    添加新文件

    git add filename
    

    检查状态

    git status 是另一个非常重要的命令,它反馈给我们仓库当前状态的信息:是否为最新代码,有什么更新等等。

    git status
    

    查看日志

    log

    log 命令可以显示所有提交过的版本信息

    git log
    
    relog

    可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)

    例如执行 git reset --hard HEAD~1,退回到上一个版本,用 git log 则是看不出来被删除的 commitid,用 git reflog 则可以看到被删除的 commitid,我们就可以买后悔药,恢复到被删除的那个版本。

    git relog
    

    提交代码

    git commit -m "Adding files"
    

    版本回退

    • git reset --hard HEAD^ 回退到上一版本
    • git reset --hard HEAD^ 回退到上上版本
    • git reset --hard HEAD~100 回退到上 100 个版本
    • git reset --hard 具体版本号回退到具体版本号

    撤销修改

    撤销修改有两种情况,文件在工作区和暂存区的撤销操作是不一样的。

    撤销工作区文件修改
    git checkout -- filename
    
    撤销暂存区文件修改

    已经被添加到暂存区的文件是无法通过 checkout 撤销操作的,需要通过 reset 命令撤销操作。

    撤销修改回到最新的版本

    git reset HEAD filename
    

    删除文件

    如果仅仅通过 rm 或者文件管理器中删除了版本库或者暂存区的文件,Git 能追踪到删除操作,但是并不会做任何操作,即你提交时,删除操作并不会提交上去。要让 Git 做出操作,需要通过 add 操作。

    第二种方法就是通过 Git 的 rm 命令:

    git rm filename
    

    此命令会将删除文件的操作通知到 Git,而不需要再进行 add 操作。可以把该命令看成是集成了删除文件和 add 操作两个命令。

    远程仓库

    关联远程库

    如果有了本地库,则需要关联远程库。

    git remote add origin git@github.com:michaelliao/learngit.git
    

    克隆远程库

    克隆远程库会在本地创建并克隆该远程库。

    git clone git@github.com:michaelliao/learngit.git
    

    推送代码到远程库

    把本地的提交传送到远程库的动作叫做 push。

    git push 命令有两个参数,远程仓库的名字以及分支的明治。

    git push origin master
    

    git push 还有个 -u 参数,若加上此参数,则会把该远程仓库设为默认仓库,后面再做 push 操作,则不需要再指定主机。

    git push -u origin master
    

    拉取远程库代码

    后面两个参数为主机名以及分支名。

    git pull origin master 
    

    分支管理

    查看分支

    $ git branch
    * dev
      master
    

    git branch 命令会列出所有分支,当前分支前面会标一个 * 号。

    创建分支

    创建分支

    git branch dev
    

    创建并切换到该分支

    git branch -b dev
    

    切换分支

    前面已经在删除文件小节中介绍过 checkout 命令,git checkout命令用于切换分支或恢复工作树文件。git checkout是 Git 最常用的命令之一,同时也是一个很危险的命令,因为这条命令会重写工作区。

    git checkou master
    

    合并分支

    git merge 命令用于合并指定分支到当前分支。

    git merge dev
    

    删除分支

    git branch -d dev
    

    标签管理

    通常,发布一个版本时,会在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。由于 Git 版本号是一串长长的字符串,同时查找 git message 也是一件非常繁琐的事情,通过给版本打标签可以让版本控制更加人性化。

    创建标签

    创建标签时若未指定版本号,若默认为当前版本。

    git tag <tagname> <commitid>
    

    创建标签时还可以带上说明

    git tag -a <tagname> -m "<description>" <commitid>
    

    查看所有标签

    git tag
    

    查看标签信息

    git show <tagname>
    

    删除标签

    删除本地标签

    git tag -d <tagname>
    

    删除远程标签

    git push origin :refs/tags/<tagname>
    

    推送标签到远程库

    推送一个本地标签

    git push origin <tagname>
    

    推送全部标签

    git push origin --tags
    

    参考链接

    廖雪峰的 Git教程
    30分钟教你学会Git

    相关文章

      网友评论

          本文标题:Git 新手教程(快速上手)

          本文链接:https://www.haomeiwen.com/subject/rszkwqtx.html