zoukankan      html  css  js  c++  java
  • git的使用以及常用命令、场景

    # Git简介

    ## Git是什么?

    Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 

    Git 是 [Linus Torvalds](https://baike.baidu.com/item/Linus Torvalds/9336769) 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    Git是目前世界上最先进的分布式版本控制系统。

    ![git](./assets/git.jpeg)



    #### 优点:

    适合[分布式开发](https://baike.baidu.com/item/分布式开发),强调个体。

    公共服务器压力和数据量都不会太大。

    速度快、灵活。

    任意两个开发者之间可以很容易的解决冲突。

    离线工作。

    #### 缺点:

    资料少(起码中文资料很少)。

    学习周期相对而言比较长。

    不符合常规思维。

    代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
     
    # 常用Git命令

    ## 分支操作:

    #### git clone

    git clone 代码库的url

    将线上库克隆到本地

    #### git add

    将工作区的修改提交到暂存区

    #### git commit

    将暂存区的文件或目录提交到版本库区

    #### git push

    将提交到本地库中的内容推送到远程库中

    #### git pull

    拉取远程分支代码

    #### git branch 分支名

    创建本地分支

    #### git branch 

    查看所有分支

    #### git checkout -b 分支名

    创建本地分支并切换到分支

    #### git checkout 分支名

    切换分支

    #### git checkout -d 分支名

    删除分支

    #### git merge 分支名

    在当前分支合并XX分支



    ## 版本管理:

    #### git status

    查看状态 

    #### git add 文件/文件夹 

    添加到暂存区

    #### git checkout --文件名

    放弃修改操作

    #### git commit "备注信息"

    添加到本地分支

    #### git log

    查看历史版本(想看简洁版的带上参数,--pretty=online)

    #### git reset 版本号

    回退历史版本 

    #### git reflog

    查看历史操作

    #### git diff 文件名

    查看文件的修改
    # Git运用场景

    #### 场景一:

    ​       当你正在写代码的时候突然线上服务器出现了个bug,这时候你不得不赶快处理线上的bug。一般我们会将正在写的代码,git add, git commit 一下,再切换到bug分支解决bug。解决完成以后git commit bug分支的代码。在切换回来。除了这样的操作,我们还有一种可选方案:

      1.正在写东西,突然有bug需要解决。

          git stash    #将当前的代码放在一个新的临时区/暂存区。以免带入其他分支。

          git checkout bug    #切换到bug分支

          vim views.py      #修改代码,解决bug

          git add views.py    #添加修改内容到暂存区

          git commit "change_bug"  #提交代码到本地仓库

          git checkout master   #切换都master分支

          git merge bug      #将bug分支的修改后的代码合并到master上

          git push origin master  #将本地master分支的代码推到远程

          git checkout dev    #切换到修改代码前的分支(原来的代码在dev分支上写的)

          git status        #查看dev分支的状态,发现原来对代码的修改没有了(写了半天,没有保存,心里很慌有没有啊。。。)

          more readme       #查看更久远的操作,发现依然没有。(这是真的有点慌,甚至有点小绝望啊)   

          git stash list        #查看临时保存的文件列表(我擦,找到了,过山车般的体验)

          git stash apply      #恢复到上次保存的位置(终于找到你,还好我没放弃)

          git status        #查看状态,发现一切和好如初(这个世界完美了。可以继续愉快的写代码了)

        git stash的一些其他操作:

          git stash drop    #删除最久的那个使用了git stash 保存的临时状态

          git stash apply stash@{0}    #恢复到指定的那个临时状态

          git stash pop    #恢复并删除上一个临时状态

          (ps: 1.git stash apply 恢复后,stash内容并不会删除,需要使用git stash drop 来删除

             2.另一种方式是使用git stash pop, 删除的同时把stash的内容也删除了)





    #### 场景二:

      多人合作开发,最后把所有人的代码合并到一起,然后测试并推到master中:

          git add *  git commit "success"      #将完成的代码添加到本地仓库,等待合并

          checkout maste    #切换到本地master分支

          git pull        #将远程master分支的代码下载到本地

          git merge dev     #将本地dev中开发的代码合并到master中(这时候发现有冲突。自己的代码和master里最新的代码有不一致的地方,不要慌,我和别人同时修改了原文代码导致的这种问题。下面需要进行手动合并。)

          git status        #查看文件状态,看都有哪些文件有冲突

          git diff views.py    #查看文件冲突的具体情况

          vim views.py      #手动修改文件

          git add views.py  git commit "change_merge"  #添加到本地仓库

          git push origin master    #推送到远程master分支
  • 相关阅读:
    git 仓库过大,clone不下来的解决办法
    vue项目使用elementUI pagination 实现前端分页
    Element中 Table表格数据居中显示设置
    css实现鼠标悬浮图片放大
    vue中配置开发环境、测试环境、生产环境
    vue中@keyup.enter没有作用
    LambdaToSql(轻量级ORM) 入门篇 开源项目
    04.如何升级扩展以支持Visual Studio 2019
    03. 将pdb调试文件包含到.vsix包中
    02.vs插件 获取项目和解决方案路径
  • 原文地址:https://www.cnblogs.com/anle123/p/13332370.html
Copyright © 2011-2022 走看看