Git入门操作

作者: 皮皮大 | 来源:发表于2019-12-18 21:22 被阅读0次

    本文中介绍了Git的部分原理和操作

    • 工作原理
    • 工作区、暂存区、版本库
    • 基本命令
    • 回退功能
    • 撤销和删除
    • 分支管理

    Git工作原理

    原理图

    Git是目前世界上最先进的分布式版本控制系统。工作原理见下图:

    image
    • workspace:工作区(本地目录)
    • index/stage:暂存区
    • respository :仓库区(本地仓库)
    • remote:远程仓库

    工作区、暂存区、版本库

    工作区:自己电脑上本机看到的目录,以及以后需要新建的目录文件等都是属于工作区的范畴

    暂存区:使用 git add 把文件添加进去,实际上就是把文件添加到暂存区;使用git commit提交更改,就是把暂存区的所有内容提交到当前分支上

    版本库:工作区目录下有一个隐藏目录.git,不是属于工作区的,这个是版本库。版本库里面存了很多的东西:stage(暂存区)、第一个分支master、指向master分支的第一个指针HEAD

    Git基本命令

    git init :初始化,会多出一个.git隐藏目录

    git status :查看状态

    git add <filename> :添加一个文件

    git add .:添加全部

    git commit -m "第一次提交" :提交到本地仓库中

    git diff <filename>:查看某个文件修改内容

    git clone git@github.com:pidada/charts.git :克隆某个仓库,后面是仓库地址

    image

    版本回退

    查看提交日志

    git log:查看提交版本号(从近到远的显示日志)

    git log —pretty=oneline:显示少许内容(版本号相关)

    回退版本

    git reset —hard HEAD^:上个版本

    git reset —hard HEAD^^:上上个版本

    git reset —hard HEAD~100:回退到前100个版本号

    回退指定版本

    git reflog:获取版本号

    git reset —hard 6fcfc89:回退到指定的版本(6fcfc89是版本号)

    撤销和修改

    撤销

    除了使用上面的回退版本方法之外,还可以使用下面的方法:

    git checkout -- <filename>

    image

    上述命令指的是将文件在工作区中的修改全部撤销,分为两种情况:

    • 文件修改后,没有放到暂存区,使用上述命令直接撤销和修改,回到和版本库一模一样的状态
    • 文件修改后,已经放入了暂存区,接着做了修改,撤销修改后回到添加暂存区后的状态
    image

    删除

    如果在版本库中添加了文件,然后提交

    git add test.txt
    git commit -m "add test"
    rm test.txt    # 直接删除文件
    git status  # 查看是否删除
    
    git checkout -- test.txt  # 恢复文件
    

    远程仓库

    添加公钥

    本地Git仓库和远程的GitHub仓库之间是通过SSH加密进行传输进行连接的。

    1. 创建SSH key,查看本地的.ssh目录(隐藏目录)

      • id_rsa:私钥

      • id_rsa.pub:公钥(需要添加到github的SSH keys页面中)

    2. 添加公钥

      image
    image image

    创建仓库

    关于新建github账号和GitHub仓库的过程,看Git使用-10分钟快速入门

    几条重要的命令

    git remote add origin https://github.com/tugenhua0707/testgit.git   
    git push -u origin master  #  从本地添加到远程仓库中,第一次需要加上 -u 参数
    git push origin master  #  后面的提交不需要
    

    分支

    创建、查看和切换分支

    git branch test  # 创建分支  
    git branch  # 查看分支  当前分支加上星号
    git checkout test  # 切换分支
    
    git checkout -b test  # 创建并切换分支,相当于是下面两句
    # git branch dev
    # git checkout dev
    
    # 如果在test分支上修改的内容,想合并到分支master上面
    git merge test  # 合并指定分支到当前分支上(需要在master分支上执行)
    
    git branch -d test  # 删除分支
    
    image

    分支管理策略

    通常合并分支时,git一般使用Fast forward模式,在这种模式下,删除分支后,会丢掉分支信息,使用带参数--no-ff来禁用Fast forward模式

    git merge --no-ff -m "merge with no-ff" test  # 合并分支,并且禁用fast forward模式
    

    笔记:首先master主分支应该是非常稳定的,也就是用来发布新版本,一般情况下不允许在上面操作。一般情况下在新建的test分支上操作,等到test分支代码稳定后,可以合并到主分支master上来。

    相关文章

      网友评论

        本文标题:Git入门操作

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