git是什么,有什么用处呢?
使用场景
- 备份
- 代码还原
- 协同开发
- 追溯他人编写代码时间和编写人(找人背锅)
(代替云盘和U盘的存在)
常用管理工具有
SVN 和 CVS 集中式控制版本工具等
Git 为开源分布式版本控制工具(重)
(学了svm学gif的同学建议完全忘掉svm学习,不然会乱)
最重要的概念是远程仓库和本地仓库,远程仓库可以是github,gitee,giitlab…
下载地址: https://git-scm.com/download(傻瓜式安装,全都默认就行)
安装后
如果右键有Git GUI Here
和 Git Bash Here
两个选项就说明安装的没太大问题
Git GUI : Git提供的图像界面工具
Git Bash : 提供的命令工具,相当于linux的一个小窗口
以下例子都是在: Git Bash演示,所以需要一点基本的linux
命令,提前列举一下:
- Is [- all] 查看当前目录文件
- cat [文件名字] 查看文件内容
- touch [文件名字] 创建文件
- vi [文件名字] vi编辑器为了方便展示效果,也可以用记事本
设置邮箱和用户名
git config --global user.name "majic"
git config --global user.email ""
查看用户名和邮箱
git config --global user.name
git config --global user.email
由于是在window系统,或多或少还是会有一些不兼容的问题,解决办法:
git config --global core.quotepath false
在${git_home}/etc/bash.bashrc (就是安装Git的根文件下的etc文件)文件最后加入下面两行代码
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
建立一个空文件,这里命名为test,右键打开git.bash
git init
即可成功初始化仓库,如下图
如果看不见这个文件,设置显示隐藏文件就行
- 对于新建的文件, 则为未跟踪状态(untracked),此时git没有对该文件进行管理,
- 对于已跟踪未修改的文件,此时还没有提交到仓库,则为未暂存状态(unstaged)
在学习GIt的时候,会有一个疑问:为什么不进行将修改的代码或添加的文件从工作区直接提交到仓库呢?
还有一个疑问,为什么不修改一个文件,提交一次仓库呢,那有没有想过,如果是这样,会大大增加工作量,修改一个文件需要提交一次,使用暂存区则在开发好后,选择需要提交的文件进行提交.
修改文件,文件下的不同状态
git add 工作区 => 暂存区
git commit 暂存区 => 本地仓库
此外Git中的命令是分大小写的
在bash中输入指令(创建文件)
touch file01.txt
git status
git add .
其中. 是通配符,全部文件添加,也可以指定文件名
查看修改状态
git status
他的操作是将缓存区的文件送往仓库,所以不需要指定文件
git commit -m "add file01"
git log
- –all 显示全部分支
- –pretty=online 将所有显示为一行
- –abbrev-commit 使得输出的commitId更简短( 从十几位数字变为七八位)
- –graph 以图的形式显示
在项目开发中,如果想实现一个指令,但是代码很长,那怎么让他用较短命令实现呢,我们可以使用别名。
.bashrc
文件alias 自定义命令 = '命令'
例子:
#用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
#用于输出当前目录所有文件及基本信息 -al 即-all 查看所有
alias ll='ls -al'
alias git new_branch = 'git branch -b'
效果: 原本需要一大串代码现在只需要几个字符,是不是比原先的简洁多了
生成一个文件,并开始编辑(如果编辑不了按Insert
键
如:
vi file01.txt
Esc
输入:wq
即可退出编辑。只需要一行代码即可(commitID 是你的提交记录,版本是按照时间从上到下)
git reset 命令语法格式如下:
git reset [--soft | --mixed | --hard] [HEAD]
菜鸟教程
例子:
git reset --hard commitID
首先通过clear
清空页面
分别查看日志,然后版本回退上面的操作,再看日志,
之前所编辑的文本消失不见,回退成功
在上述我们进行版本回退之后想要撤销如何操作呢
问题:如果之前的commitID 当前命令行没有怎么办呢(比如:clear页面)
一行代码即可(查看参考日志reference log)
git reflog
便可知道上次记录的commitID(这是因为 git的所有操作都是 被记录在案的 即使 你是用 --hard 全部文件删除也可以返回)
我们通过命令touch .gitignore
创建文件.gitignore
,使用vi
命令编辑
退出(vi编辑,不知道如何退出的,上面讲解有说,不要忘了哦)
即远程仓库
(全球最大交友平台) Github 开源 (只支持git管理,网速慢)
国内的 码云 Gitee (优点,速度快)
Gitlab(企业常用,私人)
…
注册并激活码云账号( 注册页面地址:https://gitee.com/signup
)
在上传的时候都需要验证你的身份,可以时手机号码验证等,不过一般常用的使用公钥SSH
流程:
ssh-keygen -t rsa
不断回车(不需要配置信息)
如果需要再自己配置
cat ~/.ssh/id_rsa.pub
ssh -T git@gitee.com
成功配置托管服务!!
✨感谢您的阅读,您的点赞与收藏是我写作的最大动力!✨