**版本控制(Revision control)**是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。
版本控制主要有以下作用:
简单来说,版本控制就是用于管理多人协同开发项目的技术。
如果没有进行版本控制,或者版本控制本身缺乏正确的流程管理,那么在软件开发过程中将会导致很多问题,如软件代码的一致性、软件内容的冗余、软件过程的事物性、软件开发过程中的并发性、软件源代码的安全性,以及软件的整合等。
主流的版本控制器有如下这些:
其中,Git 和 SVN 最为常用。
由于 Git 官网的下载速度过慢,我们需要通过淘宝镜像下载 Git:淘宝镜像 Git 下载
下载完成后,直接打开安装包,全选 “下一步”,安装即可。
安装完成后,鼠标在任意目录下点击右键,可以看到菜单栏中出现了两个新的选项:
打开 Git Bash,输入以下指令进行测试:
cd 改变目录。
cd.. 回退到上一个目录,直接cd进入默认目录
pwd 显示当前所在的目录路径
ls 列出当前目录中的所有文件
ls(ll) 更详细地列出当前目录中的所有文件
touch 新建一个文件
rm 删除一个文件
mkdir 新建一个目录
rm -r 删除一个目录
mv 移动文件
reset 重新初始化终端/清屏
clear 清屏
history 查看命令历史。
help 帮助
exit 退出
# 注释
还有一个命令,大家千万不要去尝试:rm -rf /
,它会从根目录开始,清除所有的文件!
Git 中所有的配置,其实都保存在本地文件里,使用 git config -l
指令即可查看。
Administrator@PC202006090948 MINGW64 ~/Desktop
$ git config -l
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
credential.helper=manager
如果输入 git config --system --list
,即可查看所有的系统配置:
Administrator@PC202006090948 MINGW64 ~/Desktop
$ git config -l
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
credential.helper=manager
可以看到,目前的系统配置就是全部的配置。这是因为,我们还没有进行用户配置。输入以下命令即可配置用户名和邮箱:
git config --global user.name "" # 引号内输入你的用户名
git config --global user.email "" # 引号内输入你的邮箱
注意,这里配置的信息十分重要,不要胡乱输入。
配置完成之后,我们可以使用 git config --global --list
命令查看所有的用户配置信息:
Administrator@PC202006090948 MINGW64 ~/Desktop
$ git config --global --list
user.name= # 你刚刚配置的用户名
user.email= # 你刚刚配置的密码
此时,我们再次输入 git config -l
查看所有配置,就可以看到如下内容:
Administrator@PC202006090948 MINGW64 ~/Desktop
$ git config -l
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
credential.helper=manager
user.name= # 你刚刚配置的用户名
user.email= # 你刚刚配置的密码
Git 共有四个工作区域:
其中,前三个区域在本地,最后一个区域在云端(如 GitHub、Gitee 等)。
文件在这四个区域之间的转换关系如下:
若不考虑最后推送到远程仓库,Git 的工作流程一般是这样的:
因此,Git 管理的文件有三种状态:已修改(modified)、已暂存(staged)、已提交(committed)。
**工作目录(WorkSpace)**一般就是我们希望 Git 帮助管理的文件夹、可以是项目的目录,也可以是一个空目录。建议路径中不要包含中文。
而想要搭建本地仓库,一般有两种方法。这两种方法都只需要在工作目录中右键点击 "Git Bash Here",然后分别输入以下指令即可:
版本控制实际上就是对文件的版本控制。要对文件进行修改、提交等操作,首先要知道文件当前在什么状态。否则可能会出现提交了现在还不想提交的文件,或者要提交的文件没提交上的问题。
文件的四种状态如下:
#查看指定文件状态
git status [filename]
#查看所有文件状态
git status
git add . # 添加所有文件到暂存区
git commit -m "消息内容" # 提交暂存区中的内容到本地仓库,其中-m后面的内容是提交信息
git push # 推送所有文件到远程仓库
有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等,这时可以在主目录下建立 ".gitignore" 文件。
此文件有如下规则:
# 注释
*.txt 忽略所有以.txt结尾的文件
!lib.txt lib.txt除外
/temp 忽略temp目录下的所有文件,但不包括其子目录下的文件
build/ 忽略build目录下的所有子目录
doc/*.txt 忽略doc目录下的.txt文件,但不包括其子目录下的.txt文件
几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。分支可以让一个项目中存在多份互不干扰的代码,通常用于区别主线发布版本与开发版本。这些分支也可以合并,但如果同一个文件在不止一个分支中被修改,那么在合并分支时就会引起冲突。想要解决这种冲突,只能先通过协商,修改冲突文件,然后重新提交。
master 分支是主分支,应该非常稳定,通常用来发布新版本。一般情况下,不允许在主分支上工作,而是在新建的 dev 分支上工作。工作完成后,比如马上要发布,或者 dev 分支代码稳定后,就可以合并到主分支 master 上来。
Git 分支中常用的指令:
# 列出所有本地分支
git branch
# 列出所有远程分支
git branch -r
# 新建一个分支,但依然停留在当前分支
git branch [branch-name]
# 切换到一个分支
git checkout [branch-name]
# 新建一个分支,并切换到该分支
git checkout -b [branch]
# 合并指定分支到当前分支
$ git merge [branch]
# 删除分支
$ git branch -d [branch-name]
# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。