zoukankan      html  css  js  c++  java
  • git

    版本控制器

    版本控制器:完成协同开发项目,帮助程序员整合代码

    软件:SVN、GIT

    giv与svn比较:

    • svn服务版如果被黑,或是不可逆宕机等造成服务版代码丢失,会导致开发进度停滞
    • git应用客户端与服务端整合,在服务器出现问题时,不影响开发进度(启动一个客户端作为备用服务器),git可以做版本控制器集群部署

    git

    简介:

    """
    什么是git:版本控制器 - 控制的对象是开发的项目代码
    优点:集群化、对分支
    """
    

    git的工作流程:

    """
    工作区:开发程序代码(创建、编写、删除文件)  -- git add .  (提交所有文件到暂存库)
    暂存区:内存中临时存储  -- git commit -m '提交注释'  (提交暂存库中的文件到版本库中)
    版本库:本地开发的代码 -- git push origin master (提交版本库的文件到服务器本本库)
    服务器版本库:远程参考,服务器共有的代码
    """
    

    git的使用:

    1.安装:

    自行官网下载

    2. 基础命令:

    将已有的文件夹初始化为git仓库

    """
    >: cd 目标文件夹内
    >: git init
    """
    

    在指定目录下初始化git仓库

    """
    >: cd 目标目录
    >: git init 仓库名(会新建一个文件)
    """
    

    在仓库目录终端下设置全局用户

    """
    >: git config --global user.name '用户名'
    >: git config --global user.email '用户邮箱'
    
    注:在全局文件 C:Users用户文件夹.gitconfig 下新建用户信息,在所有仓库下都可以使用
    """
    

    在仓库目录终端下设置局部用户

    """
    >: git config user.name '用户名'
    >: git config user.email '用户邮箱'
    
    注:在当前仓库下的config新建用户信息,只能在当前仓库下使用
    注:一个仓库有局部用户,有限使用局部用户,没有配置再找全局用户
    """
    

    查看仓库状态

    """
    # 当仓库中有文件增加、删除、修改,都可以再仓库状态中查看
    >: git status
    	-- 查看仓库状态
    >: git status -s 
    	-- 查看仓库状态的简约显示
    """
    

    工作区操作

    # 通过任何方式完成的文件删与改
    # 空文件夹不会被git记录
    

    撤销工作区操作:改、删

    """
    # 以下操作都需要 git add .  git commit -m 'a' 后才能撤销
    >: git checkout . 
    	-- 撤销所有暂存区的提交
    >: git checkout 文件
    	-- 撤销某以文件的暂存区提交
    """
    

    工作区内容提交到暂存区

    """
    >: git add .
    	-- 添加项目中所有文件
    >:git add 文件名
    	-- 添加指定文件
    """
    

    撤销暂存区提交:add的逆运算

    """
    >: git reset .
    	-- 撤销所有暂存区的提交
    >: git reset 文件名
    	-- 撤销某以文件的暂存区提交
    """
    

    提交暂存区内容到版本库

    # git commit -m "版本描述信息"
    

    查看历史版本

    """
    # 查看历史版本:
    >: git log
    >: git reflog
    
    # 查看时间点之前|之后的日志:
    >: git log --after year-m-d
    >: git log --before year-m-d
    >: git reflog --after year-m-d
    >: git reflog --before year-m-d
    
    # 查看指定开发者日志
    >: git log --author author_name
    >: git reflog --author author_name
    """
    

    回滚版本

    """
    # 回滚到上一个版本:
    >: git reset --hard HEAD^
    >: git reset --hard HEAD~
    
    # 回滚到上三个版本:
    >: git reset --hard HEAD^^^
    >: git reset --hard HEAD~3
    
    # 回滚到指定版本号的版本:
    >: git reset --hard 版本号
    """
    

    git reset版本回滚注意事项:

    """
    执行git reset --hard之后,历史记录是不能跟远程的记录直接合并的,所以会报错。
    
    举个例子,远程是 A -> B -> C -> D,你 git reset --hard 之后是 A -> B。这时候除非远程那边抹掉 C 和 D,否则是不能合并的。
    
    因此,这时候,你应该使用 git push origin master --force 来强行覆盖远程记录。
    
    请不要根据提示使用 git pull。否则,你的本地又会变成 A -> B -> C -> D。因为 git pull 相当于 git fetch + git merge
    
    git revert回滚:其实,git reset --hard 和 git revert 都可以实现“回滚代码”。但区别在于:
    
    git revert 会把你的本地变成 A -> B -> C -> D -> E。其中,E 干的事儿是删除 C 和 D。这样做的好处在于,你 git push origin master 就不会有上面的报错了。但,历史线上还是会保留 C 和 D 这两个 commit。如果使用这个命令,记得要 add 然后 commit。
    
    git reset --hard 会直接删掉 C 和 D,形成 A -> B 这样的结果。好处在于更直接更彻底。缺点在于,首先要通过 git push origin master --force 去强行更改。其次,一旦你后悔了,除非根据本地的 reflog 直接恢复 HEAD 指针,此外没有其他办法。
    """
    

    过滤文件

    # .gitignore 文件
    # 1)在仓库根目录下创建该文件
    # 2)文件与文件夹均可以被过滤
    # 3)文件过滤语法
    
    """ 过滤文件内容
    文件或文件夹名:代表所有目录下的同名文件或文件夹都被过滤
    /文件或文件夹名:代表仓库根目录下的文件或文件夹被过滤
    
    eg:
    a.txt:项目中所有a.txt文件和文件夹都会被过滤
    /a.txt:项目中只有根目录下a.txt文件和文件夹会被过滤
    /b/a.txt:项目中只有根目录下的b文件夹下的a.txt文件和文件夹会被过滤
    *x*:名字中有一个x的都会被过滤(*代表0~n个任意字符)
    空文件夹不会被提交,空包会被提交
    """
    

    remote源操作

    """
    1) 查看仓库已配置的远程源
    >: git remote
    >: git remote -v
    
    2) 查看remote命令帮助文档
    >: git remote -h
    
    3) 删除远程源
    >: git remote remove 源名
    
    4)添加远程源
    >: git remote add 源名 源地址
    eg:git remote add orgin git@*.git
    """
    

    远程仓库操作

    """
    # 提交
    >: git push 源名 分支名
    eg: git push origin master
    
    # 下载
    >: git pull 源名 分支名
    eg: git pull origin master
    """
    

    多分支开发

    分支操作

    """
    1.创建分支
    >: git branch 分支名
    
    2.查看分支
    >: git branch
    
    3.切换分支
    >: git checkout 分支名
    
    4.创建并切换到分支
    >: git checkout -b 分支名
    
    5.删除分支
    >: git branch -d 分支名
    
    6.查看远程分支
    >: git branch -a
    
    7.合并分支
    >: git merge 分支名
    """
    

    远程仓库

    常用的有github、码云,如何使用自行百度

  • 相关阅读:
    547. Friend Circles
    399. Evaluate Division
    684. Redundant Connection
    327. Count of Range Sum
    LeetCode 130 被围绕的区域
    LeetCode 696 计数二进制子串
    LeetCode 116 填充每个节点的下一个右侧节点
    LeetCode 101 对称二叉树
    LeetCode 111 二叉树最小深度
    LeetCode 59 螺旋矩阵II
  • 原文地址:https://www.cnblogs.com/17vv/p/11954045.html
Copyright © 2011-2022 走看看