【Git】命令行操作
Git 命令行操作
1 本地库初始化
git init:初始化本地仓库
效果

注意:.git目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡乱修改。
2 设置签名
形式:
用户名:tom
Email地址:goodMorning@atguigu.com
作用:区分不同开发人员的身份
辨析:这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关系。
命令
- 项目级别/仓库级别:仅在当前本地库范围内有效
git config user.nametom_progit config user.emailgoodMorning_pro@atguigu.com- 信息保存位置:./.git/config文件

- 系统用户级别:登录当前操作系统的用户范围
git config --global user.nametom_glbgit 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】命令行操作的更多相关文章
- windows下使用TortoiseGit代替Git命令行操作
windows下使用TortoiseGit代替Git命令行操作 大家在使用svn的时候,都非常喜欢使用小乌龟,也就是TortoiseSVN:那么git也有小乌龟版本,即TortoiseGit. 1.安 ...
- 3.Git 命令行操作
1.Git 命令行操作(本地库操作): 1.1. 创建本地库(本地库初始化): 第一步:首先在D盘建了个名为git空文件夹,命令行中cd到这个文件夹: 第二步:通过git init命令把这个目录变成G ...
- git 命令行操作(之前整理在有道的笔记)
1. 常用命令 切换分支 git checkout [branch_name] 检出分支 git clone [git_URL] 更新分支 git pull origin [branch_name] ...
- GIT → 05:Git命令行操作
5.1 打开命令行窗口 安装Git后,在资源管理器的空白处,单击鼠标右键打开窗口,点击 Git Bash Here ,打开Git命令行窗口,在窗口中可直接使用Linux命令操作: 5.2 初始化Git ...
- git 命令行操作
Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目 这里说一下在命令行对git进行操作 git init [在本地初始化一个git库] //当你的git服务器里面已经有文 ...
- git命令行操作
从本地上传代码到仓库(假设已经建好仓库): 1.初始化: git init 2.将所有文件加入缓存区: git add * 3.提交当前工作空间的修改内容: git commit -m 'commit ...
- git命令行操作详解
目录 1.常用操作 1.1 新建代码库 1.2 配置 1.3 remote管理 1.4 添加和撤销操作 1.5 代码提交 1.6 分支操作 1.7 查看信息 1.8 pull操作 1.9 push操作 ...
- Git命令行操作(三)
1. 本地库初始化 进入指定目录,如:D:\gitSpace\OA 右键-->Git Bash Here,执行命令: git init 效果如下: #查看.git目录 ls -la # 进入.g ...
- 3. git命令行操作之远程库操作
3.1 基本操作 注册GitHub账号 在本地创建一个本地库并初始化 登录到gitHub创建一个远程库 注意:windows的凭据管理器中会保存github登录信息.如果要切换登录者,先删除相应凭据 ...
- 2. git命令行操作之本地库操作
2.1 本地库初始化 git init 命令 用于创建一个空的Git本地仓库或重新初始化一个现有本地仓库 注:.git目录中存放的是本地库相关的子目录和文件,不要删除也不要随意修改 git confi ...
随机推荐
- html5shiv.js和respond.min.js作用说明(IE9及以下兼容)
一.在web端页面开发过程中基本都会需要解决的问题(IE兼容): 1.解决ie9以下浏览器对html5新增标签的不识别,并导致CSS不起作用的问题. 2.让不支持css3 Media Query的浏览 ...
- JavaSE20-线程&同步
1.线程 1.1 基本概念 线程的概念 线程(Thread)是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并 ...
- 树莓派了解Linux基本命令
本节我们来了解一些基本的Linux命令(在树莓派上操作),看完之后,当你再面对Linux黑黑的命令框时至少不会不知所措,你可以用这些基本的命令完成一些需要的操作,比如查找.编辑.查看文件,查看基本的系 ...
- [日常摸鱼]bzoj2038[2009国家集训队]小Z的袜子-莫队算法
今天来学了下莫队-这题应该就是这个算法的出处了 一篇别人的blog:https://www.cnblogs.com/Paul-Guderian/p/6933799.html 题意:一个序列,$m$次询 ...
- burp中获取token进行暴力破解
选中线程设成1
- 阿里云Centos7.6上面部署基于redis的分布式爬虫scrapy-redis将任务队列push进redis
Scrapy是一个比较好用的Python爬虫框架,你只需要编写几个组件就可以实现网页数据的爬取.但是当我们要爬取的页面非常多的时候,单个服务器的处理能力就不能满足我们的需求了(无论是处理速度还是网络请 ...
- 推荐一款最强Python自动化神器!再也不用写代码了!
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 搞过自动化测试的小伙伴,相信都知道,在Web自动化测试中,有一款自动化测试神器工具: seleniu ...
- 图解Python中深浅拷贝
在工作中,常涉及到数据的传递,在数据传递使用过程中,可能会发生数据被修改的问题.为了防止数据被修改,就需要在传递一个副本,即使副本被修改,也不会影响原数据的使用.为了生成这个副本,就产生了拷贝.今天就 ...
- [.NET] - OleDb读取CSV文件:使用指定的分隔符号
今天在用OleDb方式读取一个CSV文件的时候,发现得到的文本不是通常用逗号隔开的.而是用Tab制表符来隔开的. OrderID OrderName 1 1 2 2 3 3 然后去MSND查询了了下发 ...
- Kafka超详细学习笔记【概念理解,安装配置】
目录 本篇要点 Kafka介绍 作为流处理平台的三种特性 主要应用 四个核心API 基本术语 快速开始 安装配置Zookeeper 下载kafka 配置文件 Windows的命令 启动Zookeepe ...