• 第一篇:Git操作详解


    最近由于项目的需要,我需要负责整个项目的托管,其中涉及到很多Git相关的命令,所以就将之前用到的git相关的命令做了一个总结和归纳。由于开发环境是Linux,所以我接下来的操作命令均针对Linux环境。

    git是一个开源的分布式的版本控制系统,主要用于项目的管理。

    分布式:git使用分布式管理。即每个节点关系平等,都保存完整代码,节点之间相互推送或者下载代码。

    集中式:有明确的中央服务器统一管理代码,每个节点都将代码上传中央服务器或者从中央服务器下载代码。

    一、git安装准备与配置

    1、git安装

    $ sudo apt-get install git
    $ git --version 查看当前git版本

    2、git的基本配置

    2.1、系统中所有用户均使用的配置

    命令:sudo git config --system
    配置文件:/etc/gitconfig
    e.g. 配置用户名
    cassie@com:~$ sudo git config --system user.name Cassie
    cassie@com:~$ cat /etc/gitconfig
    [user]
    name = Cassie


    2.2、当前用户的所有项目均使用的配置

    命令:git config --global
    配置文件:~/.gitconfig
    e.g. 配置用户邮箱
    cassie@com:~$ git config --global user.email cassie@qq.com
    cassie@com:~$ cat ~/.gitconfig
    [user]
    email = cassie@qq.com
    name = 0513Cassie


    2.3、只在当前项目中使用的配置

    命令:git config (命令只要在git项目文件夹中执行)
    配置文件:project/.git/config
    
    e.g.配置编译器
    git config core.editor vscode

    二、git操作

    下面这种图是我在网上看到的一张关于git操作总结的一张图,下面我将按照这张图片进行一个Git相关命令行的操作总结。

    ![](https://user-gold-cdn.xitu.io/2018/11/2/166d3a92f4930bda?w=554&h=157&f=png&s=61714)

    首先,对上图的几个概念进行讲解一下:
    - 工作区(workspace):通过自己的主机操作的git目录。
    - 暂存区(index):用来记录工作行为的,即所有的操作git的记录,作为一个暂时保存。
    - 本地仓库(Repository):本地用来备份同步工作区内容的区域。
    - 远程仓库(Remote):其他主机的git。

    2.1、工作区、缓存区、本地仓库之间数据操作

    初始化仓库

    $ mkdir gittest
    $ cd gittest
    $ git init


    查看工作分支的状态

    $ git status
    * 当工作区和仓库没有任何差异的时候不会有任何提示
    * 默认工作分支为master,可以通过创建新的分支进行切换


    文件提交到暂存区

    $ git add [file]
    $ git add * 全部提交
    * 可以一次提交多个内容,中间用空格隔开
    * 提交的内容可以是文件也可以是文件夹

    删除暂存区的记录

    删除内容为文件:
    $ git rm --cached 文件名称
    删除内容为文件夹:
    $ git rm --cached 文件夹名称 -r

    将暂存区记录的修改内容同步到本地仓库

    $ git commit -m "message"

    查看提交日志

    $ git log
    $ git log --pretty=online 日志单行显示

    2.2、工作区操作

    查看工作区文件和本地仓库的差别
    $ git diff [file]
    
    放弃工作区的修改
    $ git checkout -- [file]
    
    恢复本地仓库文件到工作区
    $ git checkout [file]

    2.3、文件移动

    删除工作区文件并提交到暂存记录
    $ git rm [file]
    
    移动工作区文件并提交到暂存区
    $ git mv file dir

    2.4、版本控制命令

    回到之前的版本
    $ git reset --hard HEAD^
    * HEAD后面有几个^表示回到之前的几个版本
    
    
    通过commit_id回到指定的版本
    $ git reset --hard commit_id
    
    查看操作日志
    $ git relog
    * 获取到操作记录后可以根据commit_id去往比较新的版本

    2.5、标签管理(属于本地仓库的操作)

    创建标签
    $ git tag v1.0
    *默认会在最新的commit_id
    
    查看标签
    git tag 查看所有标签
    git show v2.0 查看某个标签的具体信息
    
    在某个指定的commit_id处打标签
    $ git tag v1.0 [commit_id]
    
    恢复标签时的状态
    $ git reset --hard v1.0
    
    删除标签
    git tag -d v2.0

    3、常见问题

    3.1、git reset --hard commit_id 误操作如何回到之前的版本

    注意git log 命令是查看提交日志,所以如果我们进行上面的回到之前的版本在git log里面是无法查看commit_id的,这时候我们就需要使用 git reflog命令。

    注意:git reflog命令是查看操作日志的,在这里我们可以查到所以操作的详细信息,

    拿到commit_id 之后,通过git reset --hard commit_id这个命令回到指定版本即可

  • 相关阅读:
    新版ubuntu中打开终端的方法和安装ssh 的方法
    HTML中利用404将老域名重定向到新域名
    KeelKit 1.0.3500.25185
    如何制作VSPackage的安装程序
    一副漫画:IE6滚回你老家去
    “表单控件”与“实体类”
    VS2005中得到 Web页面 或 窗体的 IDesignerHost
    一句SQL搞定分页
    CodeDom Assistant CodeDom的强大工具, 有些BUG修正了下,发到CodePlex,大家有需要的可以看看
    VS2005 出现 The OutputPath property is not set for this project. 错误的解决方法
  • 原文地址:https://www.cnblogs.com/leijing0607/p/7682307.html
Copyright © 2020-2023  润新知