Git 是一个开源的分布式控制系统(版本管理工具),是目前使用范围最广的版本管理工具。
它的作用就是对文件进行版本的管理,由于每次项目上线可能会产生一些无法预料的bug,这时就需要选择上一个正常的版本进行回滚。而Git的存在,就是为让开发人员能够方便地在不同版本间进行切换。码云、Github在某种程度上来说,就是代码的网盘,作为一些开源开发商代码发布、存放、征集bug及意见的功能。
除了版本管理这项功能,Git 在团队协作开发上也有很大的优势。
除了上面的优点,Git还有一个特殊的地方 —— 分布式管理。SVN是另外一个版本管理系统,但是它必须要在特定的网络上才能进行开发和管理。一旦服务器宕机或者网路崩溃,版本控制这个功能就失效了。Git的分布式管理,可以让每个开发人员将仓库的代码全部下载到本地,包括这个项目的每个分支、版本更新的记录。如果线上的环境崩, 完全可以通过本地选择一个正常的历史记录进行回滚,然后去有网的地方将代码上传更新。
Git 在本地初始化一个仓库后,会存在三个工作区域:工作目录、暂存区、本地仓库,当关联远程仓库时,就会有一个远程仓库。
在上传代码前,首先要进行Git的配置,否则代码仓库不知道你的身份,这样就没法记录谁上传谁修改了代码。这个配置只要在安装Git后配置一次即可。
git config --global user.name "lyan" git config --global user.email "1055869654@qq.com"
要检查配置是否完成,可以通过以下命令查看
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 pull.rebase=false credential.helper=manager-core credential.https://dev.azure.com.usehttppath=true init.defaultbranch=master user.name=lyan user.email=1055869654@qq.com
# 在当前文件夹下新建 .git 仓库 git init # 在当前文件夹下创建一个名为bluej的文件夹,里面有 .git git init bluej
git remote add origin 你的仓库地址
git add . # 提交当前目录下的所有文件到暂存区 git commit -m "feat:新增了头部" # 将暂存区的文件提交到本地仓库 git pull # 将远程仓库的代码拉取到本地进行同步 git push # 将本地仓库的代码推送到远程仓库 git push -u origin master # 如果是第一次新建仓库,推送时要添加关联分支
如果commit的备注信息打错了,可以通过以下命令进行修改
git commit --amend
首先,默认会打开一个 vim 编辑器,然后输入 i
,会发现左下角变成了 -- INSERT --
,再更改备注信息即可。修改完成后,先按下 ESC
,退出编辑模式,再输入 :wq
回车进行保存。
git status
如果要忽略某些文件,不需要进行git的上传,则可以在根目录下新建一个文件 .gitignore
.DS_Store # 忽略所有 .DS_Store 文件 /test # 忽略根目录下 test 文件夹 test/ # 忽略所有 test 文件夹 *.html # 忽略所有以 html 为后缀的文件
# 查看本地所有分支 git branch # 查看远程所有分支 git branch -r
# 新建分支 git branch 分支名称 # 切换分支 git checkout 分支名称 # 新建并切换分支 git checkout -b 分支名称
git push origin 分支名称
# 删除本地分支 git branch -d 分支名 # 删除远程分支 git branch -dr [remote/分支名] # 只是删除本地的远程分支记录 git push origin --delete [分支名] # 真正的删除远程分支
# 先切换到你的分支下,然后再把其他分支的内容合并到你的分支上 git merge 分支名称
要进行版本回退,需要查看日志找到需要回退的那个版本的 hash 值
git reset --hard 哈希值
# 查看简略日志 git reflog # 查看详细日志 git log