Git是一种代码版本控制系统,为什么要使用代码版本控制系统呢?
因为代码版本控制系统能够很好地解决开发中要面临的问题
SVN 与 Git 的对比
官网下载地址:https://git-scm.com/downloads
指定安装目录后,一路next无脑安装
点击 Git Bash Here
输入git --version
可以查看版本信息
虽然Git 自带了图像化工具,但是功能不够强大,这里安装 TortoiseGit 图像化功具
安装过程较为简单,但是要注意的是其中需要指定 Git 的bin目录,一般系统会自动识别。
安装完成后,鼠标点击右键会多出一下三项
下面通过一个案例进行演示:
(1)创建 test 工作目录、初始化本地 git 仓库
初始化完成后,会出现一个名为 .git
的隐藏文件
(2)test 文件夹中新建一个 test.txt 文件(暂不执行添加操作)
(3)使用 status 命令,查看状态
注意:
test.txt
为红色表示未执行添加操作
(4) 使用 add 命令添加(到暂存区),并查看状态
此时 test.txt
文件会发生如下变化,代表已经执行添加操作(若用户电脑首次安装TortoiseGit 图像化功具,需要重启电脑)
(5)使用 commit 命令,提交到本地历史仓库
命令引号内为本次提交信息
(7) 修改 test.txt 文件
(8) 添加并提交,查看日志
(1) 创建 test1 工作目录、初始化本地 git 仓库
(2) 创建 test.txt
文件,并将其添加到暂存区,再提交至本地仓库
(4)查看日志
(1)历史版本切换
git reflog
:可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录的操作)
git reset --hard 版本唯一索引值
(2)分支管理介绍
分支
分支的使用场景
分支工作流程
git branch 分支名
git branch
git checkout 分支名
ls
Master分支里没有新分支添加的文件,但是新分支里有Master分支里的文件
git merge 分支名
git branch -d 分支名
git branch
注意:不同分支之间的关系是平行的关系,不会相互影响
注意:克隆是包括所有的历史版本
GitHub
码云
注意:在推送代码之前需要先配置SSH公钥,否则会报错
(1)设置Git账户:
git config user.name
git config user.email
git config --global user.name "账户名"
git config --global user.email "邮箱"
(2)生成SSH公钥
cd ~/.ssh
ssh-keygen –t rsa –C "邮箱"
( 注意:这里需要敲3次回车)cat ~/.ssh/id_rsa.pub
(3) 设置账户公钥
(4) 公钥测试:
ssh -T [email protected]
,出现“successfully”字样即成功本地项目推送至远程仓库
(1) 为远程仓库的 URL 自定义仓库名称
git remote add 远程仓库名称 远程仓库URL
给远程仓库取一个简单名称来代替一大长串的 URL
(2) 推送至远程仓库
git push -u 远程仓库名称 分支名称
git clone 仓库地址
git pull 远程仓库名 分支名
产生原因:
两个程序员操作同一个文件,其中一个程序员在修改文件后,push到远程仓库,另一个程序员应该先pull将最新的代码更新到本地仓库后,在修改代码,之后push到远程仓库,结果他没有先pull将最新的代码更新到本地仓库,而是直接将自己的代码push到远程仓库,这样就可能会导致代码冲突
如何解决冲突:
cat 文件名
<<<<<<<
和>>>>>>>
中间的内容,就是冲突部分