Git使用详解之命令行工具Git for windows
Git使用
注:命令行操作所有字符皆为英文字符
命令行操作部分命令和linux命令相同,例tab补全,clear清屏,cat查看文件内容
1.下载及安装
1.1.命令行工具:Git for windows
下载地址:https://git-scm.com/download
1.2.可视化工具:TortoiseGit
下载地址: https://tortoisegit.org/
1.3.官网下载:https://git-scm.com/download
双击安装,一路下一步即可。
安装成功后,在任何目录下,右键有以下菜单说明安装成功:
2.全局配置
安装完成后,还需要最后一步设置:Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。
在合适的地方创建一个版本库(见后序),空文件夹即可(以后存储项目的文件夹)
右键:git bash here
在git bash命令行输入如下:git config --global user.name “aoshaobao”
在git bash命令行输入如下:git config --global user.email “***@qq.com”
–global 表示全局属性,所有的git项目都会共用属性。
C:\Users{用户名}路径下的.gitconfig文件里面可以看到:也可以直接在文件中修改
3.GitBash的使用
首先这里明确一下,所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。
遗憾的是,Microsoft的Word文档是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动的,如果要真正使用版本控制系统,就要以纯文本方式编写文件。
3.1.创建版本库
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。由于git是分布式版本管理工具,所以git在不需要联网的情况下也具有完整的版本管理能力。
首先,选择一个合适的地方,创建一个空目录(E:\temp\workspace)。
创建仓库执行命令:git init
成功创建一个空的git版本库,效果:首先,文件夹选项–>显示隐藏的文件夹(win10大致相同)
版本库(本地仓库):“.git”目录就是版本库,将来文件都需要保存到版本库中。
工作目录:包含“.git”目录的目录,也就是.git目录的上一级目录就是工作目录。只有工作目录中的文件才能保存到版本库中。
3.2.添加文件
分三步:
- 在E:\temp\workspace目录下创建一个111.txt文件
- 添加到暂存区:git add 文件名(可以添加多个文件:git add 文件列表(空格分隔);或者使用add .
表示该文件夹里所有内容) - 提交到本地仓库:git commit -m “提交信息”。提交信息:随便写,但要有含义。 通过git status查看本地仓库状态
(详情见下图)
提交成功
3.3.查看提交记录
查看提交信息:git log 文件名
简易信息查看:git log --pretty=oneline 文件名
3.4.修改文件
被版本库管理的文件不可避免的要发生修改,此时只需要直接对文件修改即可。修改完毕后需要将文件的修改提交到版本库。
3.4.1.提交修改
修改111.txt后,修改后图标变成红色感叹号
查看状态:git status
提交方式跟添加文件一样,先执行:git add 111.txt,再执行:git commit -m “第一次修改了文件”
3.4.2.差异比较
当文件内容修改后,需要和修改之前对比一下修改了哪些内容此时可以使用“比较差异功能”
执行git diff 111.txt
3.4.3.还原修改
当文件修改后不想把修改的内容提交,还想还原到未修改之前的状态。此时可以使用“还原”功能。
git checkout --111.txt 还原
注意:git checkout --file命令中的 --很重要,没有 --,就变成了“切换到另一个分支”的命令。其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
git reset --hard 版本号 换到到指定版本号
git reset --hard HEAD^ 回退到上一次提交
git reset --hard HEAD~n 回退n次操作
还原有三种情况:
- 修改后还没有被放到暂存区:从版本库还原最新版本:git checkout --111.txt
- 修改后已经添加到暂存区后,又作了修改:
a) 从暂存区还原:git checkout --111.txt
b) 从指定最新版本库还原:git reset --hard HEAD - 修改后已经提交到版本库,从历史版本还原:git reset --hard 版本号
- 修改内容:
从版本库还原:
还原后:
- 修改后已经添加到暂存区后,又作了修改: 从暂存区还原:git checkout --111.txt
修改内容,并执行git add 111.txt 加入暂存区
再次修改文件内容:
执行还原:git checkout --111.txt
那么,修改后已经添加到暂存区后,又作了修改,如何从版本库还原?git reset --hard head
- 已经提交了不合适的修改到版本库时,想要撤销本次提交。
git reset --hard {commit id}:工作空间中的文件内容变了(变成commit id对应的版本内容),暂存区内容没了,git的Head也变了
可以看到所有的一切回到了第一个版本,但是如果又后悔了再次切回到第二个版本呢?
还好git作为版本库管理工具,所有的操作都有记录
执行:git reflog,可以看到所有的操作记录,其中就能找到第二个版本的commit id
再次执行:git reset --hard {commit id},就回到最新的版本
3.5.删除文件
确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit
删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本
命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到版本库,你会丢失未提交的修改内容。
PS:希望此次疫情早早结束,一切重回正轨!
更多推荐
所有评论(0)