Git 命令行操作

1 本地库初始化

git init:初始化本地仓库

效果

注意:.git目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡乱修改。

2 设置签名

形式:

用户名:tom
Email地址:goodMorning@atguigu.com

作用:区分不同开发人员的身份

辨析:这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关系。

命令

  • 项目级别/仓库级别:仅在当前本地库范围内有效

    • git config user.nametom_pro
    • git config user.emailgoodMorning_pro@atguigu.com
    • 信息保存位置:./.git/config文件

  • 系统用户级别:登录当前操作系统的用户范围
    • git config --global user.nametom_glb
    • git config --global goodMorning_pro@atguigu.com
    • 信息保存位置:~/.gitconfig文件(~代表根目录)

  • 级别优先级
    • 就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别的签名
    • 如果只有系统用户级别的签名,就以系统用户级别的签名为准
    • 二者都没有不允许

3 基本操作

3. 1 状态查看

git status:查看工作区、暂存区状态

3. 2 添加

git add [filename]:将工作区的“新建/修改”添加到暂存区

  • filename:为欲添加的文件名,*代表当前目录的所有文件。

3. 3 提交

git commit -m "commit message" [filename]:将暂存区的内容提交到本地库

3. 4 查看历史记录

git log:查看历史记录,显示完整的历史记录信息

多屏显示控制方式:

  • 空格:向下翻页
  • b:向上翻页
  • q:退出

上面这种方法显示的历史记录可能不太好看:我们可以采用以下方法进行简化历史记录的显示:

git log --pretty=oneline:我们可以使用此命令让历史记录放在一行上

git log --oneline:缩短了哈希值的显示,只显示后面7位

上面的几种方法只能显示过去与现在


下面这个命令可以显示过去、现在和未来

git reflog:这种方式可以看到我们所有的历史记录,包括回退前、回退后、过去、现在、将来。



HEAD@{移动到当前版本需要多少步}

3. 5 前进后退

本质:使用git reflog来显示所有历史记录

可以使用以下方法来移动HEAD指针



基于索引值操作[推荐]

  • git reset --hard [局部索引值]
  • git reset --hard a6ace91

使用^符号:只能后退

  • git reset --hardHEAD^:一个^表示后退一步,n个表示后退n步

使用~符号:只能后退

  • git reset --hardHEAD~n:表示后退n步

3. 6 reset 命令的三个参数对比

原本本地库、暂存区、工作区三者版本一致:

--soft参数

  • 仅仅在本地库移动HEAD指针



    这里可以看出,我们的本地库版本退后了一步,而其他的都没改变

--mixed参数

  • 在本地库移动HEAD指针
  • 重置暂存区(重置,即 后退版本)

--hard参数(这个用的最多)

  • 在本地库移动HEAD指针
  • 重置暂存区
  • 重置工作区

3. 7 删除文件并找回

前提:删除前,文件存在时的状态提交到了本地库。

操作:git reset --hard [指针位置]

  • 删除操作已经提交到本地库:指针位置指向历史记录
  • 删除操作尚未提交到本地库:指针位置使用HEAD

3. 8 比较文件差异

git diff [文件名]:将工作区中的文件和暂存区进行比较

git diff [本地库中历史版本] [文件名]:将工作区中的文件和本地库历史记录比较

git diff:不带文件名比较多个文件

4 分支管理

4. 1 什么是分支?

在版本控制过程中,使用多条线同时推进多个任务。

4. 2 分支的好处?

  • 同时并行推进多个功能开发,提高开发效率
  • 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

4. 3 分支操作

git branch [分支名]:创建分支

git branch -v:查看分支

git checkout [分支名]:切换分支

合并分支

  • 第一步:切换到接受修改的分支(被合并,增加新内容)上

    git checkout [被合并分支名]
  • 第二步:执行merge命令

    git merge [有新内容分支名]

解决冲突

  • 冲突的表现

  • 冲突的解决
    • 第一步:编辑文件,删除特殊符号
    • 第二步:把文件修改到满意的程度,保存退出
    • 第三步:git add [文件名]
    • 第四步:git commit -m "日志信息"

      注意:此时commit一定不能带具体文件名

命令行常用操作步骤

情况一:创建自己的项目

1. 创建远程库



2. 创建远程库地址别名

git remote -v 查看当前所有远程地址别名

git remote add [别名] [远程地址]

3. 推送

git push [别名] [分支名]

推送需要输入账号和密码:

情况二:克隆别人的项目

1. 克隆远程仓库(从无到有)

git clone [远程地址]

效果

  • 完整的把远程库下载到本地
  • 创建 origin 远程地址别名
  • 初始化本地库

情况三:更新已有的项目

1. 拉取(从旧到新)

  • pull=fetch+merge
  • git fetch [远程库地址别名] [远程分支名]
  • git merge [远程库地址别名/远程分支名]
  • git pull [远程库地址别名] [远程分支名]

【Git】命令行操作的更多相关文章

  1. windows下使用TortoiseGit代替Git命令行操作

    windows下使用TortoiseGit代替Git命令行操作 大家在使用svn的时候,都非常喜欢使用小乌龟,也就是TortoiseSVN:那么git也有小乌龟版本,即TortoiseGit. 1.安 ...

  2. 3.Git 命令行操作

    1.Git 命令行操作(本地库操作): 1.1. 创建本地库(本地库初始化): 第一步:首先在D盘建了个名为git空文件夹,命令行中cd到这个文件夹: 第二步:通过git init命令把这个目录变成G ...

  3. git 命令行操作(之前整理在有道的笔记)

    1. 常用命令 切换分支 git checkout [branch_name] 检出分支 git clone [git_URL] 更新分支 git pull origin [branch_name] ...

  4. GIT → 05:Git命令行操作

    5.1 打开命令行窗口 安装Git后,在资源管理器的空白处,单击鼠标右键打开窗口,点击 Git Bash Here ,打开Git命令行窗口,在窗口中可直接使用Linux命令操作: 5.2 初始化Git ...

  5. git 命令行操作

    Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目 这里说一下在命令行对git进行操作 git init [在本地初始化一个git库] //当你的git服务器里面已经有文 ...

  6. git命令行操作

    从本地上传代码到仓库(假设已经建好仓库): 1.初始化: git init 2.将所有文件加入缓存区: git add * 3.提交当前工作空间的修改内容: git commit -m 'commit ...

  7. git命令行操作详解

    目录 1.常用操作 1.1 新建代码库 1.2 配置 1.3 remote管理 1.4 添加和撤销操作 1.5 代码提交 1.6 分支操作 1.7 查看信息 1.8 pull操作 1.9 push操作 ...

  8. Git命令行操作(三)

    1. 本地库初始化 进入指定目录,如:D:\gitSpace\OA 右键-->Git Bash Here,执行命令: git init 效果如下: #查看.git目录 ls -la # 进入.g ...

  9. 3. git命令行操作之远程库操作

    3.1 基本操作 注册GitHub账号 在本地创建一个本地库并初始化 登录到gitHub创建一个远程库 注意:windows的凭据管理器中会保存github登录信息.如果要切换登录者,先删除相应凭据 ...

  10. 2. git命令行操作之本地库操作

    2.1 本地库初始化 git init 命令 用于创建一个空的Git本地仓库或重新初始化一个现有本地仓库 注:.git目录中存放的是本地库相关的子目录和文件,不要删除也不要随意修改 git confi ...

随机推荐

  1. POJ1422

    题目大意: 一个有向无环图,求最小路径覆盖 板子题... 把每个点拆成\(x\)和\(x^{'}\) \((u,v)\)有一条边则\(u\)向\(v^{'}\)连一条边,然后跑最大匹配,最小路径覆盖= ...

  2. Pytest学习(20)- allure之@allure.step()、allure.attach的详细使用

    一.@allure.step的用法 可以理解为我们编写测试用例中的每一步操作步骤,而在allure中表示对每个测试用例进行非常详细的步骤说明 通过 @allure.step(),可以让测试用例在all ...

  3. I/O-外部设备

    目录 输入设备 输出设备 显示器 阴极射线管(CRT)显示器 字符显示器 图形显示器 图像显示器 打印机 小结 外存储器 磁盘存储器 磁盘设备的组成 存储区域 硬盘存储器 磁盘的性能指标 磁盘地址 硬 ...

  4. Mycat配置分库分表(垂直分库、水平分表)、全局序列

    1. Mycat相关文章   Linux安装Mycat1.6.7.4并实现Mysql数据库读写分离简单配置   Linux安装Mysql8.0.20并配置主从复制(一主一从,双主双从)   Docke ...

  5. nginx负载均衡引出的登录session的配置问题

    不使用session,换成cookie session是存放在服务器端的,cookie是存放在客户端的,我们可以把用户访问页面产生的session放到cookie为中转站.你访问web服务器A,产生了 ...

  6. Kubernetes【K8S】(一):Kubernetes组件

    什么是Kubernetes ​ Kubernetes 是一个可移植的.可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化.Kubernetes拥有一个庞大且快速增长的生态系统. ...

  7. 使用plsql 连接oracle数据库

    1. 首先,需要下载oracle数据库的客户端,因为plsql是32位的,所以推荐下载32位的oracle数据库客户端呢 2. 将客户端解压到没有中文目录的文件夹下. 3. 在plsql中指定orac ...

  8. 什么是babel

    什么是babel babel是一款基于node开发的工具,其功能是对es6的新语法和新特性进行转码.

  9. git 上传 + 分支

    Git   上传 创建本地文件夹,更改为项目仓库(test) (1) 新建文件夹   test (2) 打开文件夹   git init 把项目添加到仓库内(test) (1) 复制项目到文件夹内 ( ...

  10. Sharding-JDBC使用jasypt3.0及以上版本加密数据库连接密码

    本文中介绍的是基于Sharding-JDBC 4.0和jasypt 3.0及其以上版本对数据库连接密码进行加密操作 引入依赖 项目的pom.xml中引入maven依赖 <dependency&g ...