核心思想:控制版本,新的版本要迭代,老的版本要保存
版本控制的优势:
常见的版本控制工具:
记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用,如RCS
代表:SVN
所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改
代表:Git
所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。
windows下载地址
选择安装位置,可以选择自己的环境
选择Git默认的编辑器,选择自己常用的就行
下载好之后会发现有三个应用Git Bash、Git CMD、Git GUI
Git Bash:unix与Linux风格的命令行,使用最多,最推荐
Git CMD:windows-cmd风格的命令行
Git GUI:图形界面的Git,不建议使用
由于我们需要使用Git Bash所以需要对Linux有一定了解,下面提供了一些基本的Linux的命令
所有的配置文件都保存在本地
git config -l # 查看配置
git config --system --list # 查看系统配置
git config --global --list # 查看本地配置(主要包含的使用者的账户和密码)
系统配置和用户配置都是存在Git文件下的配置项文件:
可以在Git目录下搜索gitconfig查看自己的系统配置:
用户目录在C盘下
了解了配置项,我们需要用命令行进行用户项配置:
git config --global user.name “用户名”
git config --global user.email “邮箱地址”
Git有四个区域:
工作目录(workspace)一般就是希望通过Git帮助你进行文件夹管理,可以是你的项目目录,也可以是空目录,但是不建议出现中文。
日常使用需要记住如下6个命令
重点是push、commit和add
本地仓库搭建:git init,执行完git init会出现一个.git文件
或者使用git clone的方式进行创建
这种方式是克隆远程目录,将远程服务器上的仓库完全镜像一份到本地
git clone url
版本控制就是对文件的版本控制,要对文件进行修改、提交等操作,首先要知道文件当前在什么状态,不然可能会提交了现在不想要提交的文件,或者要提交的文件没提交上。
git add
状态变成Staged
.Modified
.如果使用git rm
移除版本库,则成为Untracked
文件。git add
进入暂存staged
状态,使用git checkout
,则丢弃修改过,返回到unmodify
状态,这个git checkout
即从库中取出文件,覆盖当前修改!git commit
则将修改同步到库中,这时库中的文件和本地文件又变成一致,文件未Unmodify
状态,执行git reser HEAD filename
取消暂存,文件状态变成Modified
.在刚才初始化好的文件中检查文件状态
git status
显示没有文件被跟踪,我们在该文件夹下创建一个文件(名为main.js),继续使用status检查状态,发现main.js未被跟踪。
git add . # 将文件添加到暂存区中(添加所有文件到暂存区)
此时发现main.js进入待提交的状态。
此时利用commit命令提交到本地仓库
git commit -m “消息内容” #提交暂存区中内容到本地仓库 -m是提交信息
有些时候我们不需要把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件。
所以我们需要在主目录下简历“.gitignore”文件,此文件有如下规则:
例如
*.txt #忽略所有.txt结尾的文件
!lib.txt # 但是lib.txt除外
/temo # 忽略项目跟目录下的TODO文件,不包括其他目录temp
build/ # 忽略build/目录下的所有文件
doc/*.txt #忽略doc/notes.txt 但是不会忽略doc/server/arch.txt
设置本机绑定SSH公匙,实现免密码登录!
首先通过git命令行获取密钥
通过命令 ssh-keygen 生成 SSH Key
ssh-keygen -t ed25519 -C “Gitee SSH Key”
其中 -t key 类型
其中 -C 注释
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/git/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/git/.ssh/id_ed25519
Your public key has been saved in /home/git/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:ohDd0OK5WG2dx4gST/j35HjvlJlGHvihyY+Msl6IC8I Gitee SSH Key
The key's randomart image is:
+--[ED25519 256]--+
| .o |
| .+oo |
| ...O.o + |
| .= * = +. |
| .o +..S*. + |
|. ...o o..+* * |
|.E. o . ..+.O |
| . . ... o =. |
| ..oo. o.o |
+----[SHA256]-----+
中间遇到停顿直接回车,一共三次回车。
2.查看生成的SSH公钥和私钥:
ls ~/.ssh/
输出:
id_ed25519 id_ed25519.pub
cat ~/.ssh/id_ed25519.pub
输出,如:
ssh-ed25519 AAAA***5B Gitee SSH Key
或者直接去C盘用户目录下找到.ssh文件,找到相关的id_ed25519.pub,用记事本打开也能得到一段很长的密钥。
cd …:(中间有空格哈)回到上一级目录
cd 路径名:路径跳转
pwd:显示路径
clear:清除屏幕
ls:列出当前目录下所有文件
touch:新建文件(touch main.py:在当前目录下新建一个名为main.py的文件)
rm:删除文件 (rm main.py:移除main.py文件)
mkdir:创建一个目录(文件夹mkdir test2:创建一个test2的目录)
rm -r:删除目录(rm -r test2:删除刚刚创建的test2目录)mv:移动文件(move main.py test2:将main.py移动到test2中)
reset:重新初始化终端
history:查看历史命令
help:查看某个命令的帮助
exit:退出