IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Git 命令行学习笔记( 图解 ) -> 正文阅读

[开发工具]Git 命令行学习笔记( 图解 )

Git? ? ?官网

分布式版本控制工具?可以团队协作合作开发 代码合并等?

?

github 和 (国产)码云gitee 都是代码托管工具就是远程仓库

下载可以去官网或者去腾讯软件中心下载? 官网有时候下载很慢??

腾讯软件中心 如果有腾讯电脑管家直接管家下载即可? 官网也是下载管家然后在进行安装

腾讯软件中心-海量软件高速下载

搜索框搜索 git即可

?傻瓜式安装一直next就行? 一直下一步安装即可

文中版本库 本地仓库 工作树指的都是本地仓库?

?

git config  查看语法

git config [ ]

git config -l/--list  列出所有配置信息


git config user.name    列出当前用户名

git config user.email   列出当前用户邮箱

?

设置/更改 用户 (这样才知道是谁提交的代码与用户关联起来)   --global 全局

git config --global user.name '用户名'

git config --global user.email '邮箱'

git init 初始化一个仓库

git add 命令可将该文件添加到暂存区。

添加一个或多个文件到暂存区:

git add [file1] [file2] ...

添加指定目录到暂存区,包括子目录:

git add [dir]

添加当前目录下的所有文件到暂存区:

git add .

git commit 命令将暂存区内容添加到本地仓库中。

提交暂存区到本地仓库中:

git commit -m [message]

[message] 可以是一些备注信息。

提交暂存区的指定文件到仓库区:

$ git commit [file1] [file2] ... -m [message]

-a 参数设置修改文件后不需要执行 git add 命令,直接来提交

$ git commit -a

git status  查看状态

通常我们使用 -s 参数来获得简短的输出结果:

git status -s

?

git config core.autocrlf false          去掉warning警告 

git config core.autocrlf true      不去掉改为true

?

git log  - 查看历史提交记录。

下面是花式查看

git log --oneline        简短一行展示

git log --pretty=oneline  一行展示

git log --pretty=oneline --graph   

git log参数详解_阿拉阿伯的博客-CSDN博客_git log 参数? ? ? ? ? 更详细的请参考别人地址查看

git log --pretty=oneline  从最近到最远的提交日志

版本回退 / 版本穿梭  要多练习

git reset 命令用于回退版本,可以指定退回某一次提交的版本。

git reset 命令语法格式如下:

git reset [--soft | --mixed | --hard] [HEAD]

git reset --soft HEAD^:温柔的回退。 回退版本库

git reset --mixed HEAD^:中等回退。  回退和缓存区

git reset --hard HEAD^:强硬的回退。  慎用 回退版本库与缓存区并且工作区也会回退
意思就是说如果你更改了代码没有提交到版本库里面 执行了强硬回退那么代码白写了 

head 指针会指向当前版本

HEAD 表示当前版本
HEAD^ 上一个版本
HEAD^2 上上一个版本
HEAD^3 上上上一个版本
HEAD~100 回退前一百个

--hard 回退本地仓库(版本库) / 暂存区 / 工作区 全部回退      (之前修改的代码也没了,需要谨慎使用)
git reset --hard [id是指定ID回退 / head] 
根据 id 回退到指定的版本;

我们已经根据 git log 命令看到了所有的提交的信息,本文中,我以回退到 个人模块修改包引入顺序 版本,即 commit id 为 7222c8f6be2d663982faa98dffe2647966b438b1;

回退到指定快照/版本      同时可以使用git reflog 查看回退日志 然后输入ID还能钱进回来
git reset --hard 7222c8f6be2d663982faa98dffe2647966b438b1;


本地仓库(版本库) / 暂存区 / 工作区 全部回退上一个版本
git reset --hard HEAD^

--mixed 是默认的   回退本地仓库(版本库) / 暂存区            (常用)
回退本地仓库(版本库) / 暂存区到上五个版本 回退5次
git reset head^5 相当于  git reset --mixed head^5

--soft 回退本地仓库(版本库)
git reset --soft head^  回退本地仓库到上一个区域

git reflog  查看回退记录

?Git 版本穿梭 多学习

首先,Git必须知道当前版本是哪个版本,在git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

  • HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

  • 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

  • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

git diff  比较暂存区与工作区文件的不同

a代表暂存区  b代表工作区

在工作区新建文件不会比较  必须是已在暂存区文件才会与工作区文件比较那里不一样


当暂存区中没有文件时,git diff比较的是,工作区中的文件与上次提交到版本库中的文件。

当暂存区中有文件时,git diff则比较的是,当前工作区中的文件与暂存区中的文件。



?

git diff head  版本库 与 工作区

而 git diff HEAD -- file,比较的是工作区中的文件与版本库中文件的差异。HEAD指向的是版本库中的当前版本,而file指的是当前工作区中的文件

git diff --cached         版本库 与 暂存区比较


git diff --cached 版本号 比较    指定版本库与暂存区比较
git diff --cached 5289812

git diff 2ae7504f278002d7158925e77446b2093f54f67a 5289812c449ebb947e99e81e86b12b23236a9be9 

指定比较两个版本




ls 查看本地文件 

ls -a 查看本地文件以及隐藏文件

ll 查看本地文件外加详细信息

ll -a 查看本地文件以及隐藏文件

rm [file] 删除本地文件


rm -rf [dir / file]   
rm命令通常用于删除Linux中的文件。可以添加参数用来删除目录。例如,递归地删除目录,使用递归选项-r或-R,如果目录是受写保护的,则会提示是否继续删除目录和目录中的文件作为一个整体。-f 强制删除而不被提示。


git ls-files 查看暂存区文件

?不小心删除文件

当没有把暂存区的内容提交到版本库中时 
git checkout -- xx.txt       恢复工作区某个文件根据暂存区恢复的 如果暂存区没有则没有了

git checkout  filename 

可以把工作区的指定文件恢复到暂存区状态

git checkout  . 

将工作区的所有文件的内容恢复到暂存区的状态


git checkout <commit> filename    将工作区指定的版本 里面的文件恢复到工作区里面

当你提交了版本库时,表示将工作区和暂存区都恢复到版本库指定提交版本的指定文件的状态,此时HEAD指针不变,此时的状态相当于把工作区的内容修改到指定版本的文件内容后,再把修改的内容添加到暂存区。因此git checkout <commit> filename后,可以直接执行git commit而不需要先执行git add


如果这时候你不知道删除了那个文件 不小心提交了版本库可以使用下面方式

git show?9fa71b2637fceb1388cdd058ec1c043ec7b0f024

查看指定版本都干了些什么 能在里面看到删除 以及更改的内容 

然后在git checkout <commit> filename 指定版本恢复指定的文件

将文件从暂存区和工作区中删除:

git rm <file>


git 删除之后 不会删除你提交到版本库的文件 

git checkout <file> 就恢复不了了   

可以使用 git checkout <commit> filename 指定版本库恢复文件 

?

linux命令行更改重命名  
mv a.txt aa.txt  
会认为你删除了一个文件之后新建了一个文件


git mv b.txt bb.txt        git重命名文件

?

忽略文件   不想让git管理
  
.gitignore 创建次文件 添加内容 

识别某些格式文件,然后自主不跟踪他们 

touch .gitignore

echo *.temp > .gitignore      *.temp 只要是.temp的文件都忽略

ls -a 查看隐藏文件

?分支

git branch            会列出你的本地的分支。

master       主分支

带 * 绿色的是当前分支


git branch <名字>      创建分支
git branch ki-login


git checkout <分支名称>    切换分支 
git checkout ki-login

git checkout -b iss53        
Switched to a new branch "iss53"
它是下面两条命令的简写:

git branch iss53
git checkout iss53


git status 查看状态同时也能查看分支        

On branch ( ki-login )           这个就是现在分支

每个分支都有自己独立代码 互不干扰

HEAD 永远指向当前的分支

?

?

?HEAD永远指向当前分支

?分支合并

feature-xxx          分支命名 



合并分支

分支合并 首先切换到主分支 要在主分支合并

git merge feature-xxx  把feature-xxx分支合并到主分支上

场景一?

?

?

?场景二? ?(两个分支修改同一个文件然后合并到主分支)

?

?

?

?解决冲突

?工作中避免冲突 第一件事是(即时)拉取最新代码 下班是提交代码

git branch -d ki-11 ki-22       删除分支

删除ki-11 和ki-22 分支

.gitignore  文件操作

/表示目录          /vendor     比如/A  就是忽略A目录下所有内容

* 表示匹配多个字符

忽略以iml结尾的文件就用*.iml


[] 表示匹配多个单个字符

[abc] 就是代表a,b,c中的任意一个字符就好

!表示跟踪某类文件   !就是不会在被忽略了

比如 /*,!*.c表示忽略所有文件,但是跟踪.c结尾的文件,这样.c结尾的文件就不会被忽略了

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 23:24:56  更:2022-04-06 23:26:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 14:54:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码